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