collectd使用exec模块进行自定义监控

使用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上添加监控
    20171128-colletcd-1

参考