13.07.2015 Aufrufe

magick smoke - Nagios-Wiki

magick smoke - Nagios-Wiki

magick smoke - Nagios-Wiki

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>magick</strong> <strong>smoke</strong>Check_MK - Netzwerkmonitoring23.05.2011, <strong>Nagios</strong> Workshop, HannoverFlorian Heigl ● http://mathias-kettner.de


IntroFlorian HeiglUnix-Admin, aber „eigentlich mag ich Netzwerke und Monitoring“Bei Mathias Kettner seit 01/11Consulting, d.h. Checks, LinuxthemenErste produktive <strong>Nagios</strong>umgebung 2003?auf AIX4.3 (66MHz)Fragen gerne „mittendrin“hoffentlich nicht zu Ernst


Das unbekannte●●●Hinzufuegen von Komponenten zu <strong>Nagios</strong>Configteile oder Configfiles kopierenTemplates definierenConfig generieren aus Puppet●●Kann man dynamisch Aenderungen abbilden?Kann man „scannen“ und Templates nur fuer'srichtige Device anwenden?


unbekannte Hosts●●●●nagios_bsdMonitoring fuer alle *BSD Mirrors weltweit<strong>Nagios</strong> 2 – viel Spass mit Skalierung undHostcheck Timeouts (Pings >900ms)Eingestellt, weil '<strong>Nagios</strong> check_http' fuerHackerzeug gehalten wurdeConfig automatisch jede Nacht mit Templatesaus den DNS Records aufgebaut


Nagswitch●Templatebasiertes Script sollte das Problem loesenfor id in $( $SNMPWCMD $naghostname_ip IF-MIB::ifIndex | awk '{print$NF}' ); do# gather interface type (ethernet...) and stateifType="$( $SNMPCMD $naghostname_ip IF-MIB::ifType.$id | awk '{print$NF}' | cut -f1 -d\( )"ifOperStatus="$( $SNMPCMD $naghostname_ip IF-MIB::ifOperStatus.$id | awk'{print $NF}'| cut -f1 -d\( )" [...]echo "define service{usehost_nameservice_descriptioncheck_command-r 1 -m RFC1213-MIBgeneric-service$naghostnamePort $idpad Link Statuscheck_snmp!-C public -o ifOperStatus.$id●}„nice try“, weil...


Weiterdenken●●●Wie erkennt man, ob man einen Switch hat?Wie kann man dynamisch festlegen, wie mitbestimmten Portstati umgegangen wird?Koennte man ein beliebiges Geraet erkennen?


Check_MKWie erkennt check_mk ein Netzwerkdevice?● Auf jeden Fall per SNMP –●snmp_scan Funktion im CheckPrueft beliebige OID, idealerweise haeufigverwendete, z.B. sysDescr oder Vendor OIDtable● Wenn Hersteller „Cisco“ und Modell „Catalyst 65“anfaengt dann …●SNMP Queries werden gecached


Services?●●●Services machen eine Inventur desZielgeraets, wenn dieses mit „snmp“ getaggedist.z.b. switch-core0|snmp|rz2|rz2rack5Wenn die Scanfunktion ein Geraet sichererkannt hat, folgt die eigentliche Inventur:Fuer jede Funktion des Ziels, die gefundenwerden konnte, wird ein Dienst erzeugt.(z.B. einer pro Netzteil oder einer proSwitchport)


Check_MK●●●●Genaueres zum Scan / Inventorysnmp_info definiert alle SNMP OIDs, welcheder Check erhaelt.SNMP Version, Community etc. kann proGeraet (oder Gruppe, oder Kunde)unterschiedlich seinSNMPv2 ist schneller (inv bulk: 3.6s vs. 5.2s)SNMPv3 ist sicherer, evtl. aber mehrOverhead (spaeter mehr)


unbekannte Switches●Ifstate checks einrichten fuer bestimmte Ports?(Nein, wir haben „dynamisch“ gesagt)●●●Lieber den Switch fragen:Wie viele Ports gibt's?Sind sie online?


