collectd 的官网 collectd.org 。
collectd 服务
安装
yaourt -S collectd
启动
sudo systemctl enable collectd sudo systemctl start collectd
collectd 界面
安装 rrdtool
yaourt -S rrdtool
下载 GCP
cd /usr/share/nginx/html/
sudo git clone https://github.com/pommi/CGP.git
配置 GCP
修改配置文件 /usr/share/nginx/html/CGP/conf/config.php
# collectd's datadir $CONFIG['datadir'] = '/var/lib/collectd/rrd';
改为
# collectd's datadir $CONFIG['datadir'] = '/var/lib/collectd';
打开界面
浏览器打开页面 http://localhost/CGP/index.php ,可以看到服务器自身的监控信息。
collectd 插件
collectd 支持很多 插件 ,使用 c 语言开发插件请参考 Plugin architecture - collectd Wiki。
Exec 插件使用 shell 脚本来收集系统监控数据。
以监控电池电量为例。
启用 Exec 插件
修改 collectd 配置文件 /etc/collectd.conf
LoadPlugin exec <Plugin exec> Exec "nobody:nobody" "/usr/bin/power-capacity" </Plugin>
监控笔记本电量脚本
/usr/bin/power-capacity
#!/bin/bash HOSTNAME="${COLLECTD_HOSTNAME:-localhost}" INTERVAL="${COLLECTD_INTERVAL:-60}" while sleep "$INTERVAL"; do VALUE=$(echo -n `cat /sys/class/power_supply/BAT0/capacity`) echo "PUTVAL \"$HOSTNAME/power/capacity\" interval=$INTERVAL N:$VALUE" done
为脚本添加可执行权限
sudo chmod a+x /usr/bin/power-capacity
重启 collectd 生效插件
sudo systemctl restart collectd
过一会儿就可以在界面上看到电量监控项。
collectd 多机器监控
监控本机没有什么用处,通过 network 插件,可以将 collectd 配置为服务器或客户端。
collectd 服务器
接受 collectd 客户端的上报的数据。
collectd 客户端
上报数据到 collectd 服务器。
本机配置为 collectd 服务器
通过 network 插件配置为 server 端。
修改 collectd 配置文件 /etc/collectd.conf
LoadPlugin network <Plugin network> <Listen "0.0.0.0" "25826"> SecurityLevel Sign AuthFile "/etc/collectd/passwd" </Listen> </Plugin>
创建密码文件
/etc/collectd/passwd
user0: foo user1: bar
重启 collectd 服务,生效配置。
其它机器配置为 collectd 客户端
参考前面的 collectd 服务 一节安装 collectd。
通过 network 插件配置为 client 端。
修改 collectd 配置文件 /etc/collectd.conf
LoadPlugin network <Plugin network> <Server "172.17.0.1" "25826"> SecurityLevel Encrypt Username "user0" Password "foo" </Server> </Plugin>
服务器的 IP 为 172.17.0.1。
重启 collectd 服务,生效配置,等一会儿就可以在界面上看到客户端机器的监控信息。