• 写Ansible playbook添加zabbix被监控的对象


    本主题达到的效果是能通过编写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
  • 相关阅读:
    Java设计模式知识整理
    Java单例实现及分析
    Java开源框架知识整理
    JavaJ2EE相关知识整理
    数据库相关知识整理
    JavaJDK8新特性相关知识整理
    Java并发编程相关知识整理
    Java集合框架相关知识整理
    Java虚拟机JVM相关知识整理
    若依项目利用nginx实现负载均衡及保持会话
  • 原文地址:https://www.cnblogs.com/reachos/p/10619644.html
Copyright © 2020-2023  润新知