Unbekanntes UTF8 in Prometheus Metriken
Mein eigner CLI-Prometheus-Exporter lieferte heute spontan Label-Werte, die der Prometheus als ungültig im Sinne von UTF8 ansah.
Am Exporter-Programm und an der Konfig einer ASA hatte sich nichts geändert. Der Exporter ist durchgelaufen, es gab also auch kein unbewusste Codeänderung. Der Abruf der Metrik im Browser funktionierte tadellos, die Ausgabe war unauffällig. Keine Sonderzeichen oder irgendetwas ungewöhnliches zu erkenne, Trotzdem verstand der Prometheus mit einem Male die Metriken nicht mehr.
Es gibt wenige Stellen an denen "Freitext" aus der CLI in die Label-Werte übernommen wurde. Eine davon ist der Nutzername von eingewählten Remote-Access-VPNs. Dort steht öfter mal die Domain mit dabei, also DOMAIN\user. Kann es sein, dass der Prometheus irgendwo eine Backslash-Sequenz missversteht anstatt es literal zu übernehmen?
Ich filtere also nun die Domain incl. des Backslash weg und die Ausgabe wird immer noch nicht akzeptiert. Irgendwo soll noch eine ungültige UTF8 Sequenz stehen.
Beim Durchmustern der Ausgabe fällt mir einpeer_user="`user" auf. Was soll das sein? Ein Accent Acute vor dem Nutzernamen? Mal in die ASA schauen:
Username : ´user Assigned IP : a.b.c.d Protocol : IKEv1 IPsecOverNatT L2TPOverIPsecOverNatT License : Other VPN
Was sucht da ein Accent-Zeichen? Der Nutzer hat dieses Zeichen nicht im Login-Namen! Trotzdem hat die Anmeldung geklappt!
Ohne eine sinnvolle Quelle gefunden zu haben, scheint Windows dieses Zeichen als Domain-Separator zu interpretieren oder in dem Fall als "domainloses Login".
Jetzt filtere ich es raus, so wie die domain\ Vorsätze.