harry’s memorandum

おれおれメモ

nagiosインストール備忘録 - 3

NDOutils

NDOutilsはnagiosの履歴をデータベースに保存します。

NDoutilsの構成

データベースを別にすることもできますけど、ここでは面倒なのでnagiosサーバと同一のサーバで構成します。
f:id:dharry:20080919024442p:image

NDoutilsのコンパイル

まず、必要なアプリケーションをインストール。MySQLを使用します。

 $ sudo yum install mysql-devel mysql-server mysql-client

mysqlは起動しておきます。

 $ sudo chkconfig --level 345 mysqld on
 $ sudo /etc/init.d/mysqld start

mysqlを指定してconfigure; make

 $ ./configure  --with-mysql-lib=/usr/lib/mysql --prefix=/home/nagios
 $ make

コンパイルしたNDoutilsのモジュールをコピー

 $ cp -p src/ndomod-3x.o /home/nagios/bin/ndomod.o
 $ cp -p config/ndomod.cfg /home/nagios/etc/
 $ cp -p src/ndo2db-3x /home/nagios/bin/ndo2db
 $ cp -p config/ndo2db.cfg /home/nagios/etc/
 $ sudo chown nagios.nagios /home/nagios/bin/ndomod.o /home/nagios/etc/ndomod.cfg /home/nagios/bin/ndo2db /home/nagios/etc/ndo2db.cfg

データベースを作成

データベース名は ndoutils、ユーザは nagios、パスワードはとりあえずなし。
./installdbでfailedが出るが、table作る前にsqlを実行している箇所がエラーになっているだけなので特に問題ない。

 $ mysql -uroot
 mysql> create database ndoutils;
 mysql>  GRANT ALL PRIVILEGES ON ndoutils.* TO nagios@localhost IDENTIFIED BY '' WITH GRANT OPTION;
 mysql> FLUSH PRIVILEGES;
 $ cd db/
 $ ./installdb  -u nagios -p "" -h localhost -d ndoutils
 DBD::mysql::db do failed: Table 'ndoutils.nagios_dbversion' doesn't exist at ./installdb line 51.
 ** Creating tables for version 1.4b7
      Using mysql.sql for installation...
 ** Updating table nagios_dbversion
 Done!

NDoutilsの定義ファイルを変更

データベースを更新するndo2dbデーモンに接続するブローカーモジュール(ndomod.o)の設定をします。

 $ vim /home/nagios/etc/ndomod.cfg
 output_type=tcpsocket
 #output_type=unixsocket
 output=127.0.0.1
 #output=/usr/local/nagios/var/ndo.dat

nagios.cfgにブローカーモジュールの場所を。

 $ vim /home/nagios/etc/nagios.cfg
 broker_module=/home/nagios/bin/ndomod.o config_file=/home/nagios/etc/ndomod.cfg

ndo2dbデーモンの設定をします。

 $ vim /home/nagios/etc/ndo2db.cfg
 db_name=ndoutils
 db_user=nagios
 db_pass=

init-scriptを設定します。ndouitlsのソースの中に、suse用のinit-scriptがあるので、パスなどを修正して/etc/init.dに配置します。
ndoutilsという名前で/etc/init.dにコピーしてください。

#!/bin/sh
# Startup script for NDO2DB
# Activate with: insserv /etc/init.d/ndo2db
# Use: /etc/init.d/ndo2db stop | start
# Contributed by Bruno Quintais

start() {
  su - nagios -c "/home/nagios/bin/ndo2db -c /home/nagios/etc/ndo2db.cfg"
}

stop() {
  su - nagios -c "killall -9 ndo2db"
}

case $1 in
  start) start ;;
  stop) stop ;;
  restart) stop; start ;;
  *) exit 1;;
esac

exit 0

ログを確認。dbも中身をみて確認。

 $ cat /home/nagios/var/nagios.log
 707 [1221771348] Event broker module '/home/nagios/bin/ndomod.o' deinitialized successfully.
 708 [1221771348] Nagios 3.0.3 starting... (PID=25755)
 709 [1221771348] Local time is Fri Sep 19 05:55:48 JST 2008
 710 [1221771348] LOG VERSION: 2.0
 711 [1221771348] ndomod: NDOMOD 1.4b7 (10-31-2007) Copyright (c) 2005-2007 Ethan Galstad (nagios@nagios.    org)
 712 [1221771348] ndomod: Successfully connected to data sink.  0 queued items to flush.
 713 [1221771348] Event broker module '/home/nagios/bin/ndomod.o' initialized successfully.
 $ mysql -unagios
 mysql> use ndoutils;
 mysql> select host_id from nagios_hosts;
 +---------+
 | host_id |
 +---------+
 |      43 |
 |      44 |
 |      45 |
 |      46 |
 |      47 |
 |      48 |
 |      49 |
 +---------+