<?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/"
	>

<channel>
	<title>Alonso.ch &#187; Nagios</title>
	<atom:link href="http://blog.alonso.ch/category/tech/nagios/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alonso.ch</link>
	<description>Nonsport Blog</description>
	<lastBuildDate>Wed, 01 Feb 2012 08:33:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Nagios Basiskonfiguration</title>
		<link>http://blog.alonso.ch/tech/nagios-basiskonfiguration/</link>
		<comments>http://blog.alonso.ch/tech/nagios-basiskonfiguration/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 17:53:08 +0000</pubDate>
		<dc:creator>Alonso</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[ecall]]></category>
		<category><![CDATA[Konfiguration]]></category>
		<category><![CDATA[SMS]]></category>

		<guid isPermaLink="false">http://blog.alonso.ch/?p=33</guid>
		<description><![CDATA[Nachdem Nagios installiert ist, kann mit der Konfiguration der Hosts und Services begonnen werden. Für dieses Beispiel haben wir folgende Anforderungen: SMS &#8211; und E-Mail Alarmierung Unterschiedliche Support-Teams pro Host Möglichst wenig Aufwand SMS-Gateway Der SMS-Versand soll in unserem Fall über den E-Mail2SMS Gateway von eCall (Schweiz) erfolgen. Dazu benötigen wir dort natürlich einen Account [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem Nagios <a href="http://blog.alonso.ch/tech/nagios/quickstart-nagios3-auf-debian-lenny-installieren/">installiert</a> ist, kann mit der Konfiguration der Hosts und Services begonnen werden.</p>
<p><strong>Für dieses Beispiel haben wir folgende Anforderungen:</strong></p>
<ul>
<li>SMS &#8211; und E-Mail Alarmierung</li>
<li>Unterschiedliche Support-Teams pro Host</li>
<li>Möglichst wenig Aufwand</li>
</ul>
<p><span id="more-33"></span><br />
<strong>SMS-Gateway</strong><br />
Der SMS-Versand soll in unserem Fall über den <a href="http://www.ecall.ch/pa.asp?100115wep">E-Mail2SMS Gateway von eCall</a> (Schweiz) erfolgen. Dazu benötigen wir dort natürlich einen Account und ein Guthaben. Zudem muss dort der &#8220;Zugang via E-Mail&#8221; freigeschaltet sein und unsere Nagios E-Mailadresse als gültiger Absender eingetragen sein. In diesem Beispiel wollen wir den Empfänger im An-Feld der E-Mail zuweisen (also z.B. +41791234567@sms.ecall.ch).</p>
<p><strong>Konfiguration</strong><br />
Die Nagios-Konfigurationsfiles liegen in unserem Setup unter /etc/nagios3/conf.d. Die bestehenden Files dort löschen wir vorerst. (Natürlich könnten die vorhanden Files auch übernommen und angepasst werden).</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nagios3<span style="color: #000000; font-weight: bold;">/</span>conf.d<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #000000; font-weight: bold;">*</span>.cfg</pre></div></div>

<p><strong>Perioden</strong><br />
Nagios erlaubt es, verschiedene Zeitpläne zu verwalten, damit die Alarmierung z.B. nur während Bürozeiten erfolgt. In unserem Setup benutzen wir diese Möglichkeit allerdings nicht und alarmieren somit 24&#215;7.</p>
<p>/etc/nagios3/conf.d/periods.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">###############################################################################
# periods.cfg
###############################################################################
&nbsp;
# Unfriendly period
define timeperiod{
        timeperiod_name 24x7
        alias           24 Hours A Day, 7 Days A Week
        sunday          00:00-24:00
        monday          00:00-24:00
        tuesday         00:00-24:00
        wednesday       00:00-24:00
        thursday        00:00-24:00
        friday          00:00-24:00
        saturday        00:00-24:00
        }</pre></div></div>

<p><strong>Kontakte und Kontaktgruppen</strong><br />
Dies sind die Alarmempfänger. Damit unser Setup flexibel und einfach bleibt, arbeiten wir ausschliesslich über Kontaktgruppen. So können später die Alarmempfänger ganz einfach hier in Gruppen ein/ausgetragen werden.</p>
<p>/etc/nagios3/conf.d/contacts.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">###############################################################################
# contacts.cfg
###############################################################################
&nbsp;
# Persons
define contact{
        contact_name                    admin1
        alias                           Your friendly Hostadmin 1
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email, notify-service-by-sms
        host_notification_commands      notify-host-by-email, notify-host-by-sms
        email                           admin1@mail.tld
        pager                           004179*******@msg.ecall.ch
}
&nbsp;
&nbsp;
define contact{
        contact_name                    admin2
        alias                           Your unfriendly Hostadmin 2
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email, notify-service-by-sms
        host_notification_commands      notify-host-by-email, notify-host-by-sms
        email                           admin2@mail.tld
        pager                           004179*******@msg.ecall.ch
}
&nbsp;
# Contactgroups
define contactgroup{
        contactgroup_name       staff
        alias                  All SysAdmins
        members                 admin1, admin2
}
&nbsp;
define contactgroup{
        contactgroup_name       company1
        alias                   Company 1
        members                 admin1
}
&nbsp;
define contactgroup{
        contactgroup_name       company2
        alias                  Company 2
        members                 admin2
}</pre></div></div>

<p>Das &#8220;Pager&#8221; Attribut wird in unserem Fall verwendet, um den SMS-Empfänger einzutragen. In den Kontaktgruppen werden nun jeweils unsere Members eingetragen. Diese werden im entsprechenden Fall ALLE informiert.</p>
<p><strong>Host-Template</strong><br />
Es können verschiedene Host-Templates erfasst werden. Wir verwenden vorerst das Defaultemplate von Nagios weiter</p>
<p>/etc/nagios3/conf.d/template-host.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">##############################################################################
# template-host.cfg
##############################################################################
&nbsp;
define host{
        name                            generic-host
        notifications_enabled           1       ; Host notifications
        event_handler_enabled           1       ; Host event handler
        flap_detection_enabled          1       ; Flap detection
        failure_prediction_enabled      1       ; Failure prediction
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
                check_command                   check-host-alive
                max_check_attempts              10
                notification_interval           0
                notification_period             24x7
                notification_options            d,u,r
                contact_groups                  admins
        register                        0
        }</pre></div></div>

<p><strong>Hosts</strong><br />
Langsam wirds spannend &#8211; Wir erfassen unsere Hosts. Die können etntweder mit ihrem Hostnamen oder ihrer IP &#8220;adressiert&#8221; werden. Über das &#8220;use&#8221; Attribut wird das Template bestimmt, welches wir verwenden wollen. Wenn erwünscht können für einzelne Hosts auch die Parameter des Templates übersteuert werden.</p>
<p>/etc/nagios3/conf.d/hosts.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">##############################################################################
# hosts.cfg
##############################################################################
define host {
        host_name       nagioshost
        alias           mynagios.something.tld
        address         localhost
        use             generic-host
        contact_groups  staff
        }
&nbsp;
define host {
        host_name       server1
        alias           server1.something.com
        address         xxx.xxx.xxx.xxx
        use             generic-host
        contact_groups  company1
        }
&nbsp;
define host {
        host_name       server2
        alias           server2.something.com
        address         xxx.xxx.xxx.xxx
        use             generic-host
        contact_groups  company2
        }</pre></div></div>

<p>Über die contact_groups weisen wir nun die zuständigen Teams direkt dem Host zu. Damit werden danach alle Alarme für den Host und seine Services entsprechend zugestellt.</p>
<p><strong>Hostgruppen</strong><br />
Über die Hostgruppen können Hosts logisch gruppiert werden (Dienst, Funktion..). Natürlich kann ein Host auch in mehreren Gruppen zugeteilt werden.</p>
<p>/etc/nagios3/conf.d/hostgroups.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">##############################################################################
# hostgroups.cfg
##############################################################################
define hostgroup {
        hostgroup_name  all
                alias           All Servers
                members         *
        }
&nbsp;
# Web servers
define hostgroup {
        hostgroup_name  http-servers
                alias           HTTP servers
                members         nagioshost, server1
        }
&nbsp;
define hostgroup {
        hostgroup_name          https-servers
                alias           HTTPS servers
                members         nagioshost, server2
        }
&nbsp;
&nbsp;
# SSh Servers
define hostgroup {
        hostgroup_name  ssh-servers
                alias           SSH servers
                members         server1, server2
        }</pre></div></div>

<p>Es lohnt sich hier, die Gruppen klever zu bestimmen und einzuteilen.</p>
<p><strong>Dienst-Template</strong><br />
Es können verschiedene Dienst-Templates erfasst werden. Wir verwenden hier bis auf einige Details das Defaultemplate von Nagios weiter</p>
<p>/etc/nagios3/conf.d/template-service.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">##############################################################################
# template-service.cfg
##############################################################################
&nbsp;
define service{
        name                            generic-service
        active_checks_enabled           1       ; Active service checks
        passive_checks_enabled          1       ; Passive service checks
        parallelize_check               1       ; Active service checks should be parallelized (disabling this can lead to major performance problems)
        obsess_over_service             1       ; We should obsess over this service (if necessary)
        check_freshness                 0       ; Default is to NOT check service 'freshness'
        notifications_enabled           1       ; Service notifications 
        event_handler_enabled           1       ; Service event handler 
        flap_detection_enabled          1       ; Flap detection 
        failure_prediction_enabled      1       ; Failure prediction 
        process_perf_data               1       ; Process performance data
        retain_status_information       1       ; Retain status information across program restarts
        retain_nonstatus_information    1       ; Retain non-status information across program restarts
                notification_interval           0               ; Only send notifications on status change by default.
                is_volatile                     0
                check_period                    24x7
                normal_check_interval           5
                retry_check_interval            1
                max_check_attempts              4
                notification_period             24x7
                notification_options            w,u,c,r
        register                        0
        }</pre></div></div>

<p>Wichtig ist hier, dass KEIN contact/contact_group zugewiesen wird. Dadurch werden diese Informationen vererbt (in unserem Fall vom Host).</p>
<p><strong>Dienste</strong><br />
Als letztes können wir nun noch die zu überwachenden Dienste definieren.</p>
<p>/etc/nagios3/conf.d/services.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">###############################################################################
# services.cfg
###############################################################################
define service {
        hostgroup_name                  http-servers
        service_description             HTTP
        check_command                   check_http
        use                             generic-service
        notification_interval           0 ; set &gt; 0 if you want to be renotified
}
&nbsp;
&nbsp;
define service {
        hostgroup_name                  https-servers
        service_description             HTTPS
        check_command                   check_https
        use                             generic-service
        notification_interval           0 ; set &gt; 0 if you want to be renotified
}
&nbsp;
define service {
        hostgroup_name                  ssh-servers
        service_description             SSH
        check_command                   check_ssh
        use                             generic-service
        notification_interval           0 ; set &gt; 0 if you want to be renotified
}</pre></div></div>

<p>Die Dienste werden idealerweise an Hostgruppen zugewiesen, da dies die Administration erleichtert. So können z.B. für Hostgruppen gleich mehrere Dienste überwacht werden.</p>
<p>Natürlich können auch unzählige weitere Dienste überwachen oder gar eigene Plugins schreiben. Die <a href="http://nagios.sourceforge.net/docs/3_0/toc.html">Nagios Dokumentation</a> hilft weiter <img src='http://blog.alonso.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Eigene Befehle (commands)</strong><br />
Als letztes müssen wir noch die beiden neuen Commands (notify-host-by-sms, notify-service-by-sms) eintragen. Die bestehenden commands dürfen/müssen natürlich weiter existieren.</p>
<p>/etc/nagios3/commands.cfg</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">...
# host 'notify-host-by-sms' command definition
define command{
        command_name    notify-host-by-sms
        command_line    /usr/bin/printf &quot;%b&quot; &quot;\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nDate/Time: $LONGDATETIME$\n&quot; | /usr/bin/mail -s &quot;** NAGIOS **&quot; $CONTACTPAGER$
        }
&nbsp;
# 'notify-service-by-sms' command definition
define command{
        command_name    notify-service-by-sms
        command_line    /usr/bin/printf &quot;%b&quot; &quot;\nHost: $HOSTALIAS$\nService: $SERVICEDESC$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$&quot; | /usr/bin/mail -s &quot;** NAGIOS **&quot; $CONTACTPAGER$
        }
..</pre></div></div>

<p>Dies ist gleichzeitig das Nachrichtentemplate, welches natürlich beliebig ergänzt werden kann. Mein Beispiel ist so definiert dass die 160 Zeichen möglichst nicht überschritten werden.</p>
<p><strong>Nagios neu starten</strong><br />
Damit unsere Konfiguration übernommen wird, muss Nagios neu gestartet werden</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nagios3 restart</pre></div></div>

<p>(Allfällige Fehler in der Konfiguration werden direkt beim Start von Nagios auf die Shell zurückgemeldet)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alonso.ch/tech/nagios-basiskonfiguration/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Quickstart: Nagios3 auf Debian Lenny installieren</title>
		<link>http://blog.alonso.ch/tech/nagios/quickstart-nagios3-auf-debian-lenny-installieren/</link>
		<comments>http://blog.alonso.ch/tech/nagios/quickstart-nagios3-auf-debian-lenny-installieren/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 15:49:38 +0000</pubDate>
		<dc:creator>Alonso</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Nagios]]></category>
		<category><![CDATA[Lenny]]></category>

		<guid isPermaLink="false">http://blog.alonso.ch/?p=10</guid>
		<description><![CDATA[Die Basisinstallation von Nagios3 unter Debian Lenny ist eigentlich keine grosse Herausforderung und innert Minuten erledigt. Die Anforderungen: Betriebsfähiges Debian Lenny (32 oder 64Bit) mit intaktem Netzwerksetup Konsole oder SSH Zugang mit Root-Account ca. 200MB freier Speicherplatz (/usr, /var) Texteditor (z.B. vim) Die Installation kann direkt über die Packete aus dem Repository gestartet werden: apt-get [...]]]></description>
			<content:encoded><![CDATA[<p>Die Basisinstallation von Nagios3 unter Debian Lenny ist eigentlich keine grosse Herausforderung und innert Minuten erledigt.</p>
<p>Die Anforderungen:</p>
<ol>
<li>Betriebsfähiges Debian Lenny (32 oder 64Bit) mit intaktem Netzwerksetup</li>
<li>Konsole oder SSH Zugang mit Root-Account</li>
<li>ca. 200MB freier Speicherplatz (/usr, /var)</li>
<li>Texteditor (z.B. vim)</li>
</ol>
<p><span id="more-10"></span></p>
<p>Die Installation kann direkt über die Packete aus dem Repository gestartet werden:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> nagios3 apache2</pre></div></div>

<p>(Durch die Packetabhängigkeiten werden alle notwendigen Packete automatisch mitinstalliert)</p>
<p>Damit ist schon ein beachtlicher Teil der Installation erledigt. Nun braucht es noch ein paar kleine Anpassungen.</p>
<p>Die Nagios-Konfiguration ist weitgehend unter /etc/nagios3 zu finden. Dort brauchen wir als erstes nun einen gültigen User für die HTTP-Autentifizierung.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nagios3
htpasswd <span style="color: #660033;">-c</span> htpasswd.users IHRBENUTZERNAME</pre></div></div>

<p>Danach wird das Passwort abgefragt. Mit diese Kombination aus User/Passwort können wir uns anschliessend auf unserer Nagios-Installation anmelden.</p>
<p>Als nächstes sollten wir nun die external commands aktivieren. Dadurch können wir direkt über Weboberfläche die Alarmierung aktivieren/deaktivieren.</p>
<p>Dazu bearbeiten wir die nagios.cfg:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">vi</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>nagios3<span style="color: #000000; font-weight: bold;">/</span>nagios.cfg</pre></div></div>

<p>Dort suchen wir uns folgende Zeile:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">check_external_commands=0</pre></div></div>

<p>Diese aktivieren wir durch ändern dieses Wertes auf 1:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">check_external_commands=1</pre></div></div>

<p>Danach müssen noch die Berechtigungen auf dem Filesystem angepasst werden, wa wir sonst diesen Fehler erhalten:</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">Error: Could not stat() command file '/var/lib/nagios3/rw/nagios.cmd'!</pre></div></div>

<p>Dies können wir relativ einfach beheben durch:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">touch</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nagios3<span style="color: #000000; font-weight: bold;">/</span>rw<span style="color: #000000; font-weight: bold;">/</span>nagios.cmd
dpkg-statoverride <span style="color: #660033;">--update</span> <span style="color: #660033;">--add</span> nagios www-data <span style="color: #000000;">2710</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nagios3<span style="color: #000000; font-weight: bold;">/</span>rw
dpkg-statoverride <span style="color: #660033;">--update</span> <span style="color: #660033;">--add</span> nagios nagios <span style="color: #000000;">751</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>nagios3
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nagios3 restart</pre></div></div>

<p>Das wars. Nun sollten sie unter http://NAGIOSIP/nagios3 auf ihr soeben installiertes Nagios zugreiffen können. </p>
<p>Natürlich braucht unser Nagios danach noch eine <a href="http://blog.alonso.ch/tech/nagios-basiskonfiguration/">Konfiguration</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alonso.ch/tech/nagios/quickstart-nagios3-auf-debian-lenny-installieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

