zabbix自定义TCP 11种状态监控模板(十四)

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: zabbix自定义TCP 11种状态监控模板如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可

zabbix自定义TCP 11种状态监控模板

如果一直对多个主机同时增加监控项那么会非常麻烦,在实际生产中有很多时候我们都需要对一批机器同时增加多个相同的监控项,如果一个一个手动添加将会非常麻烦,因此就有了模板的诞生,我们只需要创建一个模板,让需要监控的主机链接模板即可

我们先手动实现监控项的大规模创建,然后再做成模板

我们以tcp11种状态为例进行添加监控项

tcp11中状态
ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSE
CLOSE_WAIT
LAST_ACK
LISTEN
CLOSING

tcp三次握手、四次挥手概念图

三次握手:


首先客户端处于close关闭状态,与服务器发送第一个SYN请求后(这个SYN请求会带一个seq随机序列),客户端处于SYN_SENT状态,服务器在接收客户端发送的请求的同时一定要处于listen监听状态,否则无法收到请求包,收到请求包之后处于SYN_RCVD状态,这时也会给客户端发送一个SYN的请求包(也有随机序列),并发送一个ACK的确认包(这里ACK的随机序列值就是客户端发送SYN的序列号+1),客户端收到这两个包后会处于ESTABLISHED状态,这时也会给服务器端发送一个ACK的包(这里ACK的随机序列值就是服务端发送的SYN序列+1),服务端收到后状态处于ESTABLISHED


注意这个状态的请求数如果很多会遭到ddos攻击


四次挥手:


需要断开连接时时由服务端主动断开连接的,因为数据传输是服务端发起的,因此断开也是由服务器发起


首先服务端给客户端发送一个FIN的请求包(表示要求断开连接),发送完成后服务端处于FIN_WAIT_1状态(_1只是为了和第二次挥手做一个区分)客户端收到后会发送一个ACK的确认包,发送完成后,客户端处于CLOSE_WAIT状态,服务端收到后会处于FIN_WAIT_2状态,这时客户端也会发送一个FIN的请求包,请求断开连接,客户端发送完成后悔处于LAST_ACK状态,服务端收到FIN请求包后会处于TIME_WAIT状态,这时会有一个2MSL时间(MSL时间为60s,2MSL就是120s),2分钟后会给客户端发送一个ACK的确认包,表示确认断开连接,客户端收到后会处于close状态,四次挥手完成

1.手动创建TCP11种状态监控项

1.1.创建自定义监控项key

1.批量获取tcp11种状态取值命令
[root@zabbix-server ~]# stata=(ESTABLISHED SYN_SENT SYN_RECV FIN_WAIT1 FIN_WAIT2 TIME_WAIT TIME_WAITCLOSE CLOSE_WAIT LAST_ACK LISTEN  CLOSING )
[root@zabbix-server ~]# for i in ${stata[@]}; do echo "netstat -anpt | grep -c "\'$i\'""; done
netstat -anpt | grep -c 'ESTABLISHED'
netstat -anpt | grep -c 'SYN_SENT'
netstat -anpt | grep -c 'SYN_RECV'
netstat -anpt | grep -c 'FIN_WAIT1'
netstat -anpt | grep -c 'FIN_WAIT2'
netstat -anpt | grep -c 'TIME_WAIT'
netstat -anpt | grep -c 'TIME_WAITCLOSE'
netstat -anpt | grep -c 'CLOSE_WAIT'
netstat -anpt | grep -c 'LAST_ACK'
netstat -anpt | grep -c 'LISTEN'
netstat -anpt | grep -c 'CLOSING'
2.批量获得key值
[root@zabbix-server ~]# for i in ${stata[@]}
> do
> echo "UserParameter=$i,netstat -anpt | grep -c "\'$i\'""
> done
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING
3.在配置文件定义key值
[root@zabbix-server ~]# vim /etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=ESTABLISHED,netstat -anpt | grep -c 'ESTABLISHED'
UserParameter=SYN_SENT,netstat -anpt | grep -c 'SYN_SENT'
UserParameter=SYN_RECV,netstat -anpt | grep -c 'SYN_RECV'
UserParameter=FIN_WAIT1,netstat -anpt | grep -c 'FIN_WAIT1'
UserParameter=FIN_WAIT2,netstat -anpt | grep -c 'FIN_WAIT2'
UserParameter=TIME_WAIT,netstat -anpt | grep -c 'TIME_WAIT'
UserParameter=TIME_WAITCLOSE,netstat -anpt | grep -c 'TIME_WAITCLOSE'
UserParameter=CLOSE_WAIT,netstat -anpt | grep -c 'CLOSE_WAIT'
UserParameter=LAST_ACK,netstat -anpt | grep -c 'LAST_ACK'
UserParameter=LISTEN,netstat -anpt | grep -c 'LISTEN'
UserParameter=CLOSING,netstat -anpt | grep -c 'CLOSING
4.重启zabbix-agent
[root@zabbix-server ~]# systemctl restart zabbix-agent

