zoukankan      html  css  js  c++  java
  • zabbix--TCP状态监控

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

    环境

    主机ipzabbix版本关系
    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]

    TCP1

    导入监控TCP模板

    配置-模板-导入
    模板地址
    导入完成后选择客户端主机,添加模板即可,点击主机群组 myApplications 查看
    tcp0
    点击tcp模板的监控项查看
    tcp1
    查看图形
    tcp2

  • 相关阅读:
    帮助C#菜鸟进入SQL/XML开发
    汉字转换为拼音的函数
    水晶报表的使用技巧
    用DataSet操作XML
    frame,iframe,frameset 的区别(来源网络)
    oracle 数据库锁表解决方法
    c#日期类型的使用 (转)
    深入了解ViewState 深入了解ViewState
    js中top、parent、frame
    SQL中 inner join、 left join 、right join、 outer join之间的区别(来自百度自用)
  • 原文地址:https://www.cnblogs.com/khstudy/p/11069958.html
Copyright © 2011-2022 走看看