ansible和python的zabbix_api批量添加rsync服务的监控

本文介绍如何结合Ansible自动化工具和Zabbix的API接口,实现批量将多个rsync服务添加到Zabbix监控系统中,确保远程文件同步状态的实时监控与告警。
摘要由CSDN通过智能技术生成
一、正常的处理流程:

1.添加zabbix用户对rsync程序的sudo权限,且不需要输入密码
# visudo即在/etc/sudoers配置文件最后添加如下内容

Defaults:zabbix !requiretty
zabbix ALL=NOPASSWD: ALL
zabbix ALL=NOPASSWD: /bin/bash /usr/local/rsync/bin/rsync


2.编写自动拉起服务的脚本,判断rsync程序是否存在,如果不存在就启动rsync
# vim /usr/local/zabbix_agents_3.2.0/scripts/start_rsy.sh
#!/bin/bash
count_num=`ps -ef|grep 'rsync'|grep -v grep|wc -l`
echo $count_num
if [ $count_num -eq 0 ];then
/etc/init.d/rsync start
fi

# 添加程序的可执行权限
[root@web02:~]# chmod +x /usr/local/zabbix_agents_3.2.0/scripts/start_rsy.sh

3.打开zabbix agent的远程命令
sed -i 's|# EnableRemoteCommands=0|EnableRemoteCommands=1|g' /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf

# 重启zabbix客户端
[root@web02:~]# /etc/init.d/zabbix_agentd restart

二、使用ansible批量处理添加rsync的监控
ansible批量添加监控需要做大量的准备工作,相对比较繁琐,如果需要监控的主机就几台手动几分钟就添加好了,当集群大到一定规模手动处理就显得很笨拙了
使用ansible进行添加,后面即使新增单台服务器也可以这么操作,可以避免我们手动操作遗漏步骤

# 添加需要处理的主机信息
# vim /etc/ansible/hosts
chinasoft_cbs_backend_web2    ansible_host=172.30.0.243    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass
chinasoft_apiser_web03    ansible_host=172.30.0.27    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass
chinasoft_platform_web01    ansible_host=172.30.0.19    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass
chinasoft_platform_web02    ansible_host=172.30.0.17    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass
chinasoft_platform_web03    ansible_host=172.30.0.20    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass
chinasoft_platform_web04    ansible_host=172.30.0.18    ansible_port=2018    ansible_user=root    ansible_ssh_pass=pass

1.添加sudoer的权限
# 添加zabbix的sudo权限,/etc/sudoers结尾添加这三行
Defaults:zabbix !requiretty
zabbix ALL=NOPASSWD: ALL
zabbix ALL=NOPASSWD: /bin/bash /usr/local/rsync/bin/rsync

# 所有sudo执行rsync的权限
ansible all -m blockinfile -a 'path=/etc/sudoers block="Defaults:zabbix !requiretty\nzabbix ALL=NOPASSWD: ALL\nzabbix ALL=NOPASSWD: /bin/bash /usr/local/rsync/bin/rsync\n" insertbefore=EOF'

2.拷贝脚本到远程主机

ansible all -m copy -a "src=/usr/local/zabbix_agents_3.2.0/scripts/start_rsy.sh dest=/usr/local/zabbix_agents_3.2.0/scripts/ mode=0755"

3.开启远程命令
ansible chinasoft_cbs_out_db3 -m shell -a "sed -i 's|# EnableRemoteCommands=0|EnableRemoteCommands=1|g' /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf"


4.zabbix-server在web上添加action动作

具体执行:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值