监控操作步骤:
1、编写脚本
2、上传脚本到指定位置
3、修改zabbix_agent配置文件
4、zabbix_server的WEB界面导入模版
5、主机关联
1)编辑zabbix_agent配置文件,添加以下内容
[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
- UserParameter=tcp.state[*],/data/scripts/auto_detection_tcp_state.sh $1
#保存退出
2)重启zabbix_agentd服务
[root@localhost ~]# service zabbix_agentd restart
3)下载脚本文件(获取监控值)
[root@localhost ~]# cd /data/scripts
[root@localhost scripts]# wgethttps://mirrors.yangxingzhen.com/shell/auto_detection_tcp_state.sh
[root@localhost scripts]# cat auto_detection_tcp_state.sh
- #!/bin/bash
- #Date:2019-8-18 21:05:46
- #by author Yangxz
- #TCP连接数及状态
- if [ $# -ne 1 ];then
- echo -e "\033[32mUsage: sh $0 {ESTABLISHED|LISTEN|TIME_WAIT|CLOSED|CLOSE_WAIT|CLOSING|FIN_WAIT1|FIN_WAIT2|LAST_ACK|SYN_RECV|SYN_SENT}\033[0m"
- exit 1
- fi
- case $1 in
- #socket已经建立连接
- ESTABLISHED)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "ESTABLISHED")
- echo $result
- ;;
- #监听状态
- LISTEN)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LISTEN")
- echo $result
- ;;
- #表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态
- TIME_WAIT)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "TIME_WAIT")
- echo $result
- ;;
- #socket没有被使用,无连接
- CLOSED)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSED")
- echo $result
- ;;
- #等待关闭连接
- CLOSE_WAIT)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSE_WAIT")
- echo $result
- ;;
- #服务器端和客户端都同时关闭连接
- CLOSING)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSING")
- echo $result
- ;;
- #套接字已关闭,连接正在关闭
- FIN_WAIT1)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT1")
- echo $result
- ;;
- #连接已关闭,套接字正在等待从远程端关闭
- FIN_WAIT2)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT2")
- echo $result
- ;;
- #远端关闭,当前socket被动关闭后发送FIN报文,等待对方ACK报文
- LAST_ACK)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LAST_ACK")
- echo $result
- ;;
- #接收到SYN报文
- SYN_RECV)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_RECV")
- echo $result
- ;;
- #已经发送SYN报文
- SYN_SENT)
- result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_SENT")
- echo $result
- ;;
- *)
- echo -e "\033[32mUsage: sh $0 {ESTABLISHED|LISTEN|TIME_WAIT|CLOSED|CLOSE_WAIT|CLOSING|FIN_WAIT1|FIN_WAIT2|LAST_ACK|SYN_RECV|SYN_SENT}\033[0m"
- esac
4)脚本授权
[root@localhost scripts]# chmod +x auto_detection_tcp_state.sh
5)验证server端验证是否能获取agent端的key值
#使用zabbix_get命令获取key值
Zabbix监控平台配置
1、下载监控模板文件
模板附件下载:https://mirrors.yangxingzhen.com/templates/zabbix_tcp_templates.xml
2、导入TCP状态监控模板
进入后台->配置->模板->导入(右上角)->选择下载的模板文件->最后点击导入 。
至此TCP状态监控模板已经导入到Zabbix中。
3、关联模板
需要把TCP状态监控模板链接到你的监控主机上,进入后台->配置->点击你的主机->模板->选择刚才导入模板,点击添加,最后点击更新即可。
4、效果图展示
至此,Zabbix监控TCP状态就完成了。。