Check_MK●●●SNMP ScanLasst uns einfach rausfinden, was fuer ein Geraetes istInventurDinge aendern sich – Dienste auch. z.B. neueVhosts am Loadbalancer, Ports an Switches(That's life!)VariablenVorgaben fuer's Verhalten von Checks & Inventur


SNMPv2SNMPv2c ist schneller – Abfrage mit bulkwalkstatt walk.● bulkwalk_hosts = [ ["snmp"], ALL_HOSTS ]● Inventory: 3.6s vs. 5.2s● Check: 2.1s vs. 4.7s●Unterschied nimmt mit Portzahl zu


SNMPv3●Setupbeispiel●●Performancehungrig, falls nicht in HardwareVorsicht z.B. bei einem bestimmten Herstelleraus China


Check_MK●●●Genaueres zum Scan / Inventorysnmp_info definiert alle SNMP OIDs, welcheder Check erhaelt.SNMP Version, Community etc. kann proGeraet (oder Gruppe, oder Kunde)unterschiedlich seinSNMPv1 vermeiden, v2 schneller, v3 sicherer(aber wir lesen nur...)


Ablauf●●●●●●cmk -I SNMP Tag?Fuer alle Checks mit Typ „snmp“ wirdsnmp_scan gemachtFuer alle Checks, bei denen Scan klappte,wird Inventur gemachtFuer alle bei Inventur gefundenen „Teile“ wirdein Check Item generiert.Fuer jedes Check Item werden ein odermehrere <strong>Nagios</strong> Services generiert(autochecks)


Ablauf auf der Shell●●check_mk -v –debug -I check_mk -nv ● check_mk -N●Ls -tr var/check_mk/autochecks/● check_mk -R


Inventory check●●Was ist jetzt bitte ein „Inventory check?“Dinge aendern sich nun mal!●●Warnung, dass etwas entdeckt wurde, dasnicht ueberwacht wirdMonitoringadmin kann auf Problem eingehen,es gibt keine „Stealthdevices“ mehr.● check_mk -I && cmk -R


SNMP Checks●superstack3_sensors


Spannender: if-Checks●●●●●●Der If-Check ist eine Familie:IfIf64lnx_ifmcdata_fcportDie Checks wachsen...Steuerbare Inventur, Schwellwerte, OK-Zustaende, TrendmonitoringNett: alle verwandten funktionieren gleich(NagVis, Service Search)


If-Check Inventur●●●●●Nur Ports in bestimmten Stati aufnehmenNur Ports mit bestimmten Medientypenaufnehmen (siehe if.include!!)Ports nach ifAlias, ifDescr oder ifNamebezeichnenPorts anhand der Bezeichnung filtern (KeineServices generieren)Performance beachten, ggf. Agent Timeoutanpassen


If-check-Parameter●Auf Port GigabitEthernet 1/0/14 kommendauernd Fehler. Was heisst eigentlich das„Hub“ auf dem naechsten Switch da vor derFirewall?●Definition ueber Dictionary (ein bisschenMagie)● z.B. Bandbreitenalarm, wenn mehr als 50%Last auf der Backupleitung●Ueberlastete Backboneports / Frontendports


If-check-Parameter


If-Check Extras●●●Anomalieerkennung durch TrendingWarning, wenn auf einem Clientport mehr als15GB/Tag uebertragen werdenTrafficAlarm, wenn auf „vif 87.0“ die Auslastung sogestiegen ist, dass das monatliche Limiterreicht wuerdeAveragingChecks auf Durchschnittswerte anwenden


NagVis●Mit NagVis kann man visuell besondereVerbindungen ueberwachen und Trafficmustererkennen – gerade wenn man nicht „mal ebeneinkaufen“ NetFlow und Co als Loesungnehmen kann.●Drill-Down Moeglichkeiten anstatt RRDs vonHand zu korrelieren. (Memory spielen)


NagVisWichtige Karten vorher anfertigen fuer:●●●●N:1 Verbindungen Server zu Backupserverund StorageNodes,oder 1:N wie Storagearrays zu allen Servern(da sieht man dann auch, was man von einem zentralisierten Reissbrett-SAN „hat“)Blade-Enclosure UplinksFirmenbackbone


„virtuelle“ Netze●●●Doppelt Monitoren oder nicht? (Oder: das einedort, das andere hier)VLAN Interfaces an Switches (je nachHersteller verbuggt oder nicht)Testen und vordefinieren●●●Baugrund fuer virtuelle Schloesser:Bridges, (M)STP monitoring, LACPOpenVswitch, Nexus 1KRoaming...


End-Userports●●●Umgang mit Ports bei denen nicht „OK“vorrausgesetzt werden kannStandardloesung: Linkstate ignorieren, errors,bandwidth monitorenWenn man auch den Status loggen will, aber„OK“ draufstehen soll – wrapper um dascheck_command bauenExtra Service fuer „dying gasp“?


Host:Kringel Dependency


Host:Parent Dependency


Parent Scan--scan-parents●●●●●Erkennen der Parents eines Hosts (brauchtIP+ICMP auf der Strecke)Monitoring Host vordefinierenSchreibt Parents.mkDefiniert „fake“ Hosts fuer erkannte ParentsKann nicht zaubern, aber sehr hilfreich


Drohnen_MK●●●●●●livestatus / multisite verteiltEigenstaendige <strong>Nagios</strong>systeme (z.B. OMDSites), ein bisschen wie RMONnahezu kein Traffic ohne Zugriff (abersitestatus)Security:geht so: firewall / ip filter / tcpwrapperbesser: ssh tunnelam liebsten: stunnel / ipsec tunnel durch FWnicht so gut: Augen ganz fest zudruecken


Traps?●●Bisher konnten wir sie immer vermeidengenauer: haben wir sie nicht gebraucht● Noch genauer: <strong>Nagios</strong> ist nicht OpenView –d.h. Wir monitoren lieber wirklich, anstatt aufEvents zu warten.●Praktisch, wenn man eh schon Performanceaufzeichnen will


Andere Standards●●●●Moderneres Telco-Zeug wieNETCONF (SNMP Nachfolger),802.3 OAM usw. sind nicht direkt unterstuetzt.Normal gibt’s die Infos auch via SNMPNetFlow, (und auch HostflowD)?Netzwerkstandards etablieren sich leider einwenig langsam (siehe v3)


Monitoring von Software●●●TACACS, UCS, etc.Ganz normal ueber <strong>Nagios</strong>checks (legacychecks) oder via MRPE (wenn es einzelneHosts sind)Bind, Squid, (und auch UCS) sind gut perSNMP monitorbar (also einfach Plugin bauen)Iptables, pf ebenfalls per SNMP monitorbar


… auch mit NagVis●●●●Auch hier ist NagVis nochmal eine wichtigeErgaenzung um „Blockschaltbilder“ anbietenzu koennen.Beispiel: MTA Flowchartspamd/avscan laeuft evtl. auf anderem ServerFixe Reihenfolge von Routing und DeliveryViele viele viele ProzesseMonitoring == Troubleshooting Anleitung (ui!)


Und jetzt?●●Die Check_MK Exchange braucht immer Futter!(es gibt schon ein paar Super-Checks, z.B. fuer DataOnTAP, MySQL, aber es gibt auch noch etlichespannende Moeglichkeiten)„.mkp“ - Einfache Installation: cmk -P install●Danke!

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!