Nicht jeder betreibt einen OEM – Oracle Enterprise Manager – nur um seine OLVM Landschaft zu monitoren. Da Oracle LVM eine eigene Firewall-Konfiguration mitbringt, und diese bei Patches und Upgrades jeweils erneut einspielt, muss man einige kleiner Hürden umgehen, um ein 3rd Party Monitoring Tools wie CheckMK nutzen zu können.
Gleich vorweg: OLVM hat in den letzten Jahren die Firewall-Konfigurationen nicht mehr geändert. Das bedeutet jedoch nicht, dass das in Zukunft auch so sein wird. Wenn man dieser Anleitung folgt, wird als einer der notwendigen Schritte der OLVM Firewall Manager deaktiviert. Das ist notwendig, da sonst der nächst Patch alles wieder auf den Default zurücksetzen würde – und die gemachten Anpassungen somit verloren gehen würden. Daher ist es zumindest bei Upgrades auf eine neue Version wichtig, dass man in der Dokumentation prüft, ob es Änderungen an den benötigten Ports und Firewall-Regeln gibt.
OLVM Firewall Anpassungen für CheckMK Agent
Hier ein Beispiel wie man das persistent auf der OLVM Landschaft durchführt. In dem Beispiel stellen wir die Voraussetzungen für die Nutzung eine CheckMK Agents um.
Was benötigt der CheckMK Agent in der Firewall Konfiguration auf den zu überwachenden Hosts?
- eingehende Verbindungen
- Port 6556/TCP
- muss auf dem OLVM Manager und den OLVM Hosts freigeschaltet werden
- Port 6556/TCP
OLVM Manager Host
Damit die Freischaltung im OLVM Manager persistent (auch nach einem engine-setup mit Firewall Config) vorhanden ist, muss folgendes gemacht werden.
vi /etc/firewalld/services/checkmk-agent.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Checkmk Agent and ICMP</short>
<description>Eingehender Checkmk Zugriff (Port 6556 und Ping)</description>
<port protocol="tcp" port="6556"/>
</service>
vi /etc/ovirt-engine-setup.conf.d/20-disable-firewall-manager.conf
[environment:default]
OVESETUP_CONFIG/firewallManager=none:None
Mit dieser Änderung greift OLVM beim engine-setup die Firewall nicht mehr an, d.h. man kann die Firewall selbst verwalten. Ohne diese Einstellung überschreibt der OLVM Manager bei jedem Patching die Konfiguration und die „fremden“ Konfigurationen. Das ist die einzige sichere Möglichkeit, dass diese Änderung auch persistent wird.
Jetzt manuell setzen:
# Holt die aktive Zone des Managers (meistens 'public' oder 'ovirt')
ACTIVE_ZONE=$(firewall-cmd --get-default-zone)
# Schaltet den Port 6556 permanent frei
firewall-cmd --permanent --zone="$ACTIVE_ZONE" --add-port=6556/tcp
# Lädt die Firewall neu, um die Änderung sofort zu aktivieren
firewall-cmd --reload
Wenn man jetzt ein engine-setup mit configure Firewall durchführt, bleibt der Port erhalten.
OLVM Hosts
Damit die Freischaltung auf den OLVM Hosts persistent (auch nach einem reinstall) vorhanden ist, muss folgendes am OLVM Manager Engine Host gemacht werden.
OLVM Manager Engine Host
Am OLVM Manager müssen die Ansible Scripts erweitert werden, damit diese bei Wartungsarbeiten immer entsprechend ausgerollt werden und diese Freischaltungen dadurch nicht verloren gehen.
Damit wird sichergestellt, dass die Konfiguration auch auf neue OLVM Hosts ausgerollt wird und auch nach Updates wieder eingespielt wird.
vi /etc/ovirt-engine/ansible/ovirt-host-deploy-post-tasks.yml
Achtung: Bei dem yml File muss die Syntax exakt passen, sonst funktioniert es nicht – am besten das Example File im gleichen Ordner als Vergleich hernehmen
- name: Checkmk-Agent Port dauerhaft auf KVM-Hosts freischalten
ansible.posix.firewalld:
port: 6556/tcp
permanent: true
immediate: true
state: enabled
vars:
ansible_python_interpreter: /usr/bin/python3
Dieses Script führt der Manager automatisch aus, wenn die Ansible Scripts angewendet werden. Das passiert z.b.:
- reinstall Host
- Update Host via OLVM Webportal
Testen der Einstellungen
vi /tmp/test-olvm-deployment.yml
Achtung: Bei dem yml File muss die Syntax exakt passen, sonst funktioniert es nicht – am besten das Example File im gleichen Ordner als Vergleich hernehmen
- hosts: all
gather_facts: no
tasks:
- name: Simuliere OLVM Post-Tasks
include_tasks: /etc/ovirt-engine/ansible/ovirt-host-deploy-post-tasks.yml
Damit kann man mal einen dry-run durchführen:
ansible-playbook -i "olvmhost1,olvmhost2," -u root -k \
-e "ansible_python_interpreter=/usr/bin/python3" \
/tmp/test-olvm-deployment.yml --check
Die Änderung für die OLVM Hosts umsetzen
Wenn alles passt, kann man mit dem folgenden Befehl die Konfiguration ausrollen:
ansible-playbook -i "olvmhost1,olvmhost2," -u root -k \
-e "ansible_python_interpreter=/usr/bin/python3" \
/tmp/test-olvm-deployment.yml
Überprüfung der Firewall Einstellung auf allen Hosts
Auf dem OLVM Manager und den OLVM Hosts prüfen ob die gewünschten Ports freigeschaltet sind:
firewall-cmd --list-ports | grep 6556
Damit ist jetzt alles vorbereitet, dass der CheckMK Agent via TCP Port 6556 den OLVM Manager Engine Host sowie alle OLVM Hosts erreichen und damit überwachen kann.