1.2.页面创建监控项

找到我们的zabbix server主机,因为自定义key都是在zabbix server上创建的所有监控项都是这么创建

点击创建监控项

名称:ESTABLISHED状态数量

键值:ESTABLISHED

应用集:tcp 11 state

所有监控项创建完成

2.将tcp11种状态做成模板并给主机群组所有主机应用

2.1.将监控项key配置文件推送至监控主机

[root@zabbix-server ~]# for i in 192.168.81.220 192.168.81.230
> do
> scp /etc/zabbix/zabbix_agentd.d/tcp.conf root@$i:/etc/zabbix/zabbix_agentd.d/
> ssh root@$i "systemctl restart zabbix-agent"
> done
Warning: Permanently added '192.168.81.220' (ECDSA) to the list of known hosts.
root@192.168.81.220's password: 
tcp.conf                          100%  660   205.2KB/s   00:00    
root@192.168.81.220's password: 
Warning: Permanently added '192.168.81.230' (ECDSA) to the list of known hosts.
root@192.168.81.230's password: 
tcp.conf                          100%  660   708.3KB/s   00:00   
root@192.168.81.230's password: 

2.2.建立模板

点击配置—模板—创建模板

2.3.添加监控项

点击创建监控项即可

2.4.将已有的监控项加入到模板中

找到刚刚创建的tcp11个监控项点击复制

目标类型选择模板—找到对应的模板

可以看到已经有监控项了

2.5.创建应用集

找到模板—应用集—创建应用集

2.6.将监控项添加到应用集中

全选监控项—批量更新

找到添加新的或者已经存在的应用进行选择应用集

2.7.创建图形

模板—图形—创建图形

填写图形信息

名称:tcp11中状态

监控项选择所有tcp监控项

点击添加

2.8.模板创建完成

2.9.给主机群组中的主机应用模板

192.168.81.220操作

点击配置—主机—模板—选择模板—添加

点击更新

192.168.81.230操作一致

2.10.监控项已经增加

2.11查看监控数据

监测—最新数据—选择主机—选择应用集

2.12查看图形

配置—图形—选择主机—选择图形

3.缩小不支持监控项等待时间

默认10m,我们修改为10s

管理—一般—选择其他—刷新不支持的项目

10s后不支持的会自动刷新

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
3月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
14天前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
51 7
|
1月前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
48 2
|
2月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
53 2
zabbix agent集成percona监控MySQL的插件实战案例
|
3月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
102 0
|
5月前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
85 0
Zabbix监控神通数据库教程
|
4月前
|
监控 关系型数据库 应用服务中间件
Linux zabbix监控 软件的安装
Linux zabbix监控 软件的安装
|
6月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
6月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
269 4
|
11月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
268 0

推荐镜像

更多