magick smoke - Nagios-Wiki
magick smoke - Nagios-Wiki
magick smoke - Nagios-Wiki
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!