Tcp的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击(例如SYN攻击),或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想

环境

主机 ip zabbix版本 关系
centos7.5 192.168.181.135 zabbix4.2 服务端
centos7.5 192.168.181.136 zabbix4.2 客户端

客户端配置

编写采集规则

编写一个获取tcp状态的脚本文件,参考

vim /etc/zabbix/scripts/tcp_status.sh

#!/bin/bash

#########################################################################
# File Name: tcp_status.sh
# file_path:
# Author: 浪子尘心
# Mail: 536418286@qq.com
# Created Time: 2019-03-18 14:01:34
# Last Changed: 2019-03-18 14:02:18
# Description: TCP状态采集
# Version:
#########################################################################

#!/bin/bash
[ $# -ne 1 ] && echo "Usage:CLOSE-WAIT|CLOSED|CLOSING|ESTAB|FIN-WAIT-1|FIN-WAIT-2|LAST-ACK|LISTEN|SYN-RECV SYN-SENT|TIME-WAIT" && exit 1
ss_file=/tmp/ss.txt
tcp_status_fun(){
    [ $1 == "ESTABLISHED" ] && TCP_STAT="ESTAB" || TCP_STAT=$1    #可能大家习惯了看ESTABLISHED,所以我做了个小小的转换。
        ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}' > $ss_file
        TCP_STAT_VALUE=$(grep ${TCP_STAT} $ss_file|awk {'print $NF'})
        if [ -z "$TCP_STAT_VALUE" ];then
           TCP_STAT_VALUE=0
        fi
        echo $TCP_STAT_VALUE
}
tcp_status_fun $1

给脚本加执行权限

chmod +x /etc/zabbix/scripts/tcp_status.sh

编写自定义key

vim /etc/zabbix/zabbix_agentd.d/tcp_status.conf

UserParameter=tcp_status[*],/etc/zabbix/scripts/tcp_status.sh $1

重启客户端

systemctl restart zabbix-agent

服务端测试获取数据

zabbix_get -s 192.168.181.136 -p 10050 -k tcp_status[LISTEN]

导入监控TCP模板

配置-模板-导入
模板地址
导入完成后选择客户端主机,添加模板即可,点击主机群组 myApplications 查看

点击tcp模板的监控项查看

查看图形

最新文章

  1. 解决Windows 8.1中所有的应用(Modern App)无法打开(闪退)的问题
  2. 用NPOI从DataBase到Excel '2
  3. python学习之认识字符串
  4. 深入探索Android中的Handler
  5. hdu4825 字典树 XOR
  6. The Android Gradle Plugin and Gradle version-compatibility
  7. spring事务失效
  8. Org-mode 任务添加提醒
  9. 【转】const的用法,特别是用在函数前面与后面的区别!
  10. JUnit 3.8.1 源码学习
  11. Python 常用Web框架的比较
  12. 架构.Net 到 Linux
  13. LNMP分离式部署
  14. 三.linux磁盘与文件系统
  15. vue设置初始对象时为空报错
  16. ORB-SLAM2(1) Linux下配置和编译
  17. angular2+中数据变更子组件页面未更新
  18. MySQL忘记root密码--不重启mysqd重置root密码
  19. rman备份控制文件
  20. Java上传文件夹(Jersey)

热门文章

  1. ubuntu Change Language
  2. Python3基础(三) 运算符
  3. 可编程数据平面将OpenFlow扩展至电信级应用(一)
  4. Ubuntu下安装C/C++开发环境【!!!有更新!!!Ubuntu14.10下使用eclipse搭建C语言开发环境】
  5. swift手记-6
  6. TCP传输工作原理
  7. Android Studio底边栏选项不见了,怎样调出来
  8. SPOJ 962 Intergalactic Map (网络最大流)
  9. Professional, Entreprise, Architect版本的区别
  10. java多线程——饥饿和公平