利用node_exporter从*.prom文件读取指标数据
获取数据的脚本
getKeys.sh:
1 2 3 4 5 6 7 8 9 10 11
| #!/bin/sh
mypath=$(cd `dirname $0`; pwd) cd $mypath
echo "executing all shell scripts ..." for sh in `ls *.sh |grep -v $0` do echo "will execute: ./$sh > ${sh}.prom" eval "./$sh > ${sh}.prom" done
|
获取主从同步延迟数据的脚本pt-heart.sh:
1 2 3 4
| out=`pt-heartbeat -D your_dbname --table=heartbeat --check --host=x.x.x.x --port=xx --user=xx --password=xxxxxx --master-server-id=xxx --print-master-server-id` v=`echo "$out" |awk '{print $1}'` m=`echo "$out" |awk '{print $2}'` echo "pt_heart{server_id=\"$m\"} $v"
|
具体示例:
1 2
| out=`pt-heartbeat -D test_sync --table=heartbeat --check --host=10.1.7.211 --port=3306 --user=root --password=xxxxxx --master-server-id=100 --print-master-server-id` ...
|
脚本位置:
1 2 3 4 5 6 7 8 9
| [root@docker-dev node_exporter_keys] /srv/node_exporter_keys [root@docker-dev node_exporter_keys] . ├── getkeys.sh ├── procs.sh ├── procs.sh.prom ├── pt-heart.sh └── pt-heart.sh.prom
|
设置定时任务
设置crontab定时任务:
1
| * * * * * /srv/node_exporter_keys/getkeys.sh
|
输出的文件pt-heart.sh.prom:
1
| pt_heart{server_id="100"} 0.00
|
修改node_exporter启动参数:
分两种情形:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| version: '3.0'
services: node-exporter: image: prom/node-exporter volumes: - /proc:/host/proc:ro - /sys:/host/sys:ro - /:/rootfs:ro - /srv/node_exporter_keys:/var/extra_keys:ro ports: - 9100:9100 command: - '--collector.textfile.directory=/var/extra_keys' - '--path.procfs=/host/proc' - '--path.sysfs=/host/sys' - '--collector.filesystem.ignored-mount-points="^(/rootfs|/host|)/(sys|proc|dev|host|etc)($$|/)"' - '--collector.filesystem.ignored-fs-types="^(sys|proc|auto|cgroup|devpts|ns|au|fuse\.lxc|mqueue)(fs|)$$"
|
- 通过supervisor运行node_exporter
1 2 3 4 5 6 7 8 9
| [program:node_exporter] command=/path/to/node_exporter --collector.textfile.directory=/srv/node_exporter_keys directory=/path/to user=root startsecs=3 redirect_stderr=true stdout_logfile_maxbytes=50MB stdout_logfile_backups=3 stdout_logfile=/var/log/node_exporter.log
|
最后,访问相应的http://your-host:9100/metrics,查看是否有新增的指标名称pt_heart。