ansible批量安装zabbix客户端并实现自动发现功能

ansible批量安装zabbix客户端并实现自动发现功能

环境说明:

  139机器(192.168.0.139):安装好ansible,并配置ssh免密钥能登录243和244的机器

  cat /etc/ansible/hosts,设置了k8s分组

。。。
[k8s]
192.168.0.243
192.168.0.244
。。。

测试: ansible k8s -m command -a 'uptime'

ansible批量安装zabbix客户端并实现自动发现功能

一、ansible批量安装zabbix客户端

playbook介绍 简单理解:把模块,函数放在一个配置文件里,单独执行配置文件,实现远程自动化的操作 官方文档:https://docs.ansible.com/ansible/latest/cli/ansible-playbook.html

 

1、139机器先在本机安装好zabbix客户端

1 ./configure --prefix=/home/cudo/app/zabbix4.0.14_agentd/ --enable-agent
2 make && make install

  2、使用roles完成zabbix_agentd的安装和配置

【i】创建role的步骤 (1)创建以roles命名的目录 (2)在roles目录中分别创建以各角色名称命名的目录,我这里是new (3)在每个角色命名的目录中分别创建files、tasks、templates和vars目录 (4)在playbook文件中,调用各角色

  【ii】ansible目录结构:

ansible批量安装zabbix客户端并实现自动发现功能

 文件夹说明:

(1)files:放置本机已经装好的zabbix客户端(二进制安装),存放由copy或script模块等调用的文件 (2)tasks:定义task,role的基本元素,至少应该包含一个名为main.yml的文件 (3)templates: template模块查找所需要模板文件的目录 (4)vars:定义变量,至少应该包含一个名为main.yml的文件

  【iii】具体文件说明 1、zabbix.yml:
- hosts: all
  user: root
  roles:
  - new
说明: (1)host:对哪些主机(组)进行操作 (2)user:使用什么用户登录远程主机操作   2、tasks/main.yml (1)复制已安装的zabbix客户端目录文件到远端机器上 (2)解压 (3)zabbix_agentd 配置文件替换 (4)启动zabbix_agentd
[root@zabbix4 tasks]# cat main.yml 
- name: scp zabbix(包含zabbix_agentd) 到 client
  copy: src=zabbix4.0.14_agentd.tar.gz dest={{ zabbix_home }}
  
- name: tar -xvf zabbix4.0.14_agentd.tar.gz 解压
  shell: cd {{ zabbix_home }} && tar xvf zabbix4.0.14_agentd.tar.gz

- name: Copy zabbix_agent.conf Config file
  template: >
        src=zabbix_agentd.conf.j2
        dest=/home/cudo/app/zabbix4.0.14_agentd/etc/zabbix_agentd.conf
        mode=0755 owner=cudo group=cudo
- name: start zabbix
  service: cd {{ zabbix_home }}/zabbix4.0.14_agentd && ./zabbix_agentd start

 

3、templates/zabbix_agentd.conf.j2

[root@zabbix4 new]# cat templates/zabbix_agentd.conf.j2 
LogFile=/tmp/zabbix_agentd.log
Server={{zabbix_serverip}}
ServerActive=0.0.0.0:10050
Hostname={{ansible_hostname}}  
User=zabbix
UnsafeUserParameters=1
说明: (1)Hostname:获取远程主机的hostname

4、vars/main.yaml 定义变量 zabbix_home,zabbix_serverip

[root@zabbix4 new]# cat vars/main.yaml 
zabbix_home: /home/cudo/app
zabbix_serverip: 192.168.0.139

 

【iv】运行并安装 (1)cd /etc/ansible/zabbix_agentd_install (2)ansible-playbook zabbix.yml ansible批量安装zabbix客户端并实现自动发现功能

 

(3)检查是否成功安装zabbix客户端

ansible k8s -m raw -a "ps -ef |grep zabbix_agentd" ansible批量安装zabbix客户端并实现自动发现功能ansible批量安装zabbix客户端并实现自动发现功能

 

 二、zabbix自动发现并批量添加主机

web页面:依次点击“配置”>>> “动作”>>> 事件源 选择“自动发现” >> 点击“创建动作”

1、配置动作

依次配置“名称、触发条件”后点击“添加”

(1)名称:自动发现内网主机

(2)新的触发条件:

服务类型 等于 Zabbix 客户端

主机IP地址 等于 192.168.0.240-246

添加保存

  ansible批量安装zabbix客户端并实现自动发现功能

 

2、配置操作 ansible批量安装zabbix客户端并实现自动发现功能ansible批量安装zabbix客户端并实现自动发现功能

 

 自动添加的主机会分到“Discovered hosts 上

ansible批量安装zabbix客户端并实现自动发现功能

上一篇:windows安装zabbix-agent


下一篇:实战--Playbook批量部署zabbix-agent