Posts by Axel90

This forum was archived to /woltlab and is now in read-only mode.

    Hey!
    my current apply rule for service "disk" looks like that:


    Code
    1. apply Service "disk" {
    2. import "generic-service"
    3. check_command = "disk"
    4. vars.disk_wfree = "2%"
    5. vars.disk_cfree = "1%"
    6. assign where host.vars.os == "Linux"
    7. }

    That works absolutely fine.


    However, I do have some linux hosts that need specific disk checks, for example I have to exclude some partitions.


    So I tried the following:

    But that doesn't work for me. The disk check disappeared on every linux host, although there is still the assign argument.

    What am I doing wrong?

    Ich würde mich gerne an die Diskussion anhängen, ich benötige exakt dasselbe.


    Eine Frage vorab: Wir haben zusätzlich eine ldap Authentifizierung an unser Active Directory.


    Und wenn ich das richtig sehe, haben wir am Ende drei Authentifizierungen:


    External (Apache), Internal (IcingaDB), LDAP


    Und am Ende soll aber nur von einem TV eine automatische Anmeldung erfolgen, mit dem dashing Benutzer.


    Die interne und ldap auth soll aber nicht automatisch erfolgen.


    Ist das in dieser Kombination auch möglich?


    (Ich habe nämlich schon alles eingestellt, wie es hier beschrieben wurde. Da wurde dann aber der dashing Benutzer an jedem Gerät automatisch angemeldet, nicht nur an dem TV.)

    Hallo Freunde!


    ich bin mal wieder an meine Grenzen gestossen.


    Nachdem ich alle meine Services auf Linux Servern mit dem Check_procs command überprüfe, bin ich eventuell auf eine bessere Lösung gestossen:


    https://github.com/melmorabity/nagios-plugin-systemd-service


    Dieser Check testet den systemctl Dienst ansich, und nicht wie check_procs die Prozesse eines Dienstes.


    Ich habe bisher folgendes getan:


    CheckCommand erstellt:



    Service Objekt erstellt:

    Code
    1. object Service "service-sshd" {
    2. import "generic-service"
    3. host_name = "xyz"
    4. check_command = "systemd_service"
    5. vars.systemd_service_name = "sshd"
    6. }


    Bei der Ausgabe des Plugins im Dashboard kommt: "Usage: check_systemd_service <service name>"


    Ich vermute, dass mein Check Command falsch ist bzw. die Syntax der Datei nicht mit meinem Argument klar kommt.


    Kann ich das so überhaupt umsetzen, wie ich mir das vorstelle?


    Danke für einen Hint..

    Guten Morgen!
    ich hab schon im Internet gesucht und auch hier im Forum..ich habe einige Endpoints/Hosts (VMs), von denen täglich nachts ein Backup gemacht wird.

    Das macht sich so bemerkbar, dass der ping service und der load service auf critical gehen und irgendwann eine Benachrichtigung senden.

    Ich habe mir dann überlegt, einfach eine scheduled downtime für diesen Zeitraum einzurichten.


    downtimes.conf

    hosts.conf

    Code
    1. vars.backup_downtime = "00:00-03:00"


    Das haut so aber noch nicht hin. Ich denke weil die Downtime nur für den Host gilt, und nicht für die Services.


    Wenn man über die Oberfläche eine Downtime auf einen Host setzt, kann man ja den Haken setzen bei "Alle Services".


    Was könnte ich im besten Fall machen?


    Danke!

    Hey!


    mein Dashboard zeigt momentan die Dashlets Serviceprobleme und Host-Probleme an.


    Manchmal ist es so, dass sehr viele Serviceprobleme angezeigt werden, die ich dann bestätige.


    Sie bleiben aber trotzdem in dem Dashlet stehen.


    Das ist allerdings sehr unübersichtlich.


    Nun gibt es ja ein default Dashlet "Bestätigte Serviceprobleme"


    Ich habe es mal hinzugefügt, es bleibt allerdings leer.


    Kann man das einstellen, dass bestätigte Probleme vom "Serviceprobleme" Dashlet in das "Bestätigte Serviceprobleme" Dashlet wandern?


    Und dasselbe für Services/Hosts, für die eine Downtime gesetzt wurde?


    Danke!

    Ja genau.


    Ich möchte das so granular haben, weil nur manche Services eine Benachrichtigung haben sollen.


    ich dachte jetzt man kann das vielleicht einfach mit einem AND Operator verknüpfen, wäre natürlich am einfachsten.

    die Notifications sind bei mir sehr einfach aufgebaut, sehen so aus:


    Code
    1. apply Notification "mail-networkadmins" to Service {
    2. import "mail-service-notification"
    3. assign where service.vars.notification == "networkadmin-service"
    4. user_groups = [ "networkadmins" ]
    5. }

    und

    Code
    1. apply Notification "mail-supportadmins" to Service {
    2. import "mail-service-notification"
    3. assign where service.vars.notification == "supportadmin-service"
    4. user_groups = [ "supportadmins" ]
    5. }

    Hinter diesen beiden Gruppen stehen unterschiedliche Personen/Email Adressen.


    und ein Service sieht so aus:


    Code
    1. vars.notification = "networkadmin-service"


    Die Anforderung ist nun, dass sowohl die networkadmins, als auch die supportadmins eine Benachrichtigung bekommen.


    Und das ist jetzt nur ein Beispiel mit den zwei Admingruppen. Ich habe noch mehrere, das kommt dann je nach Service drauf an, wer benachrichtigt werden soll.

    Hallo!

    die Frage ist glaube ich ziemlich einfach, aber ich bin zu blöd dafür.


    ich habe zwei unterschiedliche Notifications, die an unterschiedliche Empfänger gehen.


    ich möchte, dass beide benachrichtigt werden.


    Code
    1. assign where service.vars.notification == "group1"

    und

    Code
    1. assign where service.vars.notification == "group2"


    Bekomme es nicht hin, wie das Serviceobjekt aussehen muss. Ich habe das versucht:


    Code
    1. vars.notification = "group1" && "group2"


    Kann mir dabei jmd helfen?


    Danke

    Guten Morgen!


    ich habe zum ersten Mal ein Problem mit einem neu eingerichteten Endpoint. Bei dem Endpoint handelt es sich um einen Linux Server.


    ich habe dort ganz normal und wie immer den node wizard ausgeführt, was auch ohne Probleme funktioniert hat.


    Nur baut mein Icinga Master keine Verbindung zu dem Endpoint auf. Er steht noch als "Ausstehend" in der Web Oberfläche.


    Das icinga log auf dem Master sagt folgendes:

    Code
    1. [2017-08-10 08:26:25 +0200] information/JsonRpcConnection: Reconnecting to API endpoint 'server' via host 'x.x.x.x' and port '5665'
    2. [2017-08-10 08:26:25 +0200] warning/TlsStream: TLS stream was disconnected.
    3. [2017-08-10 08:26:25 +0200] critical/ApiListener: Client TLS handshake failed (to [x.x.x.x]:5665)



    Kann mir hier jemand helfen?


    Danke!


    ***Update***

    Habe erst jetzt gemerkt, dass die eingehende Verbindung auf den Endpoint von der Firewall geblockt wurde. Thread kann gerne gelöscht werden.

    Ich blicke bei den Notifications nicht mehr durch...


    Es gibt ja in einem Unternehmen unterschiedlich wichtige Services. Ich habe z.B. einen Host, wenn der Ping Service Down geht, muss das 24x7 benachrichtigt werden. Bei einem anderen Host genügt es 8x5.


    Mein Ping Service:

    Code
    1. apply Service "ping4" {
    2. import "generic-service"
    3. check_command = "ping4"
    4. assign where host.address
    5. zone="icinga2"
    6. }

    Also allgemein gefragt: Wie kann ich sehr granular für jeden einzelnen Dienst für jeden einzelen Host einstellen, wann und wer benachrichtigt werden soll?



    Wenn ich mich an Nagios zurückerinnere, musste/konnte man das bei jedem einzelnen Service angeben.



    Wahrscheinlich kann ich mir die Frage selbst beantworten: Ich muss alle apply Regeln löschen und die service objekte für jeden Host einzeln anlegen?

    Und dann jedem einzelnen Service eine bestimmte Notification zuweisen?




    ********


    Update zu Critical Probem:


    sru, das hat sich überlappt, da hast du recht. Ich habe es mal aufgeräumt:

    Code
    1. apply Notification "mail-networkadmins" to Service {
    2. import "mail-service-notification"
    3. assign where service.vars.notification == "networkadmin"
    4. user_groups = [ "networkadmins" ]
    5. }

    Service:

    Code
    1. vars.notification = "networkadmin"

    Das ist nun sauber. Ändert aber nichts an meinem Problem. Die Cirtical Messages kommen immer erst nach 2 Minuten im Abstand von einer Minute.


    Ich habe aber nochmal was anderes im debug log gefunden, an was es eventuell liegen könnte:


    Code
    1. notice/Checkable: State Change: Checkable Switch!Interface soft state change from OK to CRITICAL detected.
    2. notice/Checkable: State Change: Checkable Switch!Interface soft state change from CRITICAL to CRITICAL detected.
    3. notice/Checkable: State Change: Checkable Switch!Interface soft state change from CRITICAL to CRITICAL detected.
    4. notice/Checkable: State Change: Checkable Switch!Interface soft state change from CRITICAL to CRITICAL detected.
    5. notice/Checkable: State Change: Checkable Switch!Interface hard state change from CRITICAL to CRITICAL detected.
    6. notice/ApiListener: Relaying 'event::SendNotifications' message
    7. information/Checkable: Checking for configured notifications for object 'Switch!Interface'
    8. debug/Checkable: Checkable 'Switch!Interface' has 1 notification(s).
    9. information/Notification: Sending 'Problem' notification 'Switch!Interface!mail-networkadmins for user 'networkadmin'

    Das erste mal, wenn die Email geschickt wird, ist ein hard state change. davor immer nur ein soft state change.


    Könnte es damit zusammenliegen?


    ***Update2***


    Okay, daran liegt es:


    "max_check_attempts gibt an, wie oft ein Check fehlschlagen darf, bis eine Reaktion ausgelöst wird (E-Mail, SMS, Jabber, u.v.m.)."


    Bei mir ist der Wert auf 5. Das erklärt auch, warum erst nach 2,5 Minuten die erste Email kommt.

    Klar, also meine Konfigs sieht wie folgt aus:


    templates.conf


    users.conf

    notifications.conf

    Host:

    Code
    1. vars.notification["mail"] = {
    2. groups = [ "networkadmins" ]
    3. }




    Und das steht im debug.log:

    Code
    1. [2017-07-17 15:25:59 +0200] notice/Process: PID 45183 ('/usr/lib/nagios/plugins/check_ping' '-4' '-H' '192.168.170.7' '-c' '100,60%' '-w' '50,50%') terminated with exit code 2
    2. [2017-07-17 15:25:59 +0200] debug/DbEvents: add log entry history for 'T03!ping4'
    3. [2017-07-17 15:25:59 +0200] debug/DbEvents: add checkable check history for 'T03!ping4'
    4. [2017-07-17 15:25:59 +0200] debug/DbEvents: add state change history for 'T03!ping4'
    5. [2017-07-17 15:25:59 +0200] notice/Checkable: State Change: Checkable T03!ping4 soft state change from OK to CRITICAL detected.
    6. [2017-07-17 15:25:59 +0200] notice/ApiListener: Relaying 'event::SetNextCheck' message
    7. [2017-07-17 15:25:59 +0200] notice/ApiListener: Relaying 'event::CheckResult' message

    Von Notification ist dort nichts zu finden.