Zabbix 利用 ncat 监控远端端口状态

2020-08-11 16:18:32 浏览数 (1)

Ncat 是一个通用的命令行工具,用于在网络上读取、写入、重定向和加密数据。它旨在成为网络瑞士军刀,处理各种各样的安全测试和管理任务。接下来介绍 Zabbix 如何利用 ncat 实现远端端口状态的监控。

os version

代码语言:javascript复制
[root@zabbix-server ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

ncat config

代码语言:javascript复制
#install ncat
[root@zabbix-server ~]# yum install nc
#ncat version
[root@zabbix-server ~]# rpm -qa |grep ncat
nmap-ncat-6.40-19.el7.x86_64

格式

代码语言:javascript复制
ncat  [options] [hostname] [port]

参数介绍

代码语言:javascript复制
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时

测试

TCP

代码语言:javascript复制
[root@zabbix-server alertscripts]# nc -w  1   192.168.99.50 -z 2222  && echo 0 || echo 1
0
[root@zabbix-server alertscripts]# nc -w  1   192.168.99.50 -z 2221  && echo 0 || echo 1
1

udp

代码语言:javascript复制
[root@ZABBIX-Server alertscripts]# nc -u -w  1   192.168.99.50 -z 514  && echo 0 || echo 1
0
[root@ZABBIX-Server alertscripts]# nc -u -w  1   192.168.99.50 -z 515  && echo 0 || echo 1
1

nc 脚本

代码语言:javascript复制
[root@zabbix-server alertscripts]# cat nc_port.sh 
#!/bin/bash
ipaddr=$1
port=$2
nc -w  1   ${ipaddr} -z ${port}  && echo 0 || echo 1
[root@ZABBIX-Server alertscripts]# 
[root@ZABBIX-Server alertscripts]# pwd
/usr/lib/zabbix/alertscripts

zabbix config

zabbix-agent(修改配置后重启 zabbix-agent)

代码语言:javascript复制
UnsafeUserParameters=1
UserParameter=nc.port[*],/usr/lib/zabbix/alertscripts/nc_port.sh $1 $2

测试

服务器开启 tcp 2222 端口,分别测试 2222 和 2221 其中 0 为开启 ,1 为关闭。

代码语言:javascript复制
[root@ZABBIX-Server ~]# zabbix_get  -s 192.168.99.50 -k nc.port[192.168.99.50,2222]
0
[root@ZABBIX-Server ~]# zabbix_get  -s 192.168.99.50 -k nc.port[192.168.99.50,2221]
1

映射值

监控项

预处理

Throttling 功能( Zabbix4.2 以上版本支持

Discard unchanged 直接丢弃重复的数据,如 item 采集的前一个数据和目前数据重复,则只保存前一个数据,直接丢弃后续采集的数据

Discard unchanged with heartbeat 配置一个心跳时间,周期时间内至少会存储一个不变的采集数据

最新数据

触发器

0 人点赞