私はCentOS6でmariadb、nginx 1.4、php5.4.xを使用してCactiをセットアップしようとしました
グラフを更新できません
私のサボテンファイルはすべてユーザーnginxが所有しているので、私のcrontabファイル/etc/cron.d/cactiには
*/5 * * * * nginx /usr/bin/php -q /usr/share/nginx/html/cacti/poller.php > /var/local/log/poller.log 2>&1
ただし、cronログで実行されていることがわかりますが、poller.logに出力が生成されず、cacti.logが更新されません。
Oct 13 12:20:01 srv CROND[14644]: (nginx) CMD ( /usr/bin/php -q usr/share/nginx/html/cacti/poller.php > /var/local/log/poller.log 2>&1)
Sudo -u nginx /usr/bin/php -q /usr/share/nginx/html/cacti/poller.php
を実行して出力を確認すると、.rrd
ファイルが更新されているようです。また、これを一度Sudo -u nginx php -q cli/rebuild_poller_cache.php
実行し、どういうわけかグラフ上に1つのデータポイントを取得しましたが、グラフを手動で更新することさえできなくなりました。
Cacti.log(手動で実行した場合にのみ更新されます)には何も役に立たないようです。また、SELinuxに関して/var/log/secure
に何も表示されませんでしたが、見逃した可能性があります(何を探すべきかわからない)。
これを修正するにはどこを見ればよいですか?実行しているのにcronジョブが機能しないのはなぜですか?グラフを再度更新するにはどうすればよいですか?
更新:問題が発生したと思います。実際のrraフォルダーのパーミッションは調べていませんが、シンボリックリンクだけです。それを直してみます。
関連するrraファイルのパーミッション:
$ lll /usr/share/nginx/html/cacti/rra
lrwxrwxrwx. 1 nginx nginx 18 Oct 12 23:21 /usr/share/nginx/html/cacti/rra -> /var/lib/cacti/rra
$ lll /usr/share/nginx/html/cacti/rra/
total 340
drwxr-xr-x. 2 cacti root 4096 Oct 13 00:32 .
drwxr-xr-x. 5 root root 4096 Oct 12 23:21 ..
-rw-r--r--. 1 nginx nginx 141640 Oct 13 12:12 localhost_load_1min_5.rrd
-rw-r--r--. 1 nginx nginx 47992 Oct 13 12:12 localhost_mem_buffers_3.rrd
-rw-r--r--. 1 nginx nginx 47992 Oct 13 12:12 localhost_mem_swap_4.rrd
-rw-r--r--. 1 nginx nginx 47992 Oct 13 12:12 localhost_proc_7.rrd
-rw-r--r--. 1 nginx nginx 47992 Oct 13 12:12 localhost_users_6.rrd
$ lll /var/lib/cacti/
total 20
drwxr-xr-x. 5 root root 4096 Oct 12 23:21 .
drwxr-xr-x. 38 root root 4096 Oct 12 23:21 ..
drwxr-xr-x. 2 root root 4096 Oct 12 23:21 cli
lrwxrwxrwx. 1 root root 24 Oct 12 23:21 include -> /usr/share/cacti/include
lrwxrwxrwx. 1 root root 20 Oct 12 23:21 lib -> /usr/share/cacti/lib
drwxr-xr-x. 2 cacti root 4096 Oct 13 00:32 rra
drwxr-xr-x. 2 root root 4096 Oct 12 23:21 scripts
これが私のaudit.log
の一部です(非常に反復的です)
[matt@srv ~]$ Sudo cat /var/log/audit/audit.log | grep denied
type=AVC msg=audit(1381785901.286:31729): avc: denied { getattr } for pid=22067 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381786201.333:31742): avc: denied { getattr } for pid=22087 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381786501.374:31749): avc: denied { getattr } for pid=22114 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381786801.418:31762): avc: denied { getattr } for pid=22134 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381787101.450:31769): avc: denied { getattr } for pid=22151 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381787401.493:31782): avc: denied { getattr } for pid=22171 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381787701.543:31789): avc: denied { getattr } for pid=22188 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
type=AVC msg=audit(1381788001.595:31800): avc: denied { getattr } for pid=22208 comm="postdrop" path="/var/spool/postfix/public/pickup" dev=dm-0 ino=2224026 scontext=system_u:system_r:postfix_postdrop_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:postfix_public_t:s0 tclass=sock_file
シンボリックリンクされたディレクトリの親のアクセス許可を修正する必要がありました
/var/lib/cacti/rra
/var/log/cacti
通知:
$ ll /usr/share/cacti/
total 868
...
lrwxrwxrwx. 1 nginx nginx 18 Oct 12 23:21 cli -> /var/lib/cacti/cli
...
lrwxrwxrwx. 1 nginx nginx 15 Oct 12 23:21 log -> /var/log/cacti/
...
lrwxrwxrwx. 1 nginx nginx 18 Oct 12 23:21 rra -> /var/lib/cacti/rra
...
lrwxrwxrwx. 1 nginx nginx 22 Oct 12 23:21 scripts -> /var/lib/cacti/scripts
修繕:
chown -R nginx:nginx /var/log/cacti/
chown -R nginx:nginx /var/lib/cacti/rra