0
点赞
收藏
分享

微信扫一扫

Zabbix监控TCP状态

监控操作步骤:

1、编写脚本

2、上传脚本到指定位置

3、修改zabbix_agent配置文件

4、zabbix_server的WEB界面导入模版

5、主机关联

1)编辑zabbix_agent配置文件,添加以下内容

[root@localhost ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

  1. 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

  1. #!/bin/bash
  2. #Date:2019-8-18 21:05:46
  3. #by author Yangxz
  4. #TCP连接数及状态

  5. if [ $# -ne 1 ];then
  6. 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"
  7. exit 1
  8. fi

  9. case $1 in
  10. #socket已经建立连接
  11. ESTABLISHED)
  12. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "ESTABLISHED")
  13. echo $result
  14. ;;
  15. #监听状态
  16. LISTEN)
  17. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LISTEN")
  18. echo $result
  19. ;;
  20. #表示收到了对方的FIN报文,并发送出了ACK报文,等待2MSL后就可回到CLOSED状态
  21. TIME_WAIT)
  22. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "TIME_WAIT")
  23. echo $result
  24. ;;
  25. #socket没有被使用,无连接
  26. CLOSED)
  27. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSED")
  28. echo $result
  29. ;;
  30. #等待关闭连接
  31. CLOSE_WAIT)
  32. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSE_WAIT")
  33. echo $result
  34. ;;
  35. #服务器端和客户端都同时关闭连接
  36. CLOSING)
  37. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "CLOSING")
  38. echo $result
  39. ;;
  40. #套接字已关闭,连接正在关闭
  41. FIN_WAIT1)
  42. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT1")
  43. echo $result
  44. ;;
  45. #连接已关闭,套接字正在等待从远程端关闭
  46. FIN_WAIT2)
  47. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "FIN_WAIT2")
  48. echo $result
  49. ;;
  50. #远端关闭,当前socket被动关闭后发送FIN报文,等待对方ACK报文
  51. LAST_ACK)
  52. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "LAST_ACK")
  53. echo $result
  54. ;;
  55. #接收到SYN报文
  56. SYN_RECV)
  57. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_RECV")
  58. echo $result
  59. ;;
  60. #已经发送SYN报文
  61. SYN_SENT)
  62. result=$(netstat -an | awk '/^tcp/ {print $0}'|grep -wc "SYN_SENT")
  63. echo $result
  64. ;;
  65. *)
  66. 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"
  67. esac

4)脚本授权

[root@localhost scripts]# chmod +x auto_detection_tcp_state.sh

5)验证server端验证是否能获取agent端的key值

#使用zabbix_get命令获取key值

Zabbix监控TCP状态_TCP

Zabbix监控平台配置

1、下载监控模板文件

模板附件下载:​​https://mirrors.yangxingzhen.com/templates/zabbix_tcp_templates.xml​​

2、导入TCP状态监控模板

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

Zabbix监控TCP状态_配置文件_02

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

Zabbix监控TCP状态_套接字_03

3、关联模板

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

Zabbix监控TCP状态_套接字_04

4、效果图展示

Zabbix监控TCP状态_配置文件_05

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

举报

相关推荐

0 条评论