Kurztipp: Nagios/Icinga Fehlermeldung "DISK CRITICAL - /var/lib/pgsql/data is not accessible: Permission denied"
Wer auf einem CentOS/RHEL-System eine PostgreSQL-Datenbank betreibt und das Datenverzeichnis auf eine Partition ausgelagert hat läuft vermutlich auf den folgenden Fehlalarm, wenn der Füllstand mithilfe des Nagios/Icinga Plugins check_disk
überwacht werden soll:
1DISK CRITICAL - /var/lib/pgsql/data is not accessible: Permission denied
Das kommt daher, dass das check_disk
Plugin keine Rechte hat, um in das Verzeichnis zu wechseln:
1# ls -ld /var/lib/pgsql/data/
2drwx------ 13 postgres postgres 4096 Nov 13 23:49 /var/lib/pgsql/data/
Natürlich könnte man jetzt für andere Benutzer mithilfe von chmod o+x
die entsprechenden Rechte erteilen. Schöner ist es jedoch, ACLs anzuwenden - denn so werden die Rechte nur für den nrpe
Benutzer und nicht für alle Benutzer erteilt.
Zuerst werden, falls noch nicht geschehen, ACLs aktiviert und das Dateisystem mit ACLs erneut eingehängt:
1# tune2fs -l /dev/mapper/... |grep "mount options"
2Default mount options:
3# tune2fs -o acl /dev/mapper/...
4# mount -o remount,acl /path/...
5# tune2fs -l /dev/mapper/... |grep "mount options"
6Default mount options: acl
7# mount -v|grep path
8/dev/mapper/... on /var/lib/pgsql/data type ext4 (rw,acl)
Anschließend wird für den Benutzer nrpe
das Ausführrecht auf /var/lib/pgsql
erteilt:
1# setfacl -m u:nrpe:x /var/lib/pgsql
2# getfacl /var/lib/pgsql
3getfacl: Removing leading '/' from absolute path names
4# file: var/lib/pgsql
5# owner: postgres
6# group: postgres
7user::rwx
8user:nrpe:--x
9group::---
10mask::--x
11other::---
Ab der nächsten Überprüfung liefert das Plugin die erwarteten Informationen:
1DISK OK - free space: /var/lib/pgsql/data 951 MB (19% inode=99%):