Dez 212017
 

Manchmal möchte man allen Nutzern im Netz die Möglichkeit geben zu sehen, wer im Haus gerade anwesend ist bzw. eine Samba/smb-Verbindung zur DiskStation aufgebaut hat.

Im Folgenden ein Weg, diese Information über einen Webserver auf der DiskStation unter einer Adresse wie http://diskstation.intern/benutzer.php bereitzustellen:

1. Voraussetzung ist die Installation der Pakete WebStation und PHP 7.0.

2. Im Aufgabenplaner ein benutzerdefiniertes Script, welches alle fünf Minuten als root ausgeführt wird, einrichten:

/bin/smbstatus -S |cut -f 3,4 | grep . | sort | uniq | tee /tmp/benutzer-list
date | tee /tmp/benutzer-date

3. Unter /volume1/web/benutzer.php das Ausgabescript ablegen:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 <meta http-equiv="expires" content="0">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="refresh" content="600;url=/benutzer.php">
 <title>Aktuell angemeldete Benutzer</title>
</head> 
<body text="#00335B" bgcolor="#FFFFFF" link="#F49807" vlink="#F49807" alink="#FFCC33" style="width: 95%; margin-left:auto; margin-right:auto; font-family: Helvetica, Arial, Geneva, sans-serif;">
<table border="0">
<tr>
<td width="90%">
 <h3><b>Aktuell angemeldete Benutzer</b></h3>
</td>
<td align=right><img src="Logo.png"></td>
</tr>
</table>
<?php
echo "<table>";
echo "<tr><th width=\"130\" align=\"left\">User</th><th align=\"left\">Workstation</th></tr>";
$file = '/tmp/benutzer-list';
$file_handle = fopen($file, 'r');
while (!feof($file_handle)) {
 $line = fgets($file_handle);
 $spline = preg_split('/\s+/', $line);
 if (!empty($spline[0])) {
 echo "<tr><td>";
 echo $spline[0];
 echo "</td><td>";
 echo gethostbyaddr($spline[1]);
 echo "</td></tr>";
 }
}
fclose($file_handle);
echo "</table><br>";
echo "Anzahl: ";
echo shell_exec("wc -l < /tmp/benutzer-list");
echo "<br><br>";
echo shell_exec("cat /tmp/benutzer-date");
?>
</body>
</html>

4. In /etc.defaults/samba/smb.conf und /etc/samba/smb.conf diese Zeilen ergänzen und samba neu starten (/usr/syno/etc/rc.sysv/S80samba.sh restart):

socket options=SO_KEEPALIVE TCP_KEEPCNT=4 TCP_KEEPIDLE=240 TCP_KEEPINTVL=15
deadtime=10
keepalive=150
Dez 142017
 

Über meine Erfahrungen mit Ubiquiti UniFi Produkten hatte ich bereits früher berichtet: WLAN mit Roaming bezahlbar

Heute mein Versuch eines minimalen Monitorings der UniFi-Produkte mit Nagios:

Da die beiden existierenden Nagios-Plugins, welche über SNMP Detailinformationen des UniFi-Controllers abrufen und auswerten, bei mir nicht zum Laufen zu bekommen sind, habe ich ein minimales Plugin geschrieben, welches lediglich die Erreichbarkeit der Access Points per ping und des Controllers auf tcp Port 8443 prüft. Die Adressen und Bezeichnungen müssen direkt im Code selbst geändert werden. Der Ausfall eines Access Points gibt den Status WARNING zurück, der Ausfall mehrerer Access Points den Status CRITICAL. Der Ausfall des Controllers gilt ebenfalls als CRITICAL.


#!/bin/bash

ping="/bin/ping"
nc="/bin/nc"
failures=0
output=""

docheck(){
if ! $ping -c 1 -w 1 $1 > /dev/null; then
((failures++))
output+="AP $2 DOWN; "
else
output+="AP $2 UP; "
fi;
}

docheck-ctrl(){
if ! $nc -z -w1 $1 8443 > /dev/null; then
# Wertung als Doppelfehler, da kritisch
((failures++))
((failures++))
output+="Controller $2 DOWN; "
else
output+="Controller $2 UP; "
fi;
}

# Pruefung der Access Points (nur ping)
docheck "192.168.1.50" "Erdgeschoss"
docheck "192.168.1.51" "Trakt A"
docheck "192.168.1.52" "Trakt B"
docheck "192.168.1.53" "Keller"
docheck "192.168.1.54" "Empfang"
docheck "192.168.1.55" "Halle"
docheck "192.168.1.56" "Hof"
# Pruefung des Controllers (tcp 8443)
docheck-ctrl "192.168.1.5" "unifi-Controller"

if [ $failures -lt 1 ]
then
echo "OK- $output"
exit 0
elif [ $failures -eq 1 ]
then
echo "WARNING- $output"
exit 1
elif [ $failures -gt 1 ]
then
echo "CRITICAL- $output"
exit 2
else
echo "UNKNOWN- $output"
exit 3
fi

 

Dez 072017
 


Bei Überwachung eines Synology High-Availability Clusters (HA-Cluster) mit Nagios möchte man gern eine Warnung erhalten, wenn nicht mehr der primäre, sondern – aufgrund eines Ausfalls desselbigen – der sekundäre Server aktiv ist?

Dies kann einfach erreicht werden, indem man im Plugin check_snmp_synology zwischen den anderen Checks folgenden Code einfügt, um anhand der Seriennummer der aktiven DiskStation zu prüfen, welches Gerät gerade angesprochen wird. Im Code ist “1740PVN123456” durch die Seriennummer des primären Servers des HA-Clusters zu ersetzen.


#Check system serial
if [[ "$serialNumber" == *"1740PVN123456"* ]] ; then
systemSerial="primary"
else
systemSerial="non-primary (WARNING)"
healthWarningStatus=1
healthString="$healthString, System serial: $systemSerial "
fi

Somit steht einem Monitoring des Wechsels zwischen aktivem und passivem Server nichts mehr im Wege.