使用Grafana进行服务监控的明显优点就是监控出图漂亮,而且拥有丰富的插件,可以直接监控系统资源和负荷信息以及常见的服务进程状态,不过还是会有一些场景直接使用模块是不太容易进行监控的,这个时候更适合使用编写脚本进行数据收集和监控,而exec模块就可以满足这样的需求,下面就列举一个小栗子。
步骤
- 开启exec模块(/etc/collectd.conf)
开启exec模块并指定自定义脚本位置
1 2 3 4 5 6
<Plugin exec> # Exec "user:group" "/path/to/exec" Exec "ec2-user:ec2-user" "/opt/collectd/plugin/check_notice.sh" # NotificationExec "user:group" "/path/to/exec" </Plugin> LoadPlugin exec
- 自定义脚本
1 2 3 4 5 6 7 8 9 10 11
HOSTNAME="${COLLECTD_HOSTNAME:-vpc1-208-jenkins}" INTERVAL="${COLLECTD_INTERVAL:-10}" while sleep "$INTERVAL"; do RES=$(curl -s http://1.2.3.4:8083/notice/v1/getnotice?gid=5\&version=4.0.500 |grep Endpoint |wc -l) echo "PUTVAL \"$HOSTNAME/health/gauge-notice\" interval=$INTERVAL N:$RES" done #$HOSTNAME/health/gauge-notice对应下面的 #<instance-id>/<plugin>-<plugin_instance>/<type>-<type_instance> #gauge是表示type的一种,不能自己编着写哦 #脚本输出如:PUTVAL "vpc1-208-jenkins/health/gauge-notice" interval=10 N:1
- 在Grafana上添加监控