【运维知识进阶篇】Zabbix5.0稳定版详解10(Zabbix自动注册+Ansible自动部署,实现一条命令监控任意主机)

当我们的Zabbix自动注册+Ansible自动部署在一起时,会碰出什么样的火花,答案就是可以实现执行ansible的一条命令,监控任意一台或多台主机。

目录

一、配置好自动注册规则

二、编写Ansible playbook

三、运行Ansible,查看监控效果


一、配置好自动注册规则

525e2dd92a3141a39cfa2a566db00693.png

二、编写Ansible playbook

1、编写playbook

[root@Ansible zabbix]# cat zabbix.yaml 
- hosts: web03
  vars:
    - SERVER_IP: 172.16.1.71
  tasks:
    - name: Install Zabbix-Agent
      yum:
        name: https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.34-1.el7.x86_64.rpm
        state: present
    - name: Install centos-release-scl and Agent
      yum:
        name: centos-release-scl
        state: present
    - name: Install Agent
      yum:
        name: zabbix-agent
        state: present
    - name: Config Zabbix-Agent
      template:
        src: zabbix_agentd.conf.j2
        dest: /etc/zabbix/zabbix_agentd.conf
      notify: Restart Zabbix Agent
    - name: Scp Zabbix Agent Configure
      copy:
        src: ./zabbix_agentd.d
        dest: /etc/zabbix/
    - name: Start Zabbix Agent
      systemd:
        name: zabbix-agent
        state: started
        enabled: yes
    
  handlers:
    - name: Restart Zabbix Agent
      systemd:
        name: zabbix-agent
        state: restarted

2、编写主机清单

[root@Ansible zabbix]# cat hosts 
[web_group]
web03 ansible_ssh_host=172.16.1.9

3、编写zabbix客户端配置文件,方便进行推送

[root@Ansible zabbix]# grep -v '^$\|^#' zabbix_agentd.conf.j2
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={
   
   { SERVER_IP }}
ServerActive={
   
   { SERVER_IP }}
Hostname={
   
   { ansible_hostname }}
Include=/etc/zabbix/zabbix_agentd.d/*.conf

4、如果需要自定义监控项也可以放到zabbix_agentd.d目录,跟配置文件一起推送过去,最终目录结构如下

[root@Ansible zabbix]# ll
total 24
-rw-r--r-- 1 root root    46 Jul  2 17:37 hosts
-rw-r--r-- 1 root root 16012 Jul  8 11:51 zabbix_agentd.conf.j2
drwxr-xr-x 2 root root     6 Jul  2 17:13 zabbix_agentd.d
-rw-r--r-- 1 root root   947 Jul  8 11:45 zabbix.yaml

三、运行Ansible,查看监控效果

如果主机多的话就用脚本做免密钥

[root@Ansible ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

[root@Ansible zabbix]# ansible-playbook -i hosts zabbix.yaml 

执行后发现动作日志以及执行了自动注册的动作 

92e2ad647e3544d98274ae3133dd19c9.png

也触发了邮箱 

cd1219e190794a15a94e7092311c7dc6.png  

主机列表成功添加了主机

2f7aaabfacfa4510b1901ba1ed086e28.png

也会自动关联我们设定的模板,数据也可以采集到,大功告成! 

277a9f06936c42d28d3ba2bd2d788f40.png


我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

猜你喜欢

转载自blog.csdn.net/qq_37510195/article/details/131476382
今日推荐