Zabbix监控TCP状态

小柒博客 122,5306字数 723阅读2分24秒阅读模式

监控操作步骤:

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]# wget https://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、下载监控模板文件

模板附件下载:

2、导入TCP状态监控模板

进入后台->配置->模板->导入(右上角)->选择下载的模板文件->最后点击导入 。

至此TCP状态监控模板已经导入到Zabbix中。

3、关联模板

需要把TCP状态监控模板链接到你的监控主机上,进入后台->配置->点击你的主机->模板->选择刚才导入模板,点击添加,最后点击更新即可。

4、效果图展示

至此,Zabbix监控TCP状态就完成了。。

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如本文“对您有用”,欢迎随意打赏,谢谢!

继续阅读
Wechat
微信扫一扫,加我!
weinxin
微信号已复制
微信公众号
微信扫一扫,关注我!
weinxin
公众号已复制
Zabbix最后更新:2024-1-24
小柒博客
  • 本文由 小柒博客 发表于 2019年9月11日 09:54:58
  • 声明:本站所有文章,如无特殊说明或标注,本站文章均为原创。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。转载请务必保留本文链接:https://www.yangxingzhen.com/5963.html
评论  19  访客  19