Nagiosとは、企業で安心して使用できる(注1)オープンソースの監視システムだ。
以前インストールした3.1.0の日本語パッチの一部に不備があることがわかった。
今回はその修正方法を紹介する。
サービスステータス情報画面の左上に他の画面へのリンク一覧がある。
その一番下のリンクの日本語表記が「このホストの通知履歴」となっているが、これは「このサービスの通知履歴」の間違いだ。
今回は日本語パッチを修正するのではなく、パッチを当てた後のNagiosのソースを修正する。
サーバOSは、CentOS 5.3 である。
※注1:NRIオープンソースマップ(2007年4月版)




 

不具合箇所

図1のサービスステータス情報画面の左上の赤枠部分が不具合箇所だ。
この箇所を「このサービスの通知履歴」に修正する。
図1:サービスステータス情報画面の不具合箇所
図1:サービスステータス情報画面の不具合箇所

 
この画面を出力しているのは以下のCGIなので、このCGIを修正する。
http://URL/nagios/cgi-bin/extinfo.cgi
 

CGIの修正

NagiosのソースはC言語で書かれている。
extinfo.cgiのソースは、以下にある。
 
/usr/local/src/nagios-3.1.0/cgi/extinfo.c
 
この299行目を下記の赤字部分のように修正すればいい。
また、NagiosのCGIは以下のように個別にmakeすることもできる。
make installでもCGIはインストールされるが、その場合は/usr/local/src/nagios-3.1.0/cgiにある全てのCGIが再インストールされるので、以下では個別に修正したCGIだけコピーしている。
 

# cd /usr/local/src/nagios-3.1.0/cgi
# vi extinfo.c

<省略>
    285                         else if(display_type==DISPLAY_SERVICE_INFO){
    286                                 printf("<A HREF='%s?host=%s&",HISTORY_CGI,url_encode(host_name));
    287                                 printf("service=%s'>このサービスの警報履歴</A><BR>\n",url_encode(service_desc));
    288 #ifdef USE_TRENDS
    289                                 printf("<A HREF='%s?host=%s&",TRENDS_CGI,url_encode(host_name));
    290                                 printf("service=%s'>このサービスの傾向</A><BR>\n",url_encode(service_desc));
    291 #endif
    292 #ifdef USE_HISTOGRAM
    293                                 printf("<A HREF='%s?host=%s&",HISTOGRAM_CGI,url_encode(host_name));
    294                                 printf("service=%s'>このサービスの警報ヒストグラム</A><BR>\n",url_encode(service_desc));
    295 #endif
    296                                 printf("<A HREF='%s?host=%s&",AVAIL_CGI,url_encode(host_name));
    297                                 printf("service=%s&show_log_entries'>このサービスの稼動レポートを見る</A><BR>\n",url_encode(service_desc));
    298                                 printf("<A HREF='%s?host=%s&",NOTIFICATIONS_CGI,url_encode(host_name));
    299                                 printf("service=%s'>このサービスの通知履歴</A>\n",url_encode(service_desc));
    300                                 }
<省略>

# make
# cp extinfo.cgi /usr/local/nagios/sbin/

 

修正の確認

きちんと修正された場合は、以下のようになる。(図2の左上の赤枠部分)
 
図2:修正後のサービスステータス情報画面
図2:修正後のサービスステータス情報画面

 
 
 

 


Categories: Nagios


Leave a Reply