質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Cacti

Cactiは、 Webベースのネットワーク監視及び RRDToolを使用してネットワークやサーバーの状態をグラフ化して表示する、 オープンソースソフトウェアです。

SNMP

SNMPとは【Simple Network Management Protocol)】 ネットワークに接続しているデバイス等の情報を 収集し、ネットワーク監視や制御の管理を行うためのプロトコルです。

RRDTool

RRDToolは、Round Robin Database toolの略。統計情報の管理ツールで、時系列のデータをデータベースに格納しグラフ化します。描画できるグラフの制限が少ないといったメリットがあり、四則演算の結果をグラフ化できるなど描画機能も充実しています。

Q&A

解決済

1回答

13475閲覧

cactiでグラフが表示されません。

kaji

総合スコア648

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Cacti

Cactiは、 Webベースのネットワーク監視及び RRDToolを使用してネットワークやサーバーの状態をグラフ化して表示する、 オープンソースソフトウェアです。

SNMP

SNMPとは【Simple Network Management Protocol)】 ネットワークに接続しているデバイス等の情報を 収集し、ネットワーク監視や制御の管理を行うためのプロトコルです。

RRDTool

RRDToolは、Round Robin Database toolの略。統計情報の管理ツールで、時系列のデータをデータベースに格納しグラフ化します。描画できるグラフの制限が少ないといったメリットがあり、四則演算の結果をグラフ化できるなど描画機能も充実しています。

0グッド

0クリップ

投稿2015/05/12 06:20

編集2015/05/12 06:27

ブラウザで表示した際のcactiグラフが表示されません。

cacti直下のrraディレクトリには以下ファイルは存在しました。
-rw-rw-rw-. 1 cacti apache 141640 5月 12 15:05 2015 localhost_load_1min_5.rrd
-rw-rw-rw-. 1 cacti apache 47992 5月 12 15:05 2015 localhost_mem_buffers_3.rrd
-rw-rw-rw-. 1 cacti apache 47992 5月 12 15:05 2015 localhost_mem_swap_4.rrd
-rw-rw-rw-. 1 cacti apache 47992 5月 12 15:05 2015 localhost_proc_7.rrd
-rw-rw-rw-. 1 cacti apache 47992 5月 12 15:05 2015 localhost_users_6.rrd

グラフ横のスパナアイコンで表示された以下コマンドを直接rootやcactiユーザで実行したところ、グラフは出ました。(/tmp/cacti.pngでグラフが問題なく表示された画像を確認してます)

/usr/local/rrdtool/src/rrdtool graph - --imgformat=PNG --start='1431278600' --end='1431365000' --title='Localhost - Memory Usage' --rigid --base='1000' --height='120' --width='500' --alt-autoscale-max --lower-limit='0' --vertical-label='kilobytes' --slope-mode --font TITLE:10: --font AXIS:7: --font LEGEND:8: --font UNIT:7: DEF:a='/var/www/cacti/rra/localhost_mem_buffers_3.rrd':'mem_buffers':AVERAGE DEF:b='/var/www/cacti/rra/localhost_mem_swap_4.rrd':'mem_swap':AVERAGE AREA:a#FF4105FF:'Free' GPRINT🅰️LAST:'Current:%8.2lf %s' GPRINT🅰️AVERAGE:'Average:%8.2lf %s' GPRINT🅰️MAX:'Maximum:%8.2lf %s\n' AREA:b#FFC73BFF:'Swap':STACK GPRINT🅱️LAST:'Current:%8.2lf %s' GPRINT🅱️AVERAGE:'Average:%8.2lf %s' GPRINT🅱️MAX:'Maximum:%8.2lf %s\n' > /tmp/cacti.png

結局実行ユーザによって出たり出なかったりするのではないかということで、
グラフを表示しているurlを調べると以下urlだったので
http://cacti.localhost/graph_image.php?local_graph_id=1&rra_id=0&graph_height=120&graph_width=500&title_font_size=10&view_type=tree&graph_start=1431331819&graph_end=1431397655graph_image.php?local_graph_id=1&rra_id=0&graph_height=120&graph_width=500&title_font_size=10&view_type=tree&graph_start=1431331819&graph_end=1431397655

graph_image.phpに
$processUser = posix_getpwuid(posix_geteuid());
print $processUser['name'];
を追加したユーザを調べたところ実行ユーザはapacheでした。

結局コマンドを実行している箇所が
-lib/rrd.php
98行目 $fp = popen(read_config_option("path_rrdtool") . escape_command(" $command_line"), $pipe_mode);

だったので、コマンドをechoしてみたところ、以下コマンドが出てきました。

