Seit der Version 3.2 von check_logfiles ist es einfach geworden, Eventlogs von Windows-Servern auszulesen, ohne auf diesen das Plugin installieren zu müssen. Es wird jetzt nur noch ein "Gatewayserver" sowie ein Domainbenutzer nagios benötigt.
<p>Auf dem Gatewayserver richtet man eine NSClient++-Umgebung ein und installiert das Plugin check_logfiles.exe. Der Zugriff auf die Eventlogs aller anderen Server geschieht dann mit Windows-Bordmitteln. Angenommen, zu diesem Zweck wurde der Benutzer nagios in der Domain NAPRAX eingerichtet, so formuliert man den Abschnitt "eventlog" in der check_logfiles-Konfigurationsdatei folgendermaßen:</p>
@searches = ({
tag => 'evt_sec',
type => 'eventlog',
eventlog => {
eventlog => 'security',
computer => '10.0.12.127',
username => 'NAPRAX\nagios',
password => '_geheim_',
},
criticalpatterns => '.*',
});
Damit man nun nicht für jeden Client so einen Abschnitt mit eigenem Tag erstelle muss, kann man Ziel-Eventlog und Zugangsdaten auch als Macros angeben:
@searches = ({
tag => 'evt_sec',
type => 'eventlog',
eventlog => {
eventlog => '$CL_EVT_EVTLOG$',
computer => '$CL_EVT_COMPUTER$',
username => '$CL_EVT_USERNAME$',
password => '$CL_EVT_PASSWORD$',
},
criticalpatterns => '.*',
});
Der Plugin-Aufruf, bei dem die Zugangsdaten in dynamischer Form bereitgestellt werden, lautet dann:
check_logfiles.exe --config config.cfg
--macro CL_EVT_EVTLOG=security --macro CL_EVT_COMPUTER=10.0.12.127
--macro CL_EVT_USERNAME=NAPRAX\nagios --macro CL_EVT_PASSWORD=_geheim_
Wie sorgt man aber dafür, daß der Domainbenutzer NAPRAX\nagios überall die Berechtigung zum Lesen der Eventlogs besitzt? In einer homogenen Umgebung, in der nur Windows Server 2008 zum Einsatz kommen, ist das ein Kinderspiel. Bei dieser Betriebssystemversion gibt es die Gruppe "Ereignisprotokolleser", die genau diese gewünschte Berechtigung bereitstellt. Man muss nur noch dafür sorgen, daß der Domain-User NAPRAX\nagios auf allen Clients Mitglied in dieser Gruppe ist. Das erreicht man ganz einfach mittels einer Group Policy, deren Einrichtung im folgenden Video gezeigt wird.
Bei einem AD-Controller und Clients unter Windows Server 2003 geht es leider nicht so einfach. Machbar ist die domainweite Rechtevergabe aber trotzdem. Wie das geht, ist unter http://support.microsoft.com/kb/323076/EN-US/ beschrieben.