|
|
1.ndoutils安装准备 + v) k ]$ @2 `- E
ndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到mysql数据库中。这个工具的安装是个关键。 0 w6 D# j5 g/ O" |3 e
(1)nagios环境的准备,以上环境应该是可用的 / |+ @ P: \- Y+ e: M' R, N
(2)mysql数据库环境 , [3 T% o' \- }
下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行: : Q, A: d5 S g$ |% i2 Z; y
* O1 U' `% U. s) r# cd db # ./installdb -u nagios -p nagios -h localhost -d nagios 其中各选项的意义如下:
+ d0 ?, ^; C% }* y; h5 ]; u
: J; N9 M7 n6 ?' L5 ^- @8 x-u用来指定导入时所用的mysql用户帐号 3 Q8 k7 Y% O) X$ C' \
+ }) z2 [2 |9 @+ R
-p表示前面mysql用户的密码
9 b" \/ |; o% ?& i
, A+ S8 _# w3 X8 Q-h表示mysql服务器地址,如果是localhost,则可以省略 , W+ R C- j* h" {, q2 R
5 \- O+ |! U9 Z, \
-d表示目标数据库
. {( j; W3 N% D3 y- H. a
% T: P, Q( m1 \ `. {7 q% x* a说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。
4 S5 ~' f$ R0 {1 G1 ?* E* t+ I$ J; N" q) {9 G+ R9 v% H2 @# R
(3)相关软件包的安装确认
' G3 t$ W" a( A1 Tperl-DBD-MySQL $ [8 f% @) ?% _: b# G' h/ y; H* T
mysql 3 i- ?0 o- W$ r2 k& y8 W0 U$ J5 V
mysql-devel 2 T4 {; h/ Y8 q7 Q+ r
php-json-ext-1.2.0.tar.bz2 ; e, w! G v; i
cd /usr/src
6 S9 E2 l$ [2 Y! w9 s- f( ` fwget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz
. w; v" g2 w! u2 m+ O5 dwget http://www.cpan.org/modules/by-module/DBI/DBI-1.624.tar.gz
) G5 J' a7 i1 Mwget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.024.tar.gz
( ` u G/ E3 t( W0 z& s" W2. php-json的安装 8 g% F. M' X& y# e* Z; E
# tar zxvf php-json-ext-1.2.0.tar.bz2
4 E7 i9 m0 e5 n" P; Q# cd php-json-ext-1.2.0
/ q( B" z# d/ e# /usr/bin/phpize
7 a7 t: s# N9 Q" r# ./configure --with-php-config=/usr/bin/php-config
. T3 u5 |% F0 ?# make
! n( D3 S y0 C# make install : ^8 \6 t5 r3 y
# 说明:json库的位置
) h0 z7 e1 r# E: P6 Y0 WInstalling shared extensions: /usr/lib/php/modules/ : L! r$ `1 G- Z1 v, r
# 把PHP扩展加入配置文件 ; Q% K o. q) d4 b# E& s
# vi /etc/php.d/json.ini 0 i! `8 S$ x' c6 _! T1 e% B# p
extension=json.so
% J3 w. i8 j1 I+ q! O9 l3. ndoutils的安装
5 [) D/ d) U$ \ x4 N9 H7 F# k# cd /usr/src/
& c8 n, D$ a7 b下载ndoutils-1.4b9.tar.gz
) j+ s- Q9 G; n1 e, \# wget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz
. ~1 ~" F8 c% @+ o. H# tar zxvf ndoutils-1.4b7.tar.gz 5 J( [0 y5 Z7 }
# cd ndoutils-1.4b7
- n& k# q) E( x& ]& k" b3 ~#./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios LDFLAGS=-L/usr/lib64/mysql . u& x0 `& j1 e6 K! ^+ o+ n
# make # O8 M* L4 F. ^
6 K# H0 T/ I4 e p# k: d" X! w. m
# cd src/
! O6 t& ~, H, C, Y2 \2 c X# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin/
# j/ F6 } L/ a# cd ../config
. u$ \1 l6 m' N2 c+ i# cp ndomod.cfg-sample ndo2db.cfg-sample /usr/local/nagios/etc/ ; X9 n4 q+ e) g- Q! |# b3 b3 D
# cd /usr/local/nagios/etc/ : O3 Y% G. h: ~0 m. W: ]. w
# mv ndomod.cfg-sample ndomod.cfg
# J- o4 ]4 j S" k% D# mv ndo2db.cfg-sample ndo2db.cfg ( t/ X4 T# W% F- \
. m) ~; d7 t6 Z4 c6 f6 K- t
$ Q8 _! g7 G4 D1 i# j4. 修改配置文件
/ Z% R i8 Z2 t! W. I+ r+ _, I# vi /usr/local/nagios/etc/ndo2db.cfg 0 M2 b7 B! P) p& C1 }& a
db_name=nagios
( F- A/ R' ]' d- x) E& n* Pdb_host=192.168.1.80 (远程数据库地址)
! c3 Z" J7 f# x3 zdb_user=nagios X* t% {$ S; z; b% G+ f- k" r
db_pass=nagios
' Y: ~$ S" B2 Z6 F- B& M- E2 Y* Zdebug_level=1 2 J2 I; x" `8 v
这里是用Cacti在mysql中使用的用户和密码以及数据库,远程数据库的话应正确指定数据库IP,以及用户名帐号权限。 4 }" K1 v3 v1 P m2 y- B9 a
# vi /etc/nagios/ndomod.cfg # 可以随便指定一个位置
2 X6 r3 f3 E8 f; V) x2 p% q. routput=/usr/local/nagios/var/ndo.sock
, l; ?! b* `$ ]- j! abuffer_file=/usr/local/nagios/var/ndomod.tmp : v! {5 }* Z2 i; k i+ d/ A
# vi /usr/local/nagios/etc/nagios.cfg
5 E6 J! `! u& O9 `9 S# 以下三条检查一下,默认就是以下内容 7 T7 [% ~+ ^) }& ]: @$ J9 k# q
check_external_commands = 1 9 O0 F: E1 l7 x0 E$ J0 I2 x
command_check_interval = -1 & R9 h# C* G; p3 } Z
event_broker_options = -1
4 _1 R# R4 m( g q& \: E+ @3 ?+ tprocess_performance_data=1
8 ]5 a& q( I) M2 w5 f* P# 注意是一行内容
; r% g3 u, u. t* f* D( B0 F$ b& m8 Wbroker_module = /usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg 4 G* s( ]' l0 P* f+ b4 h" [
5. 启动ndoutils,也是最麻烦的一点 * b0 B3 R: G/ b0 L6 A* y6 }
(1) ndoutils的先启动
; J; n: a: ~1 Y; a( y! L#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
6 R8 t) r0 W/ I7 l" w1 p测试如果出现以下提示,应删除对应sock文件再次启动OK 4 f5 W y9 F- P
Could not bind socket: Address already in use
# D# O( ]5 G. t" E: O* K(2) nagios重启
& F3 f: m+ O7 C" U1 [# service nagios restart , g) C1 s. p) i# H; i! {
说明: 其中的启动日志都记录在/var/log/messages中,可以直接查看有无错误。
" _+ d6 j# Y( v# Q% [* g- P4 ]
- |; Y, \7 u) G! ?( ^故障排除:
3 x- [8 q! a+ F3 Z- k. U8 Y1 Y如果/var/log/message里出现
% w) l9 s4 p" D. \" J: _ndoutils not connect 则 chown -R nagios.nagios /usr/local/nagios/ $ _' u3 Y/ t8 S
若出现: 9 l! @& C# @8 j+ t2 Z* ^
Still unable to reconnect to data sink 则 rm -f ndo2db.sock 然后 restart ndoutils服务 |
|