本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板。
1.准备工作
在zabbix服务器上面,我们需要安装ansible,同时呢,还需要安装一些其它组件,如下:
# yum install epel-release
# yum install ansible python-pip
# pip install zabbix-api
# pip install --upgrade pip
2. 添加zabbix 主机组的playbook
添加主机前,我们需要创建主机组。
# ansible-playbook add-hostgroup.yml #执行playbook会自动添加主机组
playbook内容如下:
添加zabbix主机组
---
- name: config zabbix
hosts: localhost
tasks:
- name: create and update zabbix groups
local_action:
module: zabbix_group
server_url: http://wszabbix.wondershare.cn #zabbix服务器的访问地址
login_user: wszabbix
login_password: *******
state: present
host_groups:
- IAAS-App-AD-Srv
- IAAS-App-Mail-Srv
- IAAS-App-Skype-Srv
- IAAS-App-SQL-Srv
- IAAS-App-Horizon-Srv
- IAAS-App-Veeam-Srv
|
3. 添加zabbix主机的playbook
我们需要先写一个变量文件,存放主机信息,采用字典的书写方式,变量文件:win_host_info.yml ,内容如下:
主机变量
hostinfo: #变量名字
update.wondershare.cn: #变量的key,这个可以自己定义,也可以不用被监控的主机的FQDN
fqdn: update.wondershare.cn #我定义的是主机的FQDN(变量key的value值,我们需要在playbook中引用,最好定义有意义的名字)
app: IAAS-App-AD-Srv #我的用途是主机组,表示主机存放在哪个主机组
ip: 192.168.11.157 #我的用途是主机的IP地址
szdc04.wondershare.cn:
fqdn: szdc04.wondershare.cn
app: IAAS-App-AD-Srv
ip: 192.168.10.81
|
定义好了主机变量文件,我们就可以在playbook中引用了。
#ansible-playbook add-win-hosts.yml #以下以配置playbook的内容
添加zabbix主机
---
- name: config zabbix
hosts: localhost
vars_files:
- win_host_info.yml
tasks:
- name: add and update Windows hosts to zabbix
local_action:
module: zabbix_host
server_url: http://wszabbix.wondershare.cn
login_user: wszabbix
login_password: ******
host_name: "{{ item.value.fqdn }}"
visible_name: "{{ item.value.fqdn }}"
host_groups:
- "{{ item.value.app }}"
link_templates: #链接的模板
- Template ICMP Ping
- Template OS Windows
- Template TCP Status
status: enabled
state: present
inventory_mode: disabled
interfaces:
- type: 1
main: 1
useip: 1
ip: "{{ item.value.ip }}"
dns: ""
port: 10050
with_dict: "{{ hostinfo }}" #迭代的类型选择with_dict
|