Zabbix 利用 ncat 监控远端端口状态
时间:2022-07-23
本文章向大家介绍Zabbix 利用 ncat 监控远端端口状态,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Ncat 是一个通用的命令行工具,用于在网络上读取、写入、重定向和加密数据。它旨在成为网络瑞士军刀,处理各种各样的安全测试和管理任务。接下来介绍 Zabbix 如何利用 ncat 实现远端端口状态的监控。
os version
[root@zabbix-server ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
ncat config
#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
格式
ncat [options] [hostname] [port]
参数介绍
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉——用于扫描时
测试
TCP
[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
[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 脚本
[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)
UnsafeUserParameters=1
UserParameter=nc.port[*],/usr/lib/zabbix/alertscripts/nc_port.sh $1 $2
测试
服务器开启 tcp 2222 端口,分别测试 2222 和 2221 其中 0 为开启 ,1 为关闭。
[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 配置一个心跳时间,周期时间内至少会存储一个不变的采集数据
最新数据
触发器
- python装饰器大详解
- spring boot 登录注册 demo (四) -- 体验小结
- jenkins 时区设置
- 什么样的密码才是安全的?
- MAC本遭遇ARP攻击的处理办法
- nodejs 语法学习(持续更新)
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
- - Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side
- Django - - - -视图层之视图函数(views)
- fiddler mock ==> AutoResponder
- 基于Node.js开发跨平台窗口程序
- Django视图层之路由配置系统(urls)
- java String时间转为时间戳
- linux 简易启动脚本
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Django-rest-framework中过滤器的定制实例
- Python greenlet和gevent使用代码示例解析
- 完美解决pyinstaller打包报错找不到依赖pypiwin32或pywin32-ctypes的错误
- Android开发中Intent.Action各种常见的作用汇总
- Android解决ScrollView下嵌套ListView和GridView中内容显示不全的问题
- Android添加ButterKnife时报错Error:(2, 0) Cannot add extension with name 'android'的解决办法
- Python视频编辑库MoviePy的使用
- python json.dumps中文乱码问题解决
- Android定时器实现定时执行、重复执行、定时重复执行、定次数执行的多种方式
- Android开发导入项目报错Ignoring InnerClasses attribute for an anonymous inner class的解决办法
- Android中buildToolVersion与CompileSdkVersion的区别
- Glide用法与技巧以及优秀库的推荐
- Android整理好的图片压缩工具类
- Android Studio获取网络JSON数据并处理的方法
- Android使用ViewPager快速切换Fragment时卡顿的优化方案