Zobrazují se příspěvky se štítkemAnsible. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemAnsible. Zobrazit všechny příspěvky

středa 13. listopadu 2024

Zabbix Events to Event-Driven Ansible (EDA vs ansible-rulebook)

Již delší dobu jsem si sem nic nepoznamenal. Ale přišla příležitost si vyzkouset Zabbix a integraci s Event-Driven Ansible webhook v podobě Media Type. Inspirací a podnětem pro mě byl článek na blogu Zabbix.

Nejprve jsem se zaměřil na zprovoznění a seznámení se s EDA serverem, který jsem si zprovoznil pomocí docker compose.

https://github.com/smejdil/zabbix-eda/tree/main/tools/docker

EDA je pěkné klikátko, které má smysl použít jen s AWX nebo RedHat AAP protože neumí použít inventory :-( Tento poznatek byl zklamáním.


 
Narazil jsem na tuto chybu :-(

Rulebook fails with "Playbook has an action run_playbook which needs inventory to be defined"

https://access.redhat.com/solutions/7024714

Root Cause You can only use the run_playbook with ansible-rulebook cli while also specifying inventory. If you want to use the integrated AAP / EDA interactions, you probably are looking for run_job_template which is defined on your AAP controller and created under the correct organization.

No a ještě potvrzení ... ohledně akce run_playbook

run_playbook (only supported with ansible-rulebook CLI)

A tak jsem se tedy vydal cestou ansible-rulebook a vytvořil si Docker kontainer pro vytvoření webhooku na portu 5001, který reaguje na událost akci v podobě ansible playbooku.

- name: Zabbix test rulebook
  hosts: all
  sources:
    - ansible.eda.webhook:
        host: "::"
        port: 5001
    - ansible.eda.webhook:
        host: "0.0.0.0"
        port: 5001
  rules:
    - name: Run playbook for Apache2
      condition: >-
        event.payload.host_groups is select("==","Private/LM.NET/Office") and
        event.payload.event_tags.target is select("==","apache")
      action:
        run_playbook:
          name: playbooks/check-apache.yaml
...




Webhooků s ansible-rulebook si můžu rozjet více v kontainerech pro jednotlivé pojekty a ze Zabbixu to můžu posílat na jednotlivé porty dle akce ktára reaguje třeba jen na tag target:eda, takže je to událostní kolečko snadno realizovatelné.

Je pracné nadefinovat pravidla v rulebooku a napsat opravné playbooky, ale přijde mi to rozumný ucelený rešeni postavené na Ansible, pro fixnutí nějakých služeb, které maji nějaké podivné vlastnosti (třeba i ve Windows) a je nutné je za jistych zjištených okolností fixnout 😊 restartem nebo jiným opatřením.

Pravý Zabbixák mi odpoví nemusíš mít přeci Událostní udělátko, stačí Zabbix Script a Akce co reaguje na Trigger 😊

za me to jisté řešení je

Konec hlášení ...

sobota 30. října 2021

Zabbix server s PostgreSQL 14 a TimescaleDB 2.5

S oblibou používám OS FreeBSD a na něm provozuji Zabbix a to v konfiguraci s DB PostgreSQL s rozšířením TimescaleDB. TSDB vyšlo nedávno ve verzi 2.5.0 a tak jsem si napsal svůj velmi jednoduchý Ansible playbook, který zajistí instalaci statických pkg balíčků a provede nutnou kompilaci z portů u těch, u kterých je to třeba.

  • FreeBSD 13.0-RELEASE-p4
  • Zabbix  5.0.17
  • PostgreSQL 14.0_1
  • TimescaleDB 2.5.0

https://github.com/smejdil/freebsd-zabbix-server

Testováno v pomocí Vagrant a GCP ...