NVIDIA-Grafikkarten unter Linux mit Checkmk überwachen

Das Überwachen von NVIDIA-Grafikkarten unter Linux gelingt mit Checkmk durch einen einfachen Local-Check. Einzig das nvidia-smi-Binary muss vorhanden sein.

Der Check übermittelt die Metriken für Temperatur, Speichernutzung und Stromverbrauch.

Visualisierung der Metriken in Checkmk
#!/bin/bash

# Version 1.0, 2021-07-24, (c) Daniel Neubert, https://neubert.at

TEMP_WARN=50
TEMP_CRIT=60

NVIDIA_SMI=`/usr/bin/which nvidia-smi`

if [ -z "{NVIDIA_SMI}" ] || [ ! -x "${NVIDIA_SMI}" ]; then
  exit
fi

trim() {
  local s2 s="$*"
  until s2="${s#[[:space:]]}"; [ "$s2" = "$s" ]; do s="$s2"; done
  until s2="${s%[[:space:]]}"; [ "$s2" = "$s" ]; do s="$s2"; done
  echo "$s"
}

for GPU_INDEX in `${NVIDIA_SMI} --query-gpu=index --format=csv,noheader`; do
    while IFS="," read -r index gpu_name driver_version temperature_gpu memory_total memory_used utilization_gpu power_draw
    do
        if (( $(trim $temperature_gpu) >= ${TEMP_CRIT} )); then
            SEVERITY=2
        elif (( $(trim $temperature_gpu) >= ${TEMP_WARN} )); then
            SEVERITY=1
        else
            SEVERITY=0
        fi

        echo "${SEVERITY} NVIDIA_GPU_$(trim $index) gpu_temp=$(trim $temperature_gpu);${TEMP_WARN};${TEMP_CRIT}|power_draw=$(trim $power_draw)|gpu_memory=$(trim $memory_used);;0;$(trim $memory_total) $(trim $gpu_name), Version $(trim $driver_version) - Temp GPU $(trim $temperature_gpu)"°C" - $(trim $memory_used)MB/$(trim $memory_total)MB used - Power $(trim $power_draw)W"
    done  < <( nvidia-smi --query-gpu=index,gpu_name,driver_version,temperature.gpu,memory.total,memory.used,utilization.gpu,power.draw --format=csv,noheader,nounits )

Das Script findet sich auch in meinem Github-Repository für Checkmk: https://github.com/glutorange/checkmk

Beitrag erstellt am 25.07.2021 um 00:54:06 Uhr von Daniel in Kategorie(n): Checkmk, Linux, Technik

Projekt NAS-SSD-RAID-Upgrade

So langsam wurde es Zeit, die alten Magnet-Platten aus NAS zu werfen. Einige der verwendeten 2TB-WD-Disks sind Baujahr 2009 und haben entsprechend hohe Laufzeiten hinter sich. Auch wenn das NAS bei mir längst nicht mehr 24/7 läuft, sind da über die ganzen Jahre schon so einige Stunden zusammen gekommen.

Das bisher verwendete RAID 5, bestehend aus 7 x 2 TB Disks wird abgelöst durch ein minimal kleineres RAID 5, bestehend aus 6 x 2 TB SATA-SSDs.

Bei Geizhals hat sich für die von mir gewählte Crucial BX 500 mit 2TB ein Anbieter mit einem Preis von 144€ je Disk (und damit wieder auf dem Nivau der letzten Angebote) gefunden so dass ich hier einfach zugreifen musste:

Damit wird das NAS nebenbei um 7 x 820g, also ca. 5,7kg (!) erleichtert. Die SSDs wiegen jeweils 38g, in Summe also gerade mal etwa 230g.

Um die SSDs im Gehäuse ordentlich befestigen zu können, habe ich den 3D-Drucker bemüht und ein kleines SSD-Case modelliert:

Hier lassen sich bis zu 8 2,5″ SSDs einschieben und dann auf einen 3,5″ Quick-Release-Rahmen setzen so dass im Gehäuse maximale Ordnung herrscht. Da die SSDs nie für längere Zeit beansprucht werden ist die Belüftung/Kühlung sekundär, im Gehäusebereich für die Laufwerke herrscht allgemein ein brauchbarer Luftstrom.

Aufgesetzt auf den QUick-Release-Rahmen…
… und auf der Unterseite mit Klebe-Füßchen gesichert

Das Software-RAID 5 mit 6 SSDs:

