1.在collectd.conf中配置:

LoadPlugin exec

<Plugin exec> Exec "nobody:yanlei" "/tmp/getput"# NotificationExec "user:group" "/path/to/exec"</Plugin>



"nobody:yanlei"第一个是用户,第二个是组。

2.脚本的样子要有:  PUTVAL hostname/plugin-instance/type-instance,例子如下:

#!/bin/bash
HOSTNAME="${COLLECTD_HOSTNAME:-`hostname -f`}"
INTERVAL="${COLLECTD_INTERVAL:-10}"
while sleep "$INTERVAL"
do
    echo "PUTVAL \"$HOSTNAME/test_load/load\" interval=$INTERVAL N:1:2:3"
done

其中test_load是插件名,load是类型,N表示当前时间,可以在type.db文件中看到load类型,有三个参数。

3.给脚本赋予权限

chmod a+x /tmp/getput

最后运行collectd,我打开的输出插件是CSV,可以在/opt/collectd/var/lib/collectd/hostname中看到load文件夹

root@ubuntu:/opt/collectd/var/lib/collectd/ubuntu# ll
总用量 32
drwxr-xr-x 8 root root 4096 9月  12 21:45 ./
drwxr-xr-x 4 root root 4096 8月  23 21:52 ../
drwxr-xr-x 2 root root 4096 9月  12 21:28 cpu-0/
drwxr-xr-x 2 root root 4096 9月  12 21:28 interface-ens33/
drwxr-xr-x 2 root root 4096 9月  12 21:28 interface-lo/
drwxr-xr-x 2 root root 4096 9月  12 21:28 load/
drwxr-xr-x 2 root root 4096 9月  12 21:28 memory/
drwxr-xr-x 2 root root 4096 9月  12 21:45 test_load/

最后可以在test_load中看到每一天的数据,格式是CSV,脚本中的数据都被写进守护进程,守护进程会将其分派给所有的“写插件”,可以再开一个python插件,在里面写一个自定义的输出格式,就OK了,今天先写这么多,python插件下次再说。

参考链接:https://collectd.org/wiki/index.php/Plugin:Exec

                  https://github.com/collectd/collectd/blob/master/contrib/exec-smartctl

                  http://blog.kankanan.com/article/collectd-6570636e7c7b578b8be689e3.html

                  https://collectd.org/documentation/manpages/collectd-exec.5.shtml

                  http://www.tuicool.com/articles/UVnQFvm


版权声明:本文为musouyanlei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/musouyanlei/article/details/77949439