使用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

参考