HenriWahl / checkmk-agent-plugin-yum

Checks for updates on RPM-based distributions via yum.
GNU General Public License v2.0
23 stars 22 forks source link

Bei einem RHEL 7 zu RHEL 8 in-place upgrade geht die yum history verloren und führt serverseitig zu einem parsing error #64

Open yannikhaffke opened 4 months ago

yannikhaffke commented 4 months ago

Hallo!

Ich bin auf den Fehler gestoßen, dass das plugin nach einem in-place upgrade von RHEL7 auf RHEL 8 falschen output generiert.

Das Problem liegt in der yum history es wird mit

LAST_UPDATE_TIMESTAMP=$(/usr/bin/yum -C --quiet --noplugins history | awk '{if(NR>2)print}' | grep ' U \|Upgrade\|Update' | cut -d '|' -f3 | head -n 1 | date -f - +"%s" || echo "-1")

ein Unix Timestamp generiert. Doch wenn die yum history leer ist, wird einfach nur eine leere Zeile im output ausgegeben.

Beispiel für fehlerhafte /var/lib/check_mk_agent/cache/plugins_yum.cache Datei:

<<<yum>>>
no
44
27

Es fehlt die letzte Zeile. Dies führt wiederrum auf dem CheckMK Server zu einem parsing error und der CheckMK Discover Service spring in den "Warning" Status. Der yum service selbst verschwindet aus der Liste der gemonitorten Services.

Workaround:

Ein manuelles downgrade und upgrade eines Paketes generiert wieder einen Eintrag in der yum history und es kann wieder ein Timestamp erzeugt werden.

Kannst du das Verhalten anpassen, so dass auch wenn kein Update oder Upgrade durchgeführt wurde, ein gültiger Output erzeugt wird? Und ein Hinweis erscheint mit "Bisher kein Update oder Upgrade von Pakten durchgeführt".

Bei weitern Infos oder Fragen, kannst du dich gerne bei mir melden.

Vielen Dank für deine Unterstützung.

HenriWahl commented 4 months ago

Hey @yannikhaffke, das ist ein ziemlich spezieller Fall - wird nicht eher von in-place-Upgrades bei CentOS/RHEL abgeraten? Und kommt nicht auch bald das nächste Update, so dass sich das Problem alsbald erledigt hat? Ich selbst werde nicht dazu kommen mich darum zu kümmern, aber ein Merge Request sollte kein Problem sein. Grüße