ZABBIX配置自动添加端口监控,并触发重启服务
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,1、配置自动发现脚本#!/bin/bash # ----------------------------------------------------------------------------
千家信息网最后更新 2025年01月31日ZABBIX配置自动添加端口监控,并触发重启服务
1、配置自动发现脚本
#!/bin/bash # -------------------------------------------------------------------------------# Script_name: discovery_port.sh # Revision: 1.0# Date: 2017/05/08# Author: kbsonlong# Email: kbsonlong@gamil.com# Website: www.along.party# ------------------------------------------------------------------------------- source /etc/bashrc >/dev/null 2>&1 source /etc/profile >/dev/null 2>&1 port_discovery () { PORTS=($(cat /data/PRG/zabbix/scripts/PORT.txt|grep -v "^#")) printf '{\n' printf '\t"data":[\n' for((i=0;i<${#PORTS[@]};++i)) { num=$(echo $((${#PORTS[@]}-1))) if [ "$i" != ${num} ]; then printf "\t\t{ \n" printf "\t\t\t\"{#PORT}\":\"${PORTS[$i]}\"},\n" else printf "\t\t{ \n" printf "\t\t\t\"{#PORT}\":\"${PORTS[$num]}\"}]}\n" fi } } case "$1" in port_discovery) port_discovery ;;*) echo "Usage:$0 port_discovery" ;; esac
2、配置自定义KEY port
vim zabbix_agentd.conf 添加如下内容,并重启zabbix agent让自定义key生效
UserParameter=port,/data/PRG/zabbix/scripts/port_discovery.sh port_discovery
3、在zabbix server端使用zabbix_get测试ket是否生效
[root@ctc-167 bin]# ./zabbix_get -s 192.168.xxx.147 -k port{ "data":[ {"{#IP}":" 192.168.xxx.147"}, { "{#PORT}":"80"}, { "{#PORT}":"8080"}]}
4、zabbix web端添加自动发现规则模板(check_port.xml),导入后有如下模板,关联主机后自动创建监控项跟触发器
5、配置触发器动作
6、开启客户端远程执行命令,并重启agent
vim zabbix_agentd.conf EnableRemoteCommands = 1
7、由于远程执行命令使用的是zabbix用户执行,配置sudo,使zabbix用户拥有权限执行重启脚本
# visudozabbix ALL=NOPASSWD:/etc/init.d/nginxd
8、将监控端口关闭,此时通过zabbix web会发现,触发器执行远程命令操作。但是查看端口还是关闭状态
这是由于sudo执行默认需要控制终端
编辑 /etc/sudoers
1)Defaults requiretty,修改为 #Defaults requiretty,表示不需要控制终端。
2)Defaults requiretty,修改为 Defaults:nobody !requiretty,表示仅 nobody 用户不需要控制终端。
如果修改为 Defaults:%nobody !requiretty,表示仅 nobody 组不需要控制终端。
其实只要注释掉)Defaults requiretty 那个就可以了。表示在执行的时候不打开终端
重新开启服务,并等触发器恢复之后再将服务关闭,此时可以看到nginx进程是在16:16分启动。
# ps -ef |grep nginxroot 24516 1 0 16:16 ? 00:00:00 nginx: master process /data/PRG/nginx/sbin/nginx -c /data/PRG/nginx/conf/nginx.confnobody 24517 24516 0 16:16 ? 00:00:00 nginx: worker process nobody 24519 24516 0 16:16 ? 00:00:00 nginx: worker process nobody 24520 24516 0 16:16 ? 00:00:00 nginx: worker process nobody 24521 24516 1 16:16 ? 00:00:00 nginx: worker process root 24710 29543 0 16:17 pts/1 00:00:00 grep nginx
终端
配置
触发器
控制
命令
用户
端口
服务
监控
模板
脚本
主机
内容
动作
客户
客户端
时候
是在
权限
注释
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
武汉学软件开发的专科
网络安全工程师需要看哪些书
信息传送软件开发教程
广州尚聪网络技术有限公司
易语言外部数据库读字段名
省级贸易数据库
正在尝试链接其它服务器
路由器虚拟服务器是什么
有没有推荐的数据库
杭州市睦邻网络技术有限公司
服务器服务怎么写
健身俱乐部网络安全管理办法
存储球员数据库
nginx服务器的日志管理
sql2000数据库安装
英文互联网科技视频
太原标准机架服务器厂家供应
服务器里的宝塔面板能不能关闭
网络安全web怎么自学
自考计算机网络技术专业教材
硬件编程与网络技术
软件开发最低要什么文凭
top服务器
南通万千网络技术公司
广西网络安全管理
数据库分离报错3703
软件开发设计专业名词
软件开发中的脚本指
初中生学习网络安全的主旨
黎明杀机服务器太差了