collectd是一个守护进程,用来收集系统统计信息通过多种方式使其可用(文件、网络等)。守护进程本身只有给插件载入、查询和提交的功能,除此之外没做其他事情。collectd配置文件是collectd.conf。
$ -C <config-file>
指定一个配置文件
$ -t
测试配置文件。返回值不为0则有错误
$ -T
测试插件读的回调函数。返回值不为0则有错误
$ -P <pid-file>
指定一个pid文件,如果日常用,则使用PIDFile在配置文件中初始化
$ -f
禁止转到后台运行,考虑监测的功能
$ -h
--help的功能,打印帮助信息
collectd的强大之处在于其丰富的插件。在README文件中可以找到插件列表的描述。
插件主要分为两类:输入和输出。
输入插件:用于周期性的查询,通过某种方式查询到想要得到的当前值提交给守护进程。比如,CPU插件读取当前CPU计数器的各种参数(用户,系统,nice等等)并派发这些值到守护进程
输出插件:从守护进程中取值处理。一般应用会写到RRD文件和CSV文件,或者通过网络发送数据到远程盒子(a remote box)。
当然并非所有插件都可以这样划分。比如,网络插件(network plugin)可以发送(输出)与接收(输入)值。另外,该插件在初始化时启动了一个socket端口,接收到数据后就发送数据,这一点不同于其他输入插件。你可以理解为网络插件是异步工作,这样也很合理。
除此之外,还有日志插件(log)目前有两个:logfile插件和syslog插件。通过这些插件,collectd可以提供给用户解决方案的信息。你可以设置不同的log level。
从版本4.3.0开始collectd支持了监测功能。这一点通过用户定义阈值来实现。如果某个值超出了阈值范围,通知将会被派发到通知插件(notification plugin)。更多信息参见collectd.conf。
请注意,有一些提供了其他与守护进程通讯功能的插件,更多信息可以参考他们的主页。
collectd接收以下信号:
SIGINT
SIGTERM
这些信号会关闭collectd中插件终止程序运行
SIGUSR1
该信号会使得所有插件立刻发送他们的缓存。例如rrdtool将立刻把待定数据写到rrd文件中。