[root@nas ~]# mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat Apr 10 15:29:45 2021
        Raid Level : raid5
        Array Size : 9766912000 (9.10 TiB 10.00 TB)
     Used Dev Size : 1953382400 (1862.89 GiB 2000.26 GB)
      Raid Devices : 6
     Total Devices : 6
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Apr 12 00:38:34 2021
             State : clean 
    Active Devices : 6
   Working Devices : 6
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : nas:0  (local to host nas)
              UUID : 21422187:a0472572:9362bf60:cd407cf9
            Events : 7168

    Number   Major   Minor   RaidDevice State
       0       8       32        0      active sync   /dev/sdc
       1       8       80        1      active sync   /dev/sdf
       2       8       96        2      active sync   /dev/sdg
       3       8       16        3      active sync   /dev/sdb
       4       8       48        4      active sync   /dev/sdd
       6       8       64        5      active sync   /dev/sde
[root@nas ~]# 

Und sauber im Monitoring:

Beitrag erstellt am 11.04.2021 um 11:52:58 Uhr von Daniel in Kategorie(n): IT, Linux, Technik

Fritz!DECT 301 im Test

Passend zu den neuen Heizkörpern habe ich mir mal testhalber ein Fritz!DECT 301 gekauft um zu schauen wie gut das hier in der Wohnung funktioniert. Installation und Konfiguration AVM-typisch natürlich absolut easy und ohne Fallstricke. Einrichtung in < 2 Minuten abgeschlossen. Jetzt muss sich das Thermostat in der Praxis bewähren bevor weitere Heizkörper umgerüstet werden.

Beitrag erstellt am 21.03.2021 um 08:00:00 Uhr von Daniel in Kategorie(n): Allgemein, Technik

Check_MK-Plugin für Hetzner Storagebox Monitoring

Wer wie ich bei Hetzner eine Storagebox betreibt und den Füllstand mit Check_MK überwachen möchte, für den hab ich ein kleines Plugin erstellt:

#!/bin/bash
echo "<<<df>>>"
echo "/storagebox sb `echo df | sftp -q storagebox | tail -1 | awk '{print $1" "$2" "$3" "$5}'` /storagebox"

Das Mini-Script wird dann im Plugin-Ordner abgelegt, also z.B.

/usr/lib/check_mk_agent/plugins

Das Ergebnis sieht dann – nach reinventarisierung des Hosts – im Check_MK wie folgt aus:

Dadurch, dass die Daten direkt an das df-Plugin gehen, kann man hier natürlich mit den regulären Rulesets arbeiten.

Das ganze setzt voraus, dass man auf dem Monitoring-Host eine SSH-Konfiguration für den Zugriff auf die Storagebox konfiguriert hat und den entsprechenden SSH-Key bei Hetzner hinterlegt hat.

Host storagebox 
	User uXYZXYZ
	Hostname uXYZXYZ.your-storagebox.de
	Port 23
	IdentityFile ~/.ssh/id_rsa_storagebox

Führt man das Script auf der Kommandozeile aus, dann sieht es wie folgt aus:

root@core:/usr/lib/check_mk_agent/plugins# ./storagebox 
<<<df>>>
/storagebox sb 524288000 281441050 242846949 53% /storagebox
root@core:/usr/lib/check_mk_agent/plugins#

Bei Gelegenheit schreibe ich mal was zur Hetzner Cloud, wer Interesse hat, darf gerne meinen Referal-Link nutzen: https://hetzner.cloud/?ref=LfVjlTiMI0Ws

Beitrag erstellt am 21.11.2020 um 20:04:03 Uhr von Daniel in Kategorie(n): Checkmk, Referal, Technik

Google Stadia – Premiere Edition

Als Google-Music (bzw. jetzt ja Youtube Music) Kunde bekommt man derzeit von Google die „Stadia – Premiere Edition“ gratis.

Weitere Infos dazu gibt es u.a. im Beitrag bei Caschy bzw. auf der Aktions-Seite von Google.

Da zu dem Paket auch ein Chromecast Ultra gehört, habe ich mal direkt zu geschlagen. Ich habe am Montag (16.11.2020) bestellt – und heute ist das Paket bei mir aufgeschlagen:

Meine Stadia-Premiere Edition ist heute angekommen

Beitrag erstellt am 20.11.2020 um 16:09:00 Uhr von Daniel in Kategorie(n): Allgemein, Technik

Ich will doch nur wissen wie spät es ist…

Da will man nur kurz schauen, wie spät es ist… macht die Uhr erstmal ein Update 😉

Beitrag erstellt am 16.06.2020 um 15:03:25 Uhr von Daniel in Kategorie(n): Technik

|

[Impressum]