一、正常的处理流程: 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动作 具体执行:
ansible和python的zabbix_api批量添加rsync服务的监控
最新推荐文章于 2022-07-19 01:06:19 发布
本文介绍如何结合Ansible自动化工具和Zabbix的API接口,实现批量将多个rsync服务添加到Zabbix监控系统中,确保远程文件同步状态的实时监控与告警。
摘要由CSDN通过智能技术生成