<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Bits, Bytes and my 5 cents &#187; Nagios</title>
	<atom:link href="http://blog.encodingit.ch/tag/nagios/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.encodingit.ch</link>
	<description>Life is just a technical game</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:28:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>host_name ändern in Nagios: Bug?</title>
		<link>http://blog.encodingit.ch/2011/12/host_name-andern-in-nagios-bug/</link>
		<comments>http://blog.encodingit.ch/2011/12/host_name-andern-in-nagios-bug/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 07:00:48 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=2867</guid>
		<description><![CDATA[In Nagios ist es nicht so einfach, wenn ein Server umbenannt wird...
Ein Neuling in Nagios wird intuitiv in die Konfigurationsdatei XYZ.cfg gehen und darin den neuen Namen unter "host_name" eintragen. Dann noch ein Reload des Daemons und... nichts hat sich geändert! Noch immer erscheint der alte Name in der Webseite.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/08/unbekannte-systeme-in-nagios/' rel='bookmark' title='Unbekannte Systeme in Nagios'>Unbekannte Systeme in Nagios</a> <small>Die Nagios Status Map ist ja eine ganz feine Sache,...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/notification-von-nagios-ans-iphone/' rel='bookmark' title='Notification von Nagios ans iPhone'>Notification von Nagios ans iPhone</a> <small>Auf der Suche nach einer Lösung, wie ich die Notifications...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/windows-updates-prufen-mit-nagios/' rel='bookmark' title='Windows Updates prüfen mit Nagios'>Windows Updates prüfen mit Nagios</a> <small>Um unserer Server optimal überwachen zu können, habe ich eine...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nagios-als-inventory-losung/' rel='bookmark' title='Nagios als Inventory-Lösung'>Nagios als Inventory-Lösung</a> <small>Heute bin ich über ein interessantes Script gestossen, welches aus...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/nrpe-module-installieren/' rel='bookmark' title='NRPE Module installieren'>NRPE Module installieren</a> <small>Aktuell arbeite ich an einer Lösung, um mittels Nagios zu...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>In Nagios ist es nicht so einfach, wenn ein Server umbenannt wird&#8230;<br />
Ein Neuling in Nagios wird intuitiv in die Konfigurationsdatei XYZ.cfg gehen und darin den neuen Namen unter &#8220;host_name&#8221; eintragen. Dann noch ein Reload des Daemons und&#8230; nichts hat sich geändert! Noch immer erscheint der alte Name in der Webseite.<br />
Nochmals ein Blick in die Konfigurationsdatei; da ist alles richtig eingetragen. Die Seite wird nochmals neu geladen und weil immer noch der alte Name da steht, beginnt man an der eigenen Sehkraft zu zweifeln!</p>
<p>Die alteingesessenen Nagios-Admins kennen das Problem: Es ist keines, es ist ein Feature &#8211; so habe ich mich von der Community belehren lassen!</p>
<p>Es hängt zusammen mit einer Statusdatei, welche Nagios anlegt, damit nach einem Neustart des Daemons nicht immer alle Checks ohne Daten dastehen und erst alles wieder aufgebaut werden muss. Deshalb wird darin der letzte Zustand gespeichert und dann auch abgerufen.<br />
Wieso dabei auch der Hostname gespeichert und aus dieser Datei anstelle der Konfigurationsdatei ausgelesen wird, kann ich mir leider nicht erklären. Aber eben: Das ist ein Feature, kein Bug!</p>
<p>Die Lösung des Problems liegt darin, dass der Name nicht nur in der offiziellen Konfigurationsdatei, sondern auch in der Statusdatei unter <strong>var/retention.dat</strong> angepasst wird. Bevor das geschieht, muss aber der Nagios-Daemon gestoppt werden. </p>
<p>Also (der Pfad der Nagios-Installation bitte anpassen):</p>
<pre class="brush: bash; title: ; notranslate">
/etc/init.d/nagios stop
vi /usr/local/nagios/var/retention.dat
/etc/init.d/nagios start
</pre>
<p>Verzweifelt nicht an euer Sehkraft, es ist wirklich so <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2011/08/unbekannte-systeme-in-nagios/' rel='bookmark' title='Unbekannte Systeme in Nagios'>Unbekannte Systeme in Nagios</a> <small>Die Nagios Status Map ist ja eine ganz feine Sache,...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/notification-von-nagios-ans-iphone/' rel='bookmark' title='Notification von Nagios ans iPhone'>Notification von Nagios ans iPhone</a> <small>Auf der Suche nach einer Lösung, wie ich die Notifications...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/windows-updates-prufen-mit-nagios/' rel='bookmark' title='Windows Updates prüfen mit Nagios'>Windows Updates prüfen mit Nagios</a> <small>Um unserer Server optimal überwachen zu können, habe ich eine...</small></li>
<li><a href='http://blog.encodingit.ch/2011/08/nagios-als-inventory-losung/' rel='bookmark' title='Nagios als Inventory-Lösung'>Nagios als Inventory-Lösung</a> <small>Heute bin ich über ein interessantes Script gestossen, welches aus...</small></li>
<li><a href='http://blog.encodingit.ch/2011/09/nrpe-module-installieren/' rel='bookmark' title='NRPE Module installieren'>NRPE Module installieren</a> <small>Aktuell arbeite ich an einer Lösung, um mittels Nagios zu...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2011/12/host_name-andern-in-nagios-bug/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Big Brother im eigenen Netzwerk</title>
		<link>http://blog.encodingit.ch/2009/11/monitoring-mit-nagio/</link>
		<comments>http://blog.encodingit.ch/2009/11/monitoring-mit-nagio/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 18:13:59 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[8.04]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://compr00t.co.funpic.de/?p=634</guid>
		<description><![CDATA[In der Datei hostgroups.cfg kann man Einstellungen anhand vom Typ eines Servers vornehmen. Intressant wird dies aber erst wenn man mehrere gleiche Server, mit gleichen Aufgaben oder Services betreibt.
Da dies bei mir aber nicht der Fall ist, habe ich mich damit nicht weiter beschäftigt.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Nein, hier geht es nicht um die steigende Überwachung durch Vater Staat, hier geht es um das Monitoring von Servern, Computern, Diensten und vieles mehr.</p>
<p>Ich habe vor längerer Zeit mal <a href="http://www.nagios.org/"  target="_blank">Nagios</a>, ein sehr komplexes Überwachungstool, aufgesetzt, aber aus Zeitmangel habe ich mich nie wirklich mit der raffinierten, aber doch sehr komplizierten Konfiguration beschäftigt.</p>
<p>Nun aber ist mir das ganze wieder in die Hände gefallen und ich habe mich mal aufgemacht und wollte Nagios nicht nur zum laufen bringen, sondern auch richtig konfigurieren und überwachen lassen.</p>
<p>Im uu.de-Wiki, welches sonst meistens meine erste Anlaufstelle für so Fragen ist, gibt es leider nur ein unfertiger Artikel. (Wenn ich die Zeit finde, werde ich mich da dann mal ran machen) Also habe ich mir meine Informationen selbst zusammengesucht.</p>
<p>Die Installation von Nagios ist relativ einfach. Nagios2 gibt es sogar in den Paketquellen, Nagios3 lässt sich problemlos selbst kompilieren.</p>
<p>Für mich reicht aber Nagios2 voll und ganz und somit habe ich mittels der Paketverwaltung mal die Pakete installiert:</p>
<blockquote><p>sudo apt-get install apache2, nagios2, nagios2-common, nagios-plugins</p></blockquote>
<p>Für die Installation war es das eigentlich schon! Doch ganz so einfach ist es dann doch wieder nicht. <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Unter http://localhost/nagios2 ist jetzt schon die Weboberfläche zu sehen. Jedoch fehlt noch die gesamte Konfiguration, also weiter im Konzept.</p>
<p>Da mein Webinterface natürlich nicht für jeden Zugänglich sein soll, habe ich mir noch ein Passwortschutz angelegt:</p>
<blockquote><p>htpasswd -bc /etc/nagios2/htpasswd.users</p></blockquote>
<p>Nun gilt es noch den Apache neu zu starteten, damit die Änderung auch wirksam werden:</p>
<blockquote><p>sudo /etc/init.d/apache2 restart</p></blockquote>
<p>Nun sollte man bereits beim Aufrufen von Nagios, immer noch unter http://localhost/nagios2, nach einem Benutzernamen und einem Passwort gefragt werden.</p>
<p>Nun geht es los mit der Konfiguration.<br />
Dabei sollte ich vielleicht noch ein paar Worte über das Konzept verlieren.<br />
Wenn man den Aufbau mal verstanden hat ist es eigentlich gar nicht mehr so kompliziert <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Für meine Server habe ich ein neuer Ordner angelegt:</p>
<blockquote><p>sudo mkdir /etc/nagios2/meinnetzwerk/<br />
cd /etc/nagios2/meinnetzwerk/</p></blockquote>
<p>Darin werden nun alle Dateien angelegt.<br />
Die wichtigsten Dateien, auf welche Nagios zurückgreift, sind hosts.cfg, templates.cfg, services.cfg und hostgroups.cfg.</p>
<p>Besonders die templates.cfg spielt in grösseren Netzwerken mit vielen Servern eine besondere Rolle. Doch dazu später.</p>
<p>Wir beginnen erstmal mit dem formellen Teil. Die Datei contacts.cfg birgt den Namen und die eMail-Adresse des Systemadministrators.<br />
Dazu erstellen wir die Datei erst neu:</p>
<blockquote><p>sudo touch contacts.cfg</p></blockquote>
<p>Diese füllen wir mit folgendem Inhalt:</p>
<blockquote><p>define contact{<br />
contact_name                       administrator<br />
alias                                     DEIN-NAME<br />
service_notification_period       24&#215;7<br />
host_notification_period           24&#215;7<br />
service_notification_options      w,u,c,r<br />
host_notification_options         d,r<br />
service_notification_commands notify-by-email<br />
host_notification_commands     host-notify-by-email<br />
email                                    DEINE@EMAIL.ADRESSE<br />
}</p>
<p>define contactgroup{<br />
contactgroup_name       admins<br />
alias                            Nagios Administrators<br />
members                      administrator<br />
}</p></blockquote>
<p>Nun können wir unsere ersten Server hinzufügen.<br />
Diese werden in der hosts.cfg aufgelistet. Doch einfach die IP-Adressen einzutragen wäre natürlich viel zu einfach <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<blockquote><p>define host{<br />
host_name  SERVERNAME<br />
alias           BESCHREIBUNG<br />
address      IP.ADRESSE.HIER.EINGEBEN<br />
use            generic-host<br />
}</p></blockquote>
<p>Hier muss für jeden Host ein neuer &#8220;define host{}&#8221; angelegt werden.</p>
<p>Bis auf use sind eigentlich alle Punkte selbst erklärend. Und damit kommen wir auch schon zum gut durchdachten Konzept von Nagios.<br />
Wir könnten jede einzelne Option wie Prüfintervalle, verwendete Kommandos, Benachrichtigungen, Maximale Überprüfungen etc für jeden Host einzelne definieren. Das wären dann pro Host alleine schon 40 Zeilen.<br />
Nun kann man sich mal überlegen, was passiert wenn ich 20 oder sogar 100 Server eintragen und überwachen will &#8211; die Komplexität steigt und es wird schnell mal unübersichtlich.</p>
<p><span id="more-634"></span>Darum kann man mittels use eine Art Link zu einem Eintrag in der Datei templates.cfg legen.</p>
<p>Darin kann man Profile definieren, wo alles aufgeführt ist, was bei mehreren Servern gleich ist:</p>
<blockquote><p>define host{<br />
name                            generic-host    ; The name of this host template<br />
notifications_enabled           1               ; Host notifications are enabled<br />
event_handler_enabled           1               ; Host event handler is enabled<br />
flap_detection_enabled          1               ; Flap detection is enabled<br />
failure_prediction_enabled      1               ; Failure prediction is enabled<br />
process_perf_data               1               ; Process performance data<br />
retain_status_information       1               ; Retain status information across program restarts<br />
retain_nonstatus_information    1               ; Retain non-status information across program restarts<br />
check_period			24&#215;7		; By default, Linux hosts are checked round the clock<br />
check_interval			5		; Actively check the host every 5 minutes<br />
retry_interval			1		; Schedule host check retries at 1 minute intervals<br />
max_check_attempts		3		; Check each Linux host 10 times (max)<br />
check_command           	check-host-alive ; Default command to check Linux hosts<br />
notification_period		24&#215;7		; Linux admins hate to be woken up, so we only notify during the day<br />
notification_interval		30		; Resend notifications every 2 hours<br />
notification_options		d,u,r		; Only send notifications for specific host states<br />
contact_groups			nagios-admins	; Notifications get sent to the admins by default<br />
register                        0               ; DONT REGISTER THIS DEFINITION &#8211; ITS NOT A REAL HOST, JUST A TEMPLATE!<br />
}</p></blockquote>
<p>Dabei ist wichtig, dass unter Name in der templates.cfg und unter use in der hosts.cfg der selbe Name steht.</p>
<p>Natürlich kann man nicht nur Server, sondern auch einzelne Services überwachen lassen. Diese werden in der Datei services.cfg eingetragen:</p>
<blockquote><p>define service{<br />
use                     generic-service<br />
service_description     HTTP<br />
check_command           check_http!80<br />
host_name               webserver01<br />
}</p></blockquote>
<p>Im Gegensatz zu einem Host verwendet man hier natürlich am Anfang define service. Weiter ist hier der Punkt check_command aus dem Template entfernt worden, da dieser bei einem Service je nach Art variiert. Im Beispiel wird überprüft ob eine HTTP Verbindung auf Port 80 aufgebaut werden kann.</p>
<p>Auch in der templates.cfg sieht es ähnlich aus:</p>
<blockquote><p>define service{<br />
name                            generic-service 	; The &#8216;name&#8217; of this service template<br />
active_checks_enabled           1       		; Active service checks are enabled<br />
passive_checks_enabled          1    		   	; Passive service checks are enabled/accepted<br />
parallelize_check               1       		; Active service checks should be parallelized (disabling this can lead to major performance problems)<br />
obsess_over_service             1       		; We should obsess over this service (if necessary)<br />
check_freshness                 0       		; Default is to NOT check service &#8216;freshness&#8217;<br />
notifications_enabled           1       		; Service notifications are enabled<br />
event_handler_enabled           1       		; Service event handler is enabled<br />
flap_detection_enabled          1       		; Flap detection is enabled<br />
failure_prediction_enabled      1       		; Failure prediction is enabled<br />
process_perf_data               0       		; Process performance data<br />
retain_status_information       1       		; Retain status information across program restarts<br />
retain_nonstatus_information    1       		; Retain non-status information across program restarts<br />
is_volatile                     0       		; The service is not volatile<br />
check_period                    24&#215;7			; The service can be checked at any time of the day<br />
max_check_attempts              3			; Re-check the service up to 3 times in order to determine its final (hard) state<br />
normal_check_interval           5			; Check the service every 10 minutes under normal conditions<br />
retry_check_interval            1			; Re-check the service every two minutes until a hard state can be determined<br />
contact_groups                  nagios-admins		; Notifications get sent out to everyone in the &#8216;admins&#8217; group<br />
notification_options		c,r			; Send notifications about warning, unknown, critical, and recovery events<br />
notification_interval           20			; Re-notify about service problems every hour<br />
notification_period             24&#215;7			; Notifications can be sent out at any time<br />
register                        0       		; DONT REGISTER THIS DEFINITION &#8211; ITS NOT A REAL SERVICE, JUST A TEMPLATE!<br />
}</p></blockquote>
<p>Was noch wichtig zu erwähnen ist, dass Konfiguration in der hosts.cfg denen in templates.cfg vorgezogen werden!</p>
<p>Und damit noch lange nicht genug <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Auch inner der templates.cfg-Datei werden keine redundanten Einträge benötigt:</p>
<blockquote><p>define service{<br />
name				service1	; The name of this<br />
&#8230;allgemeine settings&#8230;<br />
}</p>
<p>define service{<br />
name				service2<br />
use				service1<br />
&#8230;spezifischere settings&#8230;<br />
}</p></blockquote>
<p>Ich kann also innerhalb der templates auch mittels use auf einen schon vordefinierten Eintrag verweisen.</p>
<p>In der Datei hostgroups.cfg kann man Einstellungen anhand vom Typ eines Servers vornehmen. Intressant wird dies aber erst wenn man mehrere gleiche Server, mit gleichen Aufgaben oder Services betreibt.<br />
Da dies bei mir aber nicht der Fall ist, habe ich mich damit nicht weiter beschäftigt.</p>
<p>Nun fehlt uns noch eine Datei: die timeperiods.cfg.<br />
Diese ist in der Standardkonfiguration bereits in Ordnung und kann einfach kopiert werden:</p>
<blockquote><p>sudo cp /etc/nagios2/conf.d/timeperiods_nagios2.cfg /etc/nagios2/meinnetzwerk/timeperiods.cfg</p></blockquote>
<p>Nun haben wir mal eine Grundkonfiguration erstellt und können das Ergebnis anschauen. Doch dazu müssen wir Nagios erst mal noch mitteilen, dass wir nun einen eigenen Ordner, nämlich /meinnetzwerk/ verwenden!<br />
Dazu öffnen wir die Datei /etc/nagios2/nagios.cfg mit einem Editor und ergänzen diese mit folgendem Eintrag:</p>
<blockquote><p>cfg_dir=/etc/nagios2/meinnetzwerk</p></blockquote>
<p>Bevor wir nun unseren Deamon neustarten, prüfen wir noch unsere Konfiguration.<br />
Dazu beinhaltet der Befehl nagios2 den Schalter -v:</p>
<blockquote><p>nagios2 -v /etc/nagios2/heimnetzwerk/hosts.cfg<br />
nagios2 -v /etc/nagios2/heimnetzwerk/services.cfg<br />
nagios2 -v /etc/nagios2/heimnetzwerk/templates.cfg</p></blockquote>
<p>Erhält man hier keinen Fehler, so kann man nagios2 neustarten:</p>
<blockquote><p>sudo /etc/init.d/nagios2 restart</p></blockquote>
<p>Nun weden in der Weboberfläche bereits die ersten Server und Services aufgeführt und dargestellt.<br />
Wenn man das aber tatsächlich einsetzen will, so sollte man die Konfiguration noch extrem verfeinern und auf seine Bedürfnisse abstimmen!</p>
<p>Was ich bis jetzt noch nicht hingekriegt habe, ist das überwachen von Prozessen, Ressourcen wie CPU, RAM, Diskspace und anderen spezifischen, lokalen Vorgängen.</p>
<p>Dies sollte aber kein grosses Problem mehr sein, dazu aber in einem anderen Beitrag mehr!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2009/11/monitoring-mit-nagio/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

