##Bitte hier den eigenen Benutzernamen und das geplante Fertigstellungsdatum eintragen [[Vorlage(InArbeit, 30.3.2010, moospit, Doc_Symbiosis)]] [[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] }}} [[Inhaltsverzeichnis(2)]] ## eine vollständige Befehlsübersicht befindet sich im Wiki unter http://wiki.ubuntuusers.de/Wiki/Syntax ## eine Kopiervorlage für viele Syntaxelemente findet man unter http://wiki.ubuntuusers.de/Vorlage/Schnellstart Das [http://de.wikipedia.org/wiki/Simple_Network_Management_Protocol SNMP] (Simple Network Management Protocol) ist ein Netzwerkprotokoll, mit welchen Elemente eines Netzwerks (z.B Router, Server, Switches, Drucker, Computer, etc.) von einer zentralen Station aus überwacht und gesteuert werden können. Das Protokoll regelt hierbei die Kommunikation zwischen den überwachten Geräten und der Überwachungsstation. SNMP wurde so ausgelegt, dass jedes netzwerkfähige Gerät mit in die Überwachung und Steuerung einbezogen werden kann. SNMP ermöglicht * Überwachung von Netzwerkkomponenten, * Fernsteuerung und Fernkonfiguration von Netzwerkkomponenten, * Fehlererkennung und Fehlerbenachrichtigung. Da SNMP recht einfach gehalten ist, wird dieses Protokoll sowohl von den meisten Managementprogrammen als auch von den meisten Endgeräten verwendet. Es existieren SNMP-Version 1,2 und 3. Der Grosse Unterschied von Version 3 zu 1 und 2 ist, dass die durch Sicherheit durch eine integrierte Benutzerverwaltung und weiterhin durch eine mögliche Verschlüsselung stark erhöht wurde. = Installation = Um unter Ubuntu mit einem Rechner einzelne Netzwerkelemente über SNMP anzusprechen, muss das Paket * '''snmp''' installiert sein. = grundlegende Konfiguratio für Version 1 und 2= Die Konfiguration findet sich in der Datei '''/etc/snmp/snmpd.conf'''. Hier trägt man zunächst folgende Zeilen ein: {{{rocommunity public 127.0.0.1 # Definition der Community für SNMP Version 1 rocommunity mycomm # Definition der Community für SNMP Version 1 }}} Die Community muss man später bei einem '''snmpwalk''' bzw. '''snmpget''' mit angeben, damit der Zugriff erlaubt wird. trägt man statt '''rocommunity''' ein '''rwcommunity''' hier ein, so kann man dier Werte nicht nur auslesen, sondern auch setzen (sofern die Werte überhaupt veränderbar sind). Eine Liste der zur Verfügung stehenden Daten erhält man nun auf dem überwachenden Server mit {{{snmpwalk -v1 -c mycomm }}} Will man die Liste auf dem Rechner selbst erhalten, so muss man einfach das '''mycomm''' durch '''public''' ersetzen. = grundlegende Konfiguratio für Version 3= Zunächst szoopt man den SNMP-Daemon. {{{service snmpd stop }}} Dann legt man den Benutzer an {{{net-snmp-config --create-snmpv3-user -ro -x AES -a SHA -A "Nagios_PWD" -X "Nagios_PWD" nagios}}} Hierbei steht das '''-ro''' dafür, dass der Benutzer lediglich Leserechte besitzt, das -a definiert den Hasualgorithmus für das Passwort, das -x die Verschlüsselung für die Daten, die übertragen werden. Nun ändert man noch entsprechende Zeile in der Datei '''/usr/share/snmp/snmpd.conf''' um (hängt das AuthPriv an), um die Verschlüsselung von Verbindung und Passwort zu erzwingen: {{{rouser nagios AuthPriv}}} Nun startet man den Daemon wieder neu {{{service snmpd start}}} '''snmpd.conf''' muss man im Gegensatz zu Version 1 oder 2 soweit erstmal nichts weiter anpassen. = weitere Konfigurationsmöglichkeiten in der snmpd.conf = Je nachdem, was man überwachen möchte, kann man in der '''/etc/snmp/snmpd.conf''' nun weitere Einstellungen vornehmen, um z.B. Partitionsfüllstände, Dateigrössen, Logdateien und anderes zu überwachen. Dafür muss man lediglich eine entsprechende Zeile eintragen {{{syscontact Sysadmin (root@localhost) # Kontaktdaten des Server-Admins syslocation Server Room 1 # Standort des Servers disk / # Überwachung Des Füllstands der Root-Partition disk /home # Überwachung des Füllstands der Home-Partition includeAllDisks 10% # Überwachung der Füllstände aller Partitionen file /var/log/apache2/apache2.log 10000 # Überwachung der Grösse einer Datei PROC sshd # Überwachung des sshd-Prozesses }}} Hierbei steht jeweils der erste Eintrag für die jeweilige Direktive, der zweite für das zu überwachende und der (nicht unbedingt notwendige) dritte Wert, für den Grenzwert zum setzen eines entsprechnden Fehler-Markers (dazu dann bei snmpget mehr). = snmpget und snmpwalk = Mit '''snmpwalk''' kann man ganze Listen von Werten anzeigen, mit '''snmpget''' erhält man im Gegensatz dazu nur einzelne Werte, also z.B. {{{snmpwalk -v1 -c mycomm memory snmpget -v1 -c mycomm memAvailReal.0 snmpget -v3 -u nagios -l authPriv -a MD5 -x DES -X Nagios_PWD -A Nagios_PWD localhost sysDescr.0 }}} Hierbei ist die letzte Zeile für die Version 3 gegeben, wobei das '''-a''' angibt, wie das Passwort verschlüsselt werden soll und das '''-x''' beinhaltet den Algorithmus für die Verschlüsselung der übertragenen Daten. Um dieses zu verwenden, muss allerdings auf Client und Server das Paket '''openssl''' installiert sein. Um nur den zurückgelieferten Wert auszugeben, was zum Beispiel beim Skripting durchaus einiges erleichtert, kann man den Parameter '''-Oqv''' für das snmpget bzw. snmpwalk verwenden. Viele Werte findet man in den Tabllen prTable, memory, extTable, dskTable, loadTable, systemStats, ucdDemoMIB, fileTable, logMatch, version, snmperrs, mibRegistryTable. Hierfür müssen dann teilweise erstmal entsprechende Einträge in der '''/etc/snmp/snmpd.conf''' gemacht sein, z.B. für fileTable. Werden die in der '''snmpd.conf''' angegebenen Schwellwerte Überschritten, so wird ein entsprechndes Fehlerflag gesetzt, z.B. das '''dskErrorFlag''', falls der angegebene prozentuale freie Platz unterschritten wurde. Die entsprechende Fehlermeldung steht dann in '''dskErrorMsg'''. = MIBs und OIDs = Die MIB-Dateien (MIB = Management Information Base) liegen unter '''/usr/share/snmp/mibs'''. Diese enthalten die Informationen, die man per SNMP abfragen und ändern kann. Ähnlich wie bei einen LDAP-Schame sind alle Objekte in einer Baumstruktur angeordnet, wobei die Knoten keine eigenen Werte, sondern nur Listen der darunterliegenden Objekte enthalten. Jedes Objekt hat eine eindeutige OID (Objext Identifier) zugeordnet, wobei die einzelnen Knoten des Baumes durch Punkte getrennt aufgeführt werden. Dabei gibt es für die einzelnen Knoten sowohl eine darstellende Zahl als auch eine etwas aussagekrätigerere Kette von Worten (z.B. entspricht .1.3.6.1.4.1.2021.9 dem Wort .iso.org.dod.internet.private.enterprises.ucdavis.dskTable). Die wichtigsten MIB-Dateien unter Ubuntu sind die '''UCD-SNMP-MIB.txt''' und die '''UCD-SNMP-MIB.txt'''. Den Inhalt einer MIB-Datei übersichtlich darstellen und browsen kann man mit verschiedenen Programmen, z.B. dem * '''tkmib''' = snmptranslate = DIe OIDs und entsprechenden "aussagekräftigen" Namen kann man per '''snmptranslate''' ineinander überführen. Für einen abgekürzten Namen (z.B.dskTable) erhält man mittels Parameter '''-IR''' den vollständigen Namen (z.B. UCD-SNMP-MIB::dskTable). Um die OID zu erhalten, muss man den Parameter '''-On''' angeben, die Umwandlung umgekehrt funktioniert automatisch, z.B.: {{{snmptranslate -On -IR ipRouteDest snmptranslate .1.3.6.1.2.1.4.21.1.1}}} # set ##nicht auf diesen Artikel zutreffenden Kategorien bitte löschen! #tag: Netzwerk, Wiki, Ubuntu, Internet, System, Sicherheit, Shell, Übersicht, Installation, Community, Hilfsmittel, Einsteiger, Server, Editor, Kommunikation, Paketverwaltung