/usr/local/rrdtool/src/rrdtool graph - --imgformat=PNG --start='1431278600' --end='1431365000' --title='Localhost - Memory Usage' --rigid --base='1000' --height='120' --width='500' --alt-autoscale-max --lower-limit='0' --vertical-label='kilobytes' --slope-mode --font TITLE:10: --font AXIS:7: --font LEGEND:8: --font UNIT:7: DEF:a='/var/www/cacti/rra/localhost_mem_buffers_3.rrd':'mem_buffers':AVERAGE DEF:b='/var/www/cacti/rra/localhost_mem_swap_4.rrd':'mem_swap':AVERAGE AREA:a#FF4105FF:'Free' GPRINT🅰️LAST:'Current:%8.2lf %s' GPRINT🅰️AVERAGE:'Average:%8.2lf %s' GPRINT🅰️MAX:'Maximum:%8.2lf %s\n' AREA:b#FFC73BFF:'Swap':STACK GPRINT🅱️LAST:'Current:%8.2lf %s' GPRINT🅱️AVERAGE:'Average:%8.2lf %s' GPRINT🅱️MAX:'Maximum:%8.2lf %s\n'

これを直で実行できる以下phpを作り表示したところ、
やはりcactiやrootだとバイナリが帰ってくるのに、
apacheを経由すると戻り値がない状態でした。

<?php $command = <<< EOD /usr/local/rrdtool/src/rrdtool graph - --imgformat=PNG --start='1431278600' --end='1431365000' --title='Localhost - Memory Usage' --rigid --base='1000' --height='120' --width='500' --alt-autoscale-max --lower-limit='0' COMMENT:"From 2015/05/11 02\:23\:20 To 2015/05/12 02\:23\:20\c" COMMENT:" \n" --vertical-label='kilobytes' --slope-mode --font TITLE:10: --font AXIS:7: --font LEGEND:8: --font UNIT:7: DEF:a='/var/www/cacti/rra/localhost_mem_buffers_3.rrd':'mem_buffers':AVERAGE DEF:b='/var/www/cacti/rra/localhost_mem_swap_4.rrd':'mem_swap':AVERAGE AREA:a#FF4105FF:'Free' GPRINT:a:LAST:'Current\:%8.2lf %s' GPRINT:a:AVERAGE:'Average\:%8.2lf %s' GPRINT:a:MAX:'Maximum\:%8.2lf %s\n' AREA:b#FFC73BFF:'Swap':STACK GPRINT:b:LAST:'Current\:%8.2lf %s' GPRINT:b:AVERAGE:'Average\:%8.2lf %s' GPRINT:b:MAX:'Maximum\:%8.2lf %s\n' EOD; exec($command, $output, $return_var); print nl2br(print_r($output, 1));exit; /usr/local/rrdtool/src/rrdtoolの権限の問題かなとも思ったので apacheなどに変更してみたのですが、変化なしでした。 pollerはcactiユーザが実行してます $ sudo su cacti $ crontab -e */5 * * * * /usr/bin/php /var/www/cacti/poller.php > /dev/null 2>&1 調査にすでに丸々1日を費やしてしまい、 検索してもrraディレクトリにファイルが存在する時点で 解決してるページしか見つからないので、 知ってる方教えて欲しいです。 バージョンなど rrdtool-1.5.3 cacti-0.8.8c

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Apache のエラーログ(/var/log/httpd/error_log など)には何か記録されていませんでしょうか。
パーミッションとか、SELinux とか。

投稿2015/05/12 06:52

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaji

2015/05/12 07:16

apache側には何も記載がありませんでした。 tail -f /etc/httpd/logs/cacti-error_log ちなみにcactiのサブドメでバーチャルホストを切ってます。 ErrorLog logs/cacti-error_log CustomLog logs/cacti-access_log combined env=!no_log selinuxを一旦無効にして確認しましたが、グラフは出ませんでした。 # sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted # setenforce 0 # sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: enforcing Policy version: 24 Policy from config file: targeted パーミッションはこんな感じです。 drwxrwxrwx. 2 cacti apache 4096 5月 12 15:09 2015 rra drwxrwxrwx. 2 cacti apache 4096 11月 12 10:34 2014 log -rwxr-xr-x. 1 root root 7901 5月 12 14:15 2015 /usr/local/rrdtool/src/rrdtool
kaji

2015/05/12 07:53

selinuxをもう一度オフにして apache再起動でグラフが表示されました。 回答頂いたおかげで解決しました。 selinuxをoffにしたままcactiを運用して良いかわかりませんが、 ありがとうございました。
退会済みユーザー

退会済みユーザー

2015/09/08 02:00 編集

SELinuxなんて、特別な場合を除き、即効オフで問題ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問