如何为您的液滴设置监控

来自菜鸟教程
跳转至:导航、​搜索

第 1 步 - 设置监控服务器

启动一个 CentOS 6.3 x64 droplet,它将用于连接到所有其他服务器。

对于我们的例子,这个监控服务器的 IP 是 198.211.117.251。 未来的所有配置片段都将引用此 IP,因此请确保将其更改为您自己的值。

第 2 步 - 在要监控的主机上安装软件包

yum -y install net-snmp && chkconfig snmpd on && :> /etc/snmp/snmpd.conf

将以下行添加到 /etc/snmp/snmpd.conf:

com2sec mynetwork 198.211.117.251   DigitalOcean
group MyROGroup v1      mynetwork
view all   included .1  80
access MyROGroup ""      any       noauth    exact all    none  none

我们的客户端服务器是 cloudmail.tk (198.211.107.218) 和 emailocean.tk (198.211.112.99)。

如果您的服务器上有防火墙规则,请确保允许从您的监控 droplet 到端口 161 的 UDP 连接,并删除其他所有人:

iptables -I INPUT -s 198.211.117.251 -p udp --dport 161 -j ACCEPT
iptables -A INPUT -s 0/0 -p udp --dport 161 -j DROP

现在您可以在您希望监控的所有服务器上启动 SNMP 守护程序:

service snmpd start

第 3 步 - 配置监控服务器

yum -y install net-snmp-utils rrdtool httpd && chkconfig httpd on

为每个客户端创建 RRD 数据库文件。 你只需要运行一次:

rrdtool create /root/cloudmail.tk.rrd -s 60 DS:in:COUNTER:300:U:U DS:out:COUNTER:300:U:U RRA:AVERAGE:0.5:1:10080
rrdtool create /root/emailocean.tk.rrd -s 60 DS:in:COUNTER:300:U:U DS:out:COUNTER:300:U:U RRA:AVERAGE:0.5:1:10080

创建一个可以更新图表的脚本。 第一组命令创建和更新数据文件,而第二组命令将此数据绘制成 PNG 文件,该文件将保存到 Apache 的 DocumentRoot 路径中。

将此文件另存为 /root/rrdupdate.sh确保在 '\' 之后没有任何空格,因为这都是被分成的单行多:

#!/bin/bash
rrdupdate /root/cloudmail.tk.rrd N:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.107.218 \
IF-MIB::ifInOctets.1`:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.107.218 IF-MIB::ifOutOctets.1`

rrdtool graph /var/www/html/cloudmail.tk.png \
-a PNG -h 125 -s -43200 --title "cloudmail.tk (198.211.107.218)" \
-v "Data Throughput" \
'DEF:in=/root/cloudmail.tk.rrd:in:AVERAGE' \
'DEF:out=/root/cloudmail.tk.rrd:out:AVERAGE' \
'CDEF:kbin=in,1024,/' \
'CDEF:kbout=out,1024,/' \
'AREA:in#00FF00:Bandwidth In' \
'LINE1:out#0000FF:Bandwidth Out\j' \
'GPRINT:kbin:LAST:Last Bandwidth In\:    %3.2lf KBps' \
'GPRINT:kbout:LAST:Last Bandwidth Out\:   %3.2lf KBps\j' \
'GPRINT:kbin:AVERAGE:Average Bandwidth In\: %3.2lf KBps' \
'GPRINT:kbout:AVERAGE:Average Bandwidth Out\:%3.2lf KBps\j'

rrdupdate /root/emailocean.tk.rrd N:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.112.99 \
IF-MIB::ifInOctets.1`:`snmpget -v 1 -c DigitalOcean -Oqv 198.211.112.99 IF-MIB::ifOutOctets.1`

rrdtool graph /var/www/html/emailocean.tk.png \
-a PNG -h 125 -s -43200 --title "emailocean.tk (198.211.112.99)" \
-v "Data Throughput" \
'DEF:in=/root/emailocean.tk.rrd:in:AVERAGE' \
'DEF:out=/root/emailocean.tk.rrd:out:AVERAGE' \
'CDEF:kbin=in,1024,/' \
'CDEF:kbout=out,1024,/' \
'AREA:in#00FF00:Bandwidth In' \
'LINE1:out#0000FF:Bandwidth Out\j' \
'GPRINT:kbin:LAST:Last Bandwidth In\:    %3.2lf KBps' \
'GPRINT:kbout:LAST:Last Bandwidth Out\:   %3.2lf KBps\j' \
'GPRINT:kbin:AVERAGE:Average Bandwidth In\: %3.2lf KBps' \
'GPRINT:kbout:AVERAGE:Average Bandwidth Out\:%3.2lf KBps\j'

运行您的脚本以确保没有错误并生成图表:

bash /root/rrdupdate.sh
ls -lah /var/www/html/*.png

现在只需添加一个每 5 分钟更新一次图表的 crontab 条目,然后启动 Apache

echo "*/5 * * * * bash /root/rrdupdate.sh" > /var/spool/cron/root
service httpd start

您可以将这些图表包含到您自己的网站中,或添加新的 /var/www/html/index.html

让数据填充几个小时,然后导航到监控 Droplet 的 IP 地址:

你们都完成了!

布拉特·哈米托夫