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邮件报警 添加监控项 添加触发器 添加动作 设置完成后,在配置过报警媒介后也就是 邮件报警 后就完成了.
随机推荐
- Python爬虫-豆瓣电影 Top 250
爬取的网页地址为:https://movie.douban.com/top250 打开网页后,可观察到:TOP250的电影被分成了10个页面来展示,每个页面有25个电影. 那么要爬取所有电影的信息,就 ...
- ActiveMq持久化数据
A:持久化为文件 这个你装ActiveMQ时默认就是这种,只要你设置消息为持久化就可以了.涉及到的配置和代码有 <persistenceAdapter> <kahaDB direct ...
- ubuntu alsa2
ALSA是Advanced Linux Sound Architecture简称.它包含一组kernel 驱动,一个应用编程接口(API)库以及一组工具函数.本文中,我们会向读者展示ALSA项目和组成 ...
- 使用Matplotlib画图系列(一)
实现一个最简单的plot函数调用: import matplotlib.pyplot as plt y=pp.DS.Transac_open # 设置y轴数据,以数组形式提供 x=len(y) # 设 ...
- Android的WebView控件载入网页显示速度慢的究极解决方案
Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] 秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国 ...
- Struts2_day03讲义_使用Struts2完成对客户查询的优化操作
- ios开发之-- tableview/collectionview获取当前点击的cell
方法如下: 一般collectionView 或者 tableview都有自带的点击函数,如下: , collectionView -(void)collectionView:(UICollectio ...
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
轉自:http://blog.chinaunix.net/uid-9543173-id-3921143.html 利用OpenSSL库对Socket传输进行安全加密(RSA+AES) 1. 利用RSA ...
- Cocos2dx3.0 TextField 输入中文的问题
一开始无法输入中文, 显示出来的是乱码, 修改一个函数, 下面是修改过后的代码 void GLView::onGLFWCharCallback(GLFWwindow *window, unsigned ...
- 第1章 Ansible 简介
1. Ansible 优点 (1) 易读的语法:Ansible使用playbook作为配置管理脚本,playbook是基于YAML开发的,是一种易于读写的数据格式(2) 远程主机无须安装任何依赖:被A ...