Ad Widget

Collapse

Zabbix+Ansible

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • outlander
    Junior Member
    • Dec 2012
    • 3

    #1

    Zabbix+Ansible

    Добрый день. Я использую Ansible для настройки серверов. При запуске роли устанавливается zabbix-agent и хост успешно добавляется к Zabbix, попутно цепляя дефолтовый шаблон. Если после этого я запускаю ещё какую-то роль, например nginx, то подключается шаблон мониторинга nginx. Проблема заключается в том, что при добавлении нового шаблона через ansible, все шаблоны присоединённые к хосту в Zabbix пропадают и остаётся только последний.
    Может у кого-то есть опыт использования данной связки? Возможно ли как-то добавлять шаблоны через ansible-playbook и что-бы существующие не удалялись? Спасибо.
  • Константин
    Junior Member
    • Sep 2020
    • 7

    #2
    Добрый день. Настраивал подобную связку для теста, но я создавал узлы сразу со массивом шаблонов.
    Подключение к заббикс делал через api в ansible используя модуль uri вид, выглядело это примерно так:

    Code:
    - name: create hosts
      local_action:
      module: uri
      url: "{{zabbix_api_url}}"
      validate_certs: no
      body_format: json
      body:
        jsonrpd: "2.0"
        method: "host.create"
        id: 1
        auth: "{{auth_response.json.result}}"
        params:
          host: "{{ansible_nodename}}"
          interfaces:
            type: "{{zbx_int_type_agent}}"
            main: 1
            userip: 0
            ip: "{{ansible_default_ipv4.address}}"
            dns: "{{ansible_fqdn}}"
            port: 10050
          groups: "{{all_group_ids}}"
          template: "{templates_ids}}"
    ну дальше думаю смысла нет продолжать, переменная template_ids именно массив id-шников шаблонов. https://www.zabbix.com/documentation...ce/host/update. Думаю что при изменении есть смысл получать список шаблонов, добавлять в него свой id и обновлять уже массивом. Ну как-то так...


    З.Ы. Если используете другой метод работы с zabbix из ansible? напишите пожалуйста было бы интересно.

    Comment

    • outlander
      Junior Member
      • Dec 2012
      • 3

      #3
      Согласен с Вами полностью, я ещё не придумал как мне получать этот массив. Я в процессе изучения)

      А план, как пример, был таков:

      Code:
      - name: "Link template Nginx,PHP-FPM to zabbix monitoring"
      zabbix_host:
      server_url: "{{ zabbix_url }}"
      login_user: "{{ zabbix_api_user }}"
      login_password: "{{ zabbix_api_pass }}"
      host_name: "{{ ansible_fqdn }}"
      link_templates:
      - base_role
      - Template App Nginx by Zabbix agent
      - PHP-FPM by Zabbix agent
      state: present
      delegate_to: localhost

      Comment

      • grommir
        Senior Member
        • Mar 2013
        • 134

        #4
        Там есть параметр "force" который, по умолчанию, "yes".



        Должно выглядеть как-то так
        Code:
        - name: add template to host
        local_action:
        module: zabbix_host
        server_url: "https://{{ zabbix_server_name }}"
        login_user: "{{ zabbix_username }}"
        login_password: "{{ zabbix_password }}"
        host_name: "{{ ansible_fqdn }}"
        visible_name: "{{ ansible_fqdn }}"
        host_groups:
        - "{{ host_group }}"
        link_templates:
        - "{{ host_template }}"
        status: enabled
        state: present
        force: no

        Comment

        • grommir
          Senior Member
          • Mar 2013
          • 134

          #5
          Клмн. Yaml поломало. Движок форума - говно.

          Comment

          Working...