23 Feb 2020

Mit Nagios überprüfen, ob alle Samba-Prozesse laufen

Wenn mann den Samba-Server in der Version 4.10 verwendet, will man vielleicht überwachen, ob noch alle nötigen Prozesse laufen. Diese kann man mit dem folgenden Nagios-Plugin tun, dass ich schnell geschrieben habe.

Anzeigen der Samba-Prozesse auf der Konsole:

root@server:~# samba-tool processes

 Service:                          PID
--------------------------------------
cldap_server                      2250
dnsupdate                         2256
dreplsrv                          2252
kccsrv                            2255
kdc_server                        2251
ldap_server                       2249
ldap_server                       2816
notify-daemon                     2715
rpc_server                        2245
samba                             1366
winbind_server                    2258
wrepl_server                      2247

Code zu check_samba_processes unten betrachten, kopieren oder einfach hier downloaden check_samba_processes

#!/usr/bin/perl
#
# nagios plugin to check if
# all wanted samba-processes are still running
# by chrissie/x-tra-designs 2020-02-23
# free beer license
# feel free to modify and use in any way
# 

use strict;
use warnings;

# get processes
open(my $fh, '-|', 'samba-tool processes') or die $!;

# capture output
my @o = <$fh>;

# debug
#foreach $o (@o) {
#  print "$o";
#}

my $patterns = join(',',@o);
my $count = 0;
my @missing;
my $m_flg=0;

# look for this 11 processes
for my $str (qw(cldap_server dnsupdate dreplsrv kccsrv kdc_server ldap_server notify-daemon rpc_server samba winbind_server wrepl_server)) {
    my $test = grep { /$str/ } @o;
    if ($test) { $count++ } else { push (@missing, $str); $m_flg = 1; };
}

#debug
#print "count $count";

my $datestring = localtime();
print "Date and Time $datestring | ";
if ($m_flg == 0) { print "OK - all samba processes are running.\n"; exit(0); }
if ($m_flg == 1) { print "CRITICAL - Process @missing is not running\n"; exit(2); }