[OpenBlockS Users page]
[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[obu:01744] NetSaint


こんにちは。

最近、ハードディスクやファンが無くて故障が少ない OpenBlockS (not SS)
に、別のサーバの稼働状態を監視させようと、NetSaint 0.0.7 を導入しま
した。

セルフ開発環境(hdrootアーカイブファイル1.03h試用版)でコンパイルし、
異常が発生したらメールで通知するようにするところまでは簡単でした。

これだけでも私の要件は満たしていたのですが、一応Webインタフェースも
使えるようにしようとしたところ、はまりました…。

■問題1 Apache で Internal Server Error が発生する。

status.cgi など、多くのCGIプログラムが Internal Server Error になり
ました。

調べたところ、以下の問題があることが分かりました。

(1) gcc に最適化オプションを付けてコンパイルすると動かない。
    -O2 も -O も付けずにコンパイルする必要がある。

(2) 一部の関数で正しく引数が渡されない。
    関数を呼び出す前と関数の中の最初に printf() を追加し、引数で渡
    される変数の値を表示させてみたところ、変化しないはずの値が変化
    してしまう。

■問題2 一部の情報が正しく表示されない。

Service Information などの一部の情報が正しく表示されませんでした。

調べたところ、問題1の(2)と同じ原因でした。

(3) 一部の関数で正しく引数が渡されない。
    情報として表示する文字列を指すべきポインタの値が変化してしまい、
    文字列以外を指してしまい、文字化けのようになる。

■解決策

根本的な解決ではありませんが、以下のようにして一応Webインタフェース
も使えるようになりました。

(1) -O2 も -O も付けないように以下のように configure を実行。

    $ CFLAGS='' ./configure --disable-statusmap --disable-trends

(2) 変数 stalk_up, stalk_down, stalk_unreachable, track_perfdata
    を使っている行を common/object.c, xdata/xoddefault.c から削除。

(3) common/statusdata.c, common/statusdata.h, xdata/xsddefault.c,
    xdata/xsddb.c の add_service_status() の末尾の引数を先頭に移動。

(1)などは過去にも報告があり、あまり珍しくないと思いますが、(2),(3)
も含めて別のソフトウェアをコンパイルするときにも参考になれば幸いで
す。

---
TANAKA Kei <peg00625@xxxxxxxxx>

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: