zabbix监控tcp状态
Tcp的连接状态对于我们web服务器来说是至关重要的,从TCP的连接状态中可以看出网络的连接情况,服务器的压力情况,对服务器的并发有很好的直观反映;尤其是并发量ESTAB;或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考虑看我们内核是否需要调优,太高的time_wait值的话会占用太多端口,要是端口少的话后果不堪设想。
我们可以利用下面命令来查询11中状态的连接数,下面我们也可以利用这个命令来写脚本。
[root@manage root]# ss state all|awk '{++S[$1]} END {for(a in S) {printf "%11-s %s\n", a,S[a]}}'
ESTAB
State
TIME-WAIT
CLOSE-WAIT
LISTEN
zabbix客户端
1、备份zabbix客户端配置文件
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
2、编写获取tcp状态的脚本tcp_status.conf
#scripts for tcp status
function SYNRECV {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'SYN-RECV' | awk '{print $2}'
}
function ESTAB {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}'
}
function FINWAIT1 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-1' | awk '{print $2}'
}
function FINWAIT2 {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'FIN-WAIT-2' | awk '{print $2}'
}
function TIMEWAIT {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}'
}
function LASTACK {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LAST-ACK' | awk '{print $2}'
}
function LISTEN {
/usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}'
}
$
这里最好使用ss命令,如果服务器的压力小,链接少,不会有问题,但随着服务器压力和链接数的增加,用netstat就会造成执行速度慢,server端无法接收到执行结果,造成监控异常。
3、测试脚本的可用性
、给脚本授权
chmod +x tcp_status.conf
、执行脚本
[root@iZ256ms9dbzZ zabbix_agentd.d]# ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}'
4、编辑zabbix客户端配置文件
vim /etc/zabbix/zabbix_agentd.conf
在285行左右添加下面命令,注意要提前将具有执行权限的脚本tcp_status.conf放到/etc/zabbix/zabbix_agentd.d/下面
UserParameter=tcp[*],/etc/zabbix/zabbix_agentd.d/tcp_status.conf $
否则会出现下面几种错误:
#、/etc/zabbix/zabbix_agentd.d/下面找不到可执行脚本
[root@manage ~]# zabbix_get -s 10.45.139.112 -p -k "tcp[ESTAB]"
sh: /etc/zabbix/zabbix_agentd.d/tcp_status.conf: No such file or directory ##、脚本tcp_status.conf没有执行权限会出现下面错误,解决:chmod +x tcp_status.conf
[root@manage ~]# zabbix_get -s 10.45.139.112 -p -k "tcp[ESTAB]"
sh: /usr/local/zabbix/scripts/tcp_status.conf: Permission denied
5、重启zabbix_agent
[root@iZ256ms9dbzZ zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]
zabbix服务端
1、命令行测试连接K值
[root@manage zabbix]# zabbix_get -s 10.45.139.112 -p -k "tcp[ESTAB]"
2、zabbix页面导入模板
【配置】-【模板】-【选择文件】
tcp模板链接:https://pan.baidu.com/s/1TMtZtApDuVXxkNxNQUVi6Q 密码:2wfk

3、主机添加模板
【配置】-【主机】,选择配置模板的主机

此时添加完后会添加7个监控项,但是并没有添加触发器,并不会进行报警,接下来就要看每个业务的不同来设置触发器的阈值。
4、添加触发器
选择刚才添加模板的主机,然后点击触发器,然后进行下列添加阈值的操作。


5、添加图形
仍旧选择刚才配置触发器的主机,点击【图形】-【创建图形】

这样图形创建成功后,我们就可以在下面看到tcp的状态

当然图形也可以添加多个监控项。

图形如下:

zabbix监控tcp状态的更多相关文章
- zabbix 监控TCP状态连接数
1.zabbix客户端,监控TCP状态脚本,并保存到的定路径.(/usr/local/zabbix-agent/shells) # cat zabbix_linux_plugin.sh #!/bin/ ...
- (十)zabbix监控TCP状态
1)agent端配置 agent端脚本获取监控项 #vim /etc/zabbix/zabbix_agentd.d/tcp_status.sh #bin/bash [ $# -ne 1 ] & ...
- Zabbix 监控 Nginx 状态
简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) shell > /usr/local/nginx/sbin/ngi ...
- Zabbix 监控 Mysql 状态
简介: 如何使用 Zabbix 来监控 Mysql 状态 ? Zabbix 有自带监控 Mysql 的模板,但是却不能直接使用.. 需要我们根据模板提供的 Key 自己写脚本获取数据 1.查看都有哪些 ...
- zabbix对tcp状态监控
1.先编写一个获取tcp状态的脚本文件,脚本放在/usr/lib/zabbix/alertscripts/vim /usr/lib/zabbix/alertscripts/tcp_status.sh ...
- zabbix 监控 tcp 连接数
一.zabbix-agent 服务器配置 1.编辑zabbix_agent配置文件,添加以下内容 vim /etc/zabbix/zabbix_agentd.conf ##添加此行 UserParam ...
- Tomcat 常规配置并通过zabbix 监控 jvm状态
一:jdk和tomcat基础 apache有两种方式运行php,一是使用模块,二是使用fastcgi nginx也可以通过fastcgi处理动态请求,也可以转发至tomcat tomcat监控主要是监 ...
- zabbix监控tcp连接并发数
第一步,想在zabbix的web监控tcp连接数,那么要看zabbix-server的版本和zabbix-agent版本是否一致,不然TCP-status图没有数据 也会报错.下图就是版本不符合报错的 ...
- Zabbix 监控端口状态并邮件报警
Zabbix监控端口 前提 zabbix安装 zabbix邮件报警 添加监控项 添加触发器 添加动作 设置完成后,在配置过报警媒介后也就是 邮件报警 后就完成了.
随机推荐
- AdoConnect-获取连接字符串 (工具)
使用ADO访问数据库时需要设置正确的连接字符串,为此特提供一个获取连接字符串的小工具,方便编程使用. 使用方法: 1.点击“连接字符串”,弹出数据链接属性对话框 2.可以使用“提供程序”新建数据源,也 ...
- YII创建应用
创建第一个应用 打开cmd,切换到appserv的www目录下,输入: D:\AppServ\www>yii6\framework\yiic webapp D:wamp\www\mydemos
- SPREAD for Windows Forms 代码片段
'スクロールバーの移動 FpSpread1.ShowColumn(, , HorizontalPosition.Left) 'SetActiveCellの後.LeaveCellを呼び出す Dim ss ...
- VS2013 未找到與約束ContractName...
windows 2008 r2 上面裝的VS2013, 在某一天系統更新之後,再次打開VS項目的時候就出現了上面那個問題 解決方法,打開控制面板,找到下面這個程序,右擊,修復即可
- mysql 查询锁表
1)使用情景“判断通过后写入数据库”,这个一般是不会有问题的, 但并发访问的时候就不太好搞.因为写入(insert)是需要时间的,假设现在有两个并发请求,(假设第一个访问是最后一个符合条件的写入请求, ...
- windows自启动脚本
直接写一个普通批处理文件,如果是需要让它在系统启动时运行, 就将它放在C:\Windows\System32\GroupPolicy\Machine\Scripts\Startup目录下, 如果是需要 ...
- Redis存读取数据
这一节演示下载.NET中怎样使用Redis存储数据.在.net中比较常用的客户端类库是ServiceStack,看下通过servicestack怎样存储数据. DLL下载:https://github ...
- Splash js_enabled 属性
js_enabled属性是 Splash 的 JavaScript 执行开关,可以将其配置为 true 或 false 来控制是否执行 JavaScript 代码,默认为 true .例如,这里禁止执 ...
- VMware按装ISO
破解码 vmware12 5A02H-AU243-TZJ49-GTC7K-3C61N vmware14CG54H-D8D0H-H8DHY-C6X7X-N2KG6 创建虚拟机 也可以选第三个直接选择Ce ...
- centos7/nginx/tornado错误异常收集
临时方法 – 设置系统参数 使用命令setenforce 附: setenforce 设置SELinux 成为enforcing模式 setenforce 设置SELinux 成为permissive ...