- 监控TCP连接
- 监控MySQL
- 监控php-fpm
- 监控 Apache
- 监控 MySQL A-B
- 监控磁盘I/O
1.监控TCP连接
1.1 tcp状态简介
netstat中的各种状态:
CLOSED 初始(无连接)状态。
LISTEN 侦听状态,等待远程机器的连接请求。
SYN_SEND 在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。
SYN_RECV 在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。
ESTABLISHED 完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
FIN_WAIT_1 在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。
FIN_WAIT_2 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。
TIME_WAIT 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
CLOSING 在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。
CLOSE_WAIT 在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。
LAST_ACK 在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。
主动连接端可能的状态有:CLOSED SYN_SEND ESTABLISHED。
主动关闭端可能的状态有:
FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT。
被动连接端可能的状态有:
LISTEN SYN_RECV ESTABLISHED。
被动关闭端可能的状态有:
CLOSE_WAIT LAST_ACK CLOSED。
2.2 准备自定义key 【在zabbix-agent 主机 (被监控主机)】
vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf
# Format: UserParameter=<key>,<shell command> 格式:UseParameter=键名,命令
UserParameter=tcp.status.listen,ss -an |grep :80 | grep -i 'LISTEN' |wc -l
UserParameter=tcp.status.timewait,ss -an |grep :80 | grep -i 'TIME-WAIT' |wc -l
UserParameter=tcp.status.established,ss -an |grep :80 | grep -i 'ESTAB' |wc -l
UserParameter=tcp.status.syn_recv,ss -an |grep :80 | grep -i 'SYN_RECV' |wc -l
UserParameter=tcp.status.syn_sent,ss -an |grep :80 | grep -i 'SYN_SENT' |wc -l
UserParameter=tcp.status.close,ss -an |grep :80 | grep -i 'CLOSE' |wc -l
2.3 调用KEY 【在zabbix-server主机【zabbix主服务器】】
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k system.uname
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k system.cpu.load[all,avg1]
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k tcp.status.close
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k tcp.status.listen
2.4 自定义key 【传参】
在zabbix-agent中:
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf
UserParameter=tcp.status[*],ss -an |grep :80 | grep -i "$1" |wc -l
括号中输入的内容会被调用到$1中
需要重启zabbix-agent
在zabbix-server中:
使用[传参]来调用;
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k tcp.status[TIME-WAIT]
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k tcp.status[LISTEN]
[root@localhost ~]# zabbix_get -s 192.168.100.20 -k tcp.status[CLOSE]
2.5
(一)在zabiix-agent主机上
1 下载自定义key的包
chmod -R +x zabbix-example/
chown -R zabbix zabbix-example2 拷贝命令文件至zabbix目录
mkdir /etc/zabbix/tcp_connect.status 创建目录
cp zabbix-example/tcp_connect_status/tcp_connect_status.sh
/etc/zabbix/tcp_connect.status/
3 增加用户自定义KEY
cp zabbix-example/tcp_connect_status/tcp_connect_status /etc/zabbix/zabbix_agentd.d/tcp_connect_status.conf
4 重启服务
systemctl restart zabbix-agent.service
(二)在zabbix-server主机上:
1 zabbix-server执行验证
zabbix_get -s 192.168.100.20 -k tcp.connect.status[LISTEN]2 总结
调用KEY,KEY就是脚本,脚本传参即可。3 XML文件
是模板文件,直接上传到服务器就是现成的模板,应用集,监控项,触发器,图形,聚合图形。
2.监控MySQL
原理和监控tcp一样
3.监控php-fpm
原理和监控tcp一样
4.监控 Apache
原理和监控tcp一样
5.监控 MySQL A-B
原理和监控tcp一样
6.监控磁盘I/O
原理和监控tcp一样