fedora 16に基づくnagios環境構築--個人日記(10)--cactiとnagios統合
参考記事:http://foreveryan.blog.51cto.com/3508502/727866
http://freeze.blog.51cto.com/1846439/386828
私のcactiはすでにインストールされているので、データベース名はcactidbです.
ndoutilsもインストールされており、データベースはndodbです.
統合
1:cacti-plugin-0.8.7 h-PA-v 3を取り付ける.0.tar.gzは私がインストールしたcactiが0.8.8なので、
このバージョンのパッチがないので、バージョンを下げると思っていたが、試してみたらcacti 0を使う.8.8パッチなしで統合も可能.
しかし、cactiプラグインの拡張を実現するには
vim include/config.php
Webからcactiに入り、cacti plugin拡張を有効にします.
cactiをインストールした時configにいたのでcfgとglobal.cfgファイルは拡張子が入っているので修正する必要はありません
2:nagios plugin for cacti (npc)
今公式サイトのnpcはすでになくて、直接51.ctoサイトには次のものがあります.
http://down.51cto.com/data/327336
tar zxvf npc-2.0.4.tar.gz mv npc /usr/local/apache/htdocs/cacti/plugins/
vim /usr/local/apache/htdocs/cacti/include/config.php#加入: $plugins[] = 'npc';
3:npcのインストールサポート:json
npcがjsonのダイナミックリンクライブラリのサポートを受けるには、慎重にしてください.
phpをインストールするときや、他のプラグインをインストールするときにjsonのサポートが必要になる可能性があります.jsonをインストールしたかもしれません.私の今のバージョンのphpの中で、jsonはすでにyum install php-commonをインストールする時すでにインストールして、あなたはインストールする前に先にjsonがあるかどうかを見ることができます
私のは/usr/lib/php/modules/ディレクトリの下にあります.あればインストールする必要はありません.私のphpが/usr/local/php/binに置かれていることを宣言する必要があります.
yumインストールphpの場合/usr/bin/php
php-mを実行してモジュールをロードしたときに選択します
/usr/local/php/bin/php-mまたはphp-m
jsonを再インストールして以上のコマンドを実行すると、問題が発生する可能性があります.
PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' -/usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0
これはあなたがjsonを書き直したので間違いました.
私はこのように解決しました.先yum remove php-common
削除したパッケージを再インストールします
これでいいです.
4. phpを開きます.iniファイルjsonのサポートの追加
このステップは私のphpディレクトリが違うので、/usr/local/php/lib/phpにあるはずです.ini
しかし、私はこの支持を加えていません.いいです.なぜか分かりません.
php-mまたは/usr/local/php/bin/php##jsonがロードされているかどうかを確認
5 .npcが新しいデータを読み込むようにプロファイルを変更します.
ここで私が言いたいのは、もともと私のndoutilsがインストールしていたデータベースはndodbで、テーブルはnagios_です.開始すると、cactiのデータベースはcactidbです.ndoutilsを再インストールし、統合データベースをcactidbにすると思っていました.npcプラグインをインストールすると、cactidbにnpc_が自動的に生成されるので、使わないことに気づきました.先頭のndoutilsに適したテーブル.具体的にはcactiをインストールするときにあるのかnpcをインストールするときにあるのか、私も分かりません.つまりndo 2 dbを修正すればcfg中db_prefix=npcでいいので、もちろんデータベースパスワードなどをcaciのデータベースcactidbに変更します
WebからCactiに入り、npcオプションが正しく使用されていることを確認します.
6.2 mysqlのテーブル構造を変更するには、次の手順に従います.
7.ndo 2 dbプロセスを再起動し、プロファイルを再ロードしてnagiosサービスを再起動します.
8.正常な読み取り動作のために、Web上にNPCを配置する.
そしてまた
Settings->npcでRemote Commandsをチェック
Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd
Nagios URL=あなたのアドレス(http://localhost/nagios/)
configureバーのsettingの下にplugin Managementオプションがあります.見つけたら、クリックするとnpcが見つかります.
次にinstallとenableを作成します
次はnagiosとndo 2 dbを再起動して
次にnpcをリフレッシュするとデータが表示されます.次の図です.
これでいいです.
いくつかの注意点があります.
1:cactiは絵を描かない場合がありますが、snmpを再起動できます.
2:npcのインストールでエラーが発生する可能性があります.
npcは少しもデータがなく、nagiosのものは表示されません.
私がこれ以上成功しなかったとき、間違いがあった.
apacheのerror_ログには
PHP Fatal error: Uncaught exception 'Doctrine_Connection_Exception' with message 'Couldn't locate driver named mysql'
in/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php:483Stack trace:#0
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection/Mysql.php(101): Doctrine_Connection->connect()#1
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php(1009): Doctrine_Connection_Mysql->connect()#2
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php(808): Doctrine_Connection->execute('SELECT COUNT(*)...', Array)#3
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Query.php(1894): Doctrine_Connection->fetchAll('SELECT COUNT(*)...', Array)#4
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Pager.php(108): Doctrine_Query->count(Array)#5
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Pager.php(570): Doctrine_Pager->_initialize(Array)#6
/usr/local/apache/htdocs/cacti/plugins/npc/controllers/services.php(260): Doctrine_Pager->execute(Array, 3) in
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php on line 483, referer:
http://localhost/cacti/plugins/npc/npc.php?module=layout&action=drawLayout
これはphpインストール時にオプション--with-pdo-mysqlがないためです
phpinfo()の表示には、pdoとpdo-mysqlという内容があります.
pdoにはmysqlが必要です
でも必ずphp-mysqlとphp-doをインストールしてください
3:nagiosでoffを表示することがあります
これはndo 2 dbとnagiosを起動しなければなりませんが、まだだめなら2つ再起動してみます.
もしまだ間違いがあれば、具体的な問題を具体的に分析しなければなりません.
4:ndo 2 dbがデータcactidbに挿入される場合、テーブルnpc_Servicechecksのようなテーブルが挿入されず、エラーが発生しました
Error: mysql_query() failed for 'INSERT INTO npc_servicechecks SET instance_id='1', service_object_id='18', check_type='0', current_check_attempt='1'
Apr 30 16:08:04 localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list
君がいないから
alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
あるいはnpcを再設定するとこの問題が発生します.
データベースの変更を忘れないでください
http://freeze.blog.51cto.com/1846439/386828
私のcactiはすでにインストールされているので、データベース名はcactidbです.
ndoutilsもインストールされており、データベースはndodbです.
統合
1:cacti-plugin-0.8.7 h-PA-v 3を取り付ける.0.tar.gzは私がインストールしたcactiが0.8.8なので、
このバージョンのパッチがないので、バージョンを下げると思っていたが、試してみたらcacti 0を使う.8.8パッチなしで統合も可能.
しかし、cactiプラグインの拡張を実現するには
vim include/config.php
- # ( )
- $url_path = "/cacti/";
Webからcactiに入り、cacti plugin拡張を有効にします.
cactiをインストールした時configにいたのでcfgとglobal.cfgファイルは拡張子が入っているので修正する必要はありません
2:nagios plugin for cacti (npc)
今公式サイトのnpcはすでになくて、直接51.ctoサイトには次のものがあります.
http://down.51cto.com/data/327336
tar zxvf npc-2.0.4.tar.gz
vim /usr/local/apache/htdocs/cacti/include/config.php
3:npcのインストールサポート:json
npcがjsonのダイナミックリンクライブラリのサポートを受けるには、慎重にしてください.
phpをインストールするときや、他のプラグインをインストールするときにjsonのサポートが必要になる可能性があります.jsonをインストールしたかもしれません.私の今のバージョンのphpの中で、jsonはすでにyum install php-commonをインストールする時すでにインストールして、あなたはインストールする前に先にjsonがあるかどうかを見ることができます
私のは/usr/lib/php/modules/ディレクトリの下にあります.あればインストールする必要はありません.私のphpが/usr/local/php/binに置かれていることを宣言する必要があります.
yumインストールphpの場合/usr/bin/php
php-mを実行してモジュールをロードしたときに選択します
/usr/local/php/bin/php-mまたはphp-m
jsonを再インストールして以上のコマンドを実行すると、問題が発生する可能性があります.
PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/json.so' -/usr/lib64/php/modules/json.so: undefined symbol: ZVAL_DELREF in Unknown on line 0
これはあなたがjsonを書き直したので間違いました.
私はこのように解決しました.先yum remove php-common
削除したパッケージを再インストールします
これでいいです.
4. phpを開きます.iniファイルjsonのサポートの追加
- vim /etc/php.ini
- #
- extension=json.so
このステップは私のphpディレクトリが違うので、/usr/local/php/lib/phpにあるはずです.ini
しかし、私はこの支持を加えていません.いいです.なぜか分かりません.
php-mまたは/usr/local/php/bin/php##jsonがロードされているかどうかを確認
5 .npcが新しいデータを読み込むようにプロファイルを変更します.
- vim /var/www/html/nagios/etc/ndo2db.cfg
- db_prefix=npc_
ここで私が言いたいのは、もともと私のndoutilsがインストールしていたデータベースはndodbで、テーブルはnagios_です.開始すると、cactiのデータベースはcactidbです.ndoutilsを再インストールし、統合データベースをcactidbにすると思っていました.npcプラグインをインストールすると、cactidbにnpc_が自動的に生成されるので、使わないことに気づきました.先頭のndoutilsに適したテーブル.具体的にはcactiをインストールするときにあるのかnpcをインストールするときにあるのか、私も分かりません.つまりndo 2 dbを修正すればcfg中db_prefix=npcでいいので、もちろんデータベースパスワードなどをcaciのデータベースcactidbに変更します
WebからCactiに入り、npcオプションが正しく使用されていることを確認します.
6.2 mysqlのテーブル構造を変更するには、次の手順に従います.
- ./mysql -ucactier -p 111111
- mysql> use cactidb;
- mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
- mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;
7.ndo 2 dbプロセスを再起動し、プロファイルを再ロードしてnagiosサービスを再起動します.
- service nagios restart
- ndo2db
- ps aux |grep ndo2db
- kill ndo2db
- /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
- ndo2db
8.正常な読み取り動作のために、Web上にNPCを配置する.
そしてまた
Settings->npcでRemote Commandsをチェック
Nagios Command File Path=/usr/local/nagios/var/rw/nagios.cmd
Nagios URL=あなたのアドレス(http://localhost/nagios/)
configureバーのsettingの下にplugin Managementオプションがあります.見つけたら、クリックするとnpcが見つかります.
次にinstallとenableを作成します
次はnagiosとndo 2 dbを再起動して
次にnpcをリフレッシュするとデータが表示されます.次の図です.
これでいいです.
いくつかの注意点があります.
1:cactiは絵を描かない場合がありますが、snmpを再起動できます.
2:npcのインストールでエラーが発生する可能性があります.
npcは少しもデータがなく、nagiosのものは表示されません.
私がこれ以上成功しなかったとき、間違いがあった.
apacheのerror_ログには
PHP Fatal error: Uncaught exception 'Doctrine_Connection_Exception' with message 'Couldn't locate driver named mysql'
in/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php:483Stack trace:#0
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection/Mysql.php(101): Doctrine_Connection->connect()#1
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php(1009): Doctrine_Connection_Mysql->connect()#2
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php(808): Doctrine_Connection->execute('SELECT COUNT(*)...', Array)#3
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Query.php(1894): Doctrine_Connection->fetchAll('SELECT COUNT(*)...', Array)#4
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Pager.php(108): Doctrine_Query->count(Array)#5
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Pager.php(570): Doctrine_Pager->_initialize(Array)#6
/usr/local/apache/htdocs/cacti/plugins/npc/controllers/services.php(260): Doctrine_Pager->execute(Array, 3) in
/usr/local/apache/htdocs/cacti/plugins/npc/lib/Doctrine/Connection.php on line 483, referer:
http://localhost/cacti/plugins/npc/npc.php?module=layout&action=drawLayout
これはphpインストール時にオプション--with-pdo-mysqlがないためです
phpinfo()の表示には、pdoとpdo-mysqlという内容があります.
pdoにはmysqlが必要です
でも必ずphp-mysqlとphp-doをインストールしてください
3:nagiosでoffを表示することがあります
これはndo 2 dbとnagiosを起動しなければなりませんが、まだだめなら2つ再起動してみます.
もしまだ間違いがあれば、具体的な問題を具体的に分析しなければなりません.
4:ndo 2 dbがデータcactidbに挿入される場合、テーブルnpc_Servicechecksのようなテーブルが挿入されず、エラーが発生しました
Error: mysql_query() failed for 'INSERT INTO npc_servicechecks SET instance_id='1', service_object_id='18', check_type='0', current_check_attempt='1'
Apr 30 16:08:04 localhost ndo2db-3x: mysql_error: 'Unknown column 'long_output' in 'field list
君がいないから
alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
あるいはnpcを再設定するとこの問題が発生します.
データベースの変更を忘れないでください