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%):

Übersetzungen: