Gangliaのヘッダが表示されない

Ganglia でシステムを監視する

Ganglia を利用している際に Webアプリケーションの画面が崩れてしまうという問題に遭遇しました。その際の解決手段に関して書きます。

はじめに

先日 Gangliaでシステムモニタリング という記事を書いた Ganglia ですが、メトリックをチェックする Webアプリケーションの表示がおかしくなるという事象に遭遇しました。

本来メニュー等が表示されるはずですが、'1' とだけ表示されています。

「メトリックは見れるし、まあいいか...」

と、暫く放置していたのですが、解決したのでその方法を書いておきます。

環境

環境は以下になります。 前回記事 と同様です。

OS CentOS 6.7
Ganglia (gmond, gmetad) 3.7.2-2
ganglia-web 3.7.1-2

解決方法

ダメだった方法

解決に至るまでに幾つかの方法を試しました。先ずはダメだった方法

  • header.php (ヘッダ表示用PHP)、あるいは、index.php に問題があると思い、ソースを編集してみた。

    上述の記事に従い yum でインストールした場合 ganglia-web のファイル群は /usr/share/ganglia ディレクトリ以下に置かれています。
    ここにある header.php, index.php 等を編集して動作確認を行いました。

    しかしNG。

    最新の ganglia-web のパッケージを sourceforge を取得して diff を取ってみましたが、違いは見つかりませんでした。

  • ganglia-web の再インストール

    ganglia-web は殆ど設定を行わずに利用している ( apache の設定をちょっと弄っている程度 ) ため、一旦アンインストールしてから、再インストールしてみました。

    しかしNG。

うまくいった方法

原因

ganglia-web では dwoo というテンプレートエンジンを利用しているようで、

※dwoo はsmarty ( こっちは聞いた事あった ) 後継のテンプレートエンジンらしい。

  • ganglia-web のテンプレートは /usr/share/ganglia/templates ディレクトリ下に置かれている。
    テンプレートファイルの拡張子は ".tpl"
  • dwoo は 上記テンプレートファイルをコンパイルする。
    このコンパイルしたファイルは /var/lib/ganglia/dwoo/compiled ディレクトリ下に置かれる。拡張子は ".php"

デフォルトのテンプレートをコンパイルしたphpファイルは /var/lib/ganglia/dwoo/compiled/templates/default ディレクトリ下に置かれるのですが、このファイルの状態が以下のようになってました ( ls -la した結果 )。

drwxrwxrwx. 2 apache apache  4096 12月 25 18:07 2015 .
drwxrwxrwx. 3 apache apache  4096  6月 25 13:25 2015 ..
-rwxrwxrwx. 1 apache apache   214  6月 25 13:25 2015 cluster_extra.tpl.d17.php
-rwxrwxrwx. 1 apache apache  1237  6月 25 13:25 2015 cluster_host_metric_graphs.tpl.d17.php
-rwxrwxrwx. 1 apache apache   858  6月 25 13:25 2015 cluster_overview.tpl.d17.php
-rwxrwxrwx. 1 apache apache 12772 12月 25 18:07 2015 cluster_view.tpl.d17.php
-rwxrwxrwx. 1 apache apache  4690  6月 25 13:25 2015 footer.tpl.d17.php
-rwxrwxrwx. 1 apache apache     0 12月 25 17:51 2015 header.tpl.d17.php
-rwxrwxrwx. 1 apache apache   235 12月 25 18:07 2015 host_extra.tpl.d17.php
-rwxrwxrwx. 1 apache apache  1842 12月 25 18:07 2015 host_overview.tpl.d17.php
-rwxrwxrwx. 1 apache apache 12203 12月 25 18:07 2015 host_view.tpl.d17.php
-rwxrwxrwx. 1 apache apache  7068  7月  3 11:28 2015 meta_view.tpl.d17.php
-rwxrwxrwx. 1 apache apache  4464 12月 25 18:07 2015 metric_group_view.tpl.d17.php

header.tpl.d17.php のファイルサイズが 0 になっています。コンパイル時に何らかの不具合が発生したものと思われます。

解決方法

問題のあるファイルを削除し、ganglia-web を再表示してあげれば、コンパイルされたphpファイルが再作成されます。
これで問題は解決しました。

まとめ

原因が判明したため、今後同様の問題が発生した場合にも対応可能と思われます
( アップデートされた場合等にも、コンパイルされたファイルは一度削除した方がいいかも )