|
|
1.ndoutils安装准备 & ?# n9 w( E4 ?& z
ndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到mysql数据库中。这个工具的安装是个关键。
! @" B, @7 F( D, e2 Z1 ]" j, Y3 U(1)nagios环境的准备,以上环境应该是可用的
0 X3 `6 ?: `9 V N(2)mysql数据库环境 7 T0 s1 @$ z& v6 Z, r E* |
下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行: ) q# L& G" K' G/ B7 u! B- R
" ~8 C& { P, Q: m# cd db # ./installdb -u nagios -p nagios -h localhost -d nagios 其中各选项的意义如下:
' k$ l2 x0 k6 Z. |
! g3 U: H3 J9 d6 ]9 a Z-u用来指定导入时所用的mysql用户帐号
% g/ i2 C: H ?9 A
/ d' |! W9 }5 F- n-p表示前面mysql用户的密码 8 h {2 n5 ?5 m- c
3 C% S3 q8 l t$ ?3 l
-h表示mysql服务器地址,如果是localhost,则可以省略 $ u5 W. Z- ]+ j( m ?: {
3 B: ~) ~9 i6 B1 _8 b
-d表示目标数据库
$ l& M& [1 h* ~- Y6 ]1 _, h0 N1 ^0 V, y3 z- p% K4 X9 K
说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。 . g5 \" i ^1 C( s, |
- [- T0 x6 u4 X(3)相关软件包的安装确认
$ P n; H! ^8 w1 L, X( s. Kperl-DBD-MySQL ! E/ ?5 \" `+ H0 U
mysql 6 Y* a3 z5 D- p7 D8 \8 }
mysql-devel ) E) x9 h2 M j1 X
php-json-ext-1.2.0.tar.bz2 ' h W" C5 Z- S: _, D2 V* B; S
cd /usr/src ; m* P! q! K! k2 b
wget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz % V) J( x6 N4 z$ Y. j+ M
wget http://www.cpan.org/modules/by-module/DBI/DBI-1.624.tar.gz
! j5 g( ]* k% V9 Uwget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.024.tar.gz 5 K3 V% [5 D# \; L" |
2. php-json的安装 " e( d) C) s2 Z$ r) i
# tar zxvf php-json-ext-1.2.0.tar.bz2
* j3 W( `) B9 R# cd php-json-ext-1.2.0 7 p5 P% j( M& c5 ?- m! s+ |2 q
# /usr/bin/phpize
/ O9 m; R X. N" S) ?9 l# ./configure --with-php-config=/usr/bin/php-config
0 E/ ]* e B8 G& N4 V' l/ _% v, b m# make ; m1 G1 g( h% e' i/ G- K- I5 d. k
# make install , O7 e9 H! n. l/ v
# 说明:json库的位置
, @) O$ a5 D R" i; C( F, u. UInstalling shared extensions: /usr/lib/php/modules/ " K' i4 u& f6 H* W
# 把PHP扩展加入配置文件
' p1 M. h% Q a5 Y# vi /etc/php.d/json.ini
0 G" B% F' d% i# [7 }2 Yextension=json.so 1 U7 K0 r$ P9 s+ n, Q
3. ndoutils的安装 , d: I0 m: L. q- J: `
# cd /usr/src/ 5 f- S5 @9 |. T/ d* x
下载ndoutils-1.4b9.tar.gz . q/ Y0 h' v V7 k7 N: R' J
# wget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz
( s/ A% ?5 E/ g' V& s* A& a' u# tar zxvf ndoutils-1.4b7.tar.gz . D& T' q5 K. q" I! Y7 i- |6 A) Y
# cd ndoutils-1.4b7
. e1 F' Z# n7 L% {& S' v( j2 S#./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios LDFLAGS=-L/usr/lib64/mysql & b9 F; Q, U8 F" ]6 n# C
# make
0 A2 A4 J- g& r: e% \, o9 _* _3 d X4 R1 m' X5 r
# cd src/ 9 u) |( p) a3 s! N- }5 ]
# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin/ ! w4 l" N. T4 ?
# cd ../config ( i6 U+ f2 t0 [! R! ]( s
# cp ndomod.cfg-sample ndo2db.cfg-sample /usr/local/nagios/etc/ ; B# z3 l5 `% ?1 I
# cd /usr/local/nagios/etc/
4 T2 ?+ X8 {3 ?& r" E0 l; X$ ]# mv ndomod.cfg-sample ndomod.cfg
4 M* l$ M4 E. C( f8 ]7 T4 }# mv ndo2db.cfg-sample ndo2db.cfg
3 k$ L& Z( c" T5 [& N+ z6 S- h( m1 `4 P% j1 J( `' @: _
$ G, C8 A, q! N+ e$ x8 |+ y7 r
4. 修改配置文件
+ o6 _! [+ [2 R5 C7 C1 G1 K Q# vi /usr/local/nagios/etc/ndo2db.cfg # D6 @. s& e/ s
db_name=nagios % j& Z+ z1 A! r8 k- j E: G; E
db_host=192.168.1.80 (远程数据库地址)
. I) o$ T# @7 F% U! z/ Gdb_user=nagios # G; d7 X5 J6 }- ^& Z4 z y; S5 Q$ Y" i
db_pass=nagios
6 O; t1 L5 g7 u! f5 P3 vdebug_level=1 9 K: o4 s& g/ u( Y
这里是用Cacti在mysql中使用的用户和密码以及数据库,远程数据库的话应正确指定数据库IP,以及用户名帐号权限。
& i. g- d) E; q' X. w% T& g# vi /etc/nagios/ndomod.cfg # 可以随便指定一个位置 6 t7 {$ W' F- N' K: Q( y/ O: H
output=/usr/local/nagios/var/ndo.sock
6 s$ X6 c7 o/ B( ibuffer_file=/usr/local/nagios/var/ndomod.tmp % ?( p4 Y' z8 ^4 l# G% t% ^& p
# vi /usr/local/nagios/etc/nagios.cfg G% p& l4 i. `8 X, u0 \4 }
# 以下三条检查一下,默认就是以下内容
7 s6 r5 _0 I4 s* A- Z M$ Lcheck_external_commands = 1
; s$ x* B' E# N9 pcommand_check_interval = -1
! t8 U' Y! O. N- p2 Levent_broker_options = -1 4 W5 _% M, L* Y7 K
process_performance_data=1 2 D0 ?8 @! y# ?0 X$ Q
# 注意是一行内容 8 H7 i; @3 }( g0 N
broker_module = /usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg 8 h5 i( m2 C1 b
5. 启动ndoutils,也是最麻烦的一点
! _/ I2 a; g8 E) b% F& S(1) ndoutils的先启动
8 `% G7 h' p' z- w' x4 {; g( H#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg 6 x- H8 P4 s. u$ M
测试如果出现以下提示,应删除对应sock文件再次启动OK
+ D. k( ]6 x6 q& i7 nCould not bind socket: Address already in use
, r8 b1 w* B) ?! B' l, g+ X(2) nagios重启 4 y5 N- r5 ^( G7 \
# service nagios restart % y4 G: s4 p* N
说明: 其中的启动日志都记录在/var/log/messages中,可以直接查看有无错误。 3 Y6 J. [5 w2 o) U8 e8 x
: n* `( T7 \+ @. l5 g. \5 |故障排除: 3 g8 P/ d7 ~$ o6 L2 \; c8 V
如果/var/log/message里出现 T" g! F' Y0 A n" i; W' l; X
ndoutils not connect 则 chown -R nagios.nagios /usr/local/nagios/ & z3 b( F" q& a5 f
若出现:
3 b- P( G4 Y n& Q! hStill unable to reconnect to data sink 则 rm -f ndo2db.sock 然后 restart ndoutils服务 |
|