Cách thiết lập giám sát cho server của bạn
Bước 1 - Cài đặt một server giám sát
Quay một server CentOS 6.3 x64 sẽ được sử dụng để kết nối với tất cả các server khác của bạn.
Ví dụ của ta , IP của server giám sát này là 198.211.117.251. Tất cả các đoạn mã cấu hình trong tương lai sẽ tham chiếu đến IP này, vì vậy hãy đảm bảo thay đổi nó thành giá trị của bạn .
Bước 2 - Cài đặt các Gói trên Server để được Giám sát
yum -y install net-snmp && chkconfig snmpd on && :> /etc/snmp/snmpd.conf
Thêm các dòng sau vào /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
Server khách hàng của ta là cloudmail.tk (198.211.107.218) và emailocean.tk (198.211.112.99).
Nếu bạn có luật firewall trên server của bạn , hãy đảm bảo cho phép kết nối UDP tới cổng 161 từ server giám sát của bạn và loại bỏ mọi người khác:
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
Đến đây bạn có thể khởi động daemon SNMP trên tất cả các server của bạn mà bạn muốn theo dõi:
service snmpd start
Bước 3 - Cấu hình server giám sát
yum -y install net-snmp-utils rrdtool httpd && chkconfig httpd on
Tạo file database RRD cho mỗi client . Bạn chỉ cần chạy điều này một lần:
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
Tạo một tập lệnh sẽ cập nhật các biểu đồ của bạn. Bộ lệnh đầu tiên tạo và cập nhật file dữ liệu, trong khi lệnh thứ hai vẽ dữ liệu này thành file PNG sẽ được lưu vào đường dẫn DocumentRoot của Apache.
Lưu file này dưới dạng /root/rrdupdate.sh và đảm bảo bạn không có bất kỳ khoảng trắng nào sau '\' vì đây là một dòng duy nhất được chia thành nhiều:
#!/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'
Chạy tập lệnh của bạn đảm bảo không có lỗi và các biểu đồ được tạo:
bash /root/rrdupdate.sh ls -lah /var/www/html/*.png
Bây giờ chỉ cần thêm một mục nhập crontab sẽ cập nhật biểu đồ sau mỗi 5 phút và khởi động Apache
echo "*/5 * * * * bash /root/rrdupdate.sh" > /var/spool/cron/root service httpd start
Bạn có thể đưa các biểu đồ đó vào trang web của riêng mình hoặc thêm /var/www/html/index.html mới
Cho phép dữ liệu được điền trong một vài giờ và chuyển đến địa chỉ IP của server giám sát của bạn:
Và bạn đã hoàn tất!
Các tin liên quan