|
|
1.ndoutils安装准备
0 k5 y# w; o% t! j! x! Gndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到mysql数据库中。这个工具的安装是个关键。 " C a- o- U! b- h$ j8 K
(1)nagios环境的准备,以上环境应该是可用的 E3 j$ y& `9 x$ b* |/ L+ O- V
(2)mysql数据库环境
a! G' ?. [) M; d o3 n- B下面两条命令用来生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行: 3 ?3 `* U8 u0 p0 T) [5 g1 F
% J ? l& G0 Z& G4 N9 a2 p
# cd db # ./installdb -u nagios -p nagios -h localhost -d nagios 其中各选项的意义如下:
$ d: f, A$ ]6 _' x( ]6 x j
9 `7 C: d5 u+ Y9 k2 p4 f4 a) `- D; P-u用来指定导入时所用的mysql用户帐号
% h9 |+ u, ~# z) ~$ m, W7 g& p7 l$ i9 q! ]- H
-p表示前面mysql用户的密码
" J9 R: J' T( t+ _5 H' S: U+ \7 }7 |
-h表示mysql服务器地址,如果是localhost,则可以省略 6 @4 p+ W/ E; S% y0 q- `
8 x5 H* r2 J* h3 s& l: l-d表示目标数据库
9 }4 z# F( u6 n. l( r l6 {5 G) s! J2 \( l" O( |! J
说明:如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。后面讲到整合的文章中会继续对些做出说明。
3 O: G9 X" K7 J. b/ L% p
}" n2 ~% @" b3 M1 v$ O(3)相关软件包的安装确认
$ ` v {2 q, }2 jperl-DBD-MySQL
# ]. V* ^. V1 ^( emysql
1 O, ] n! F/ lmysql-devel 5 Z! y# m+ y5 K' H! B( I$ E
php-json-ext-1.2.0.tar.bz2 ; X- \' G0 f' U+ P/ e+ A
cd /usr/src 9 j: u5 {# g K) }3 @
wget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz
# y8 d$ D/ X8 C! T3 z: k( f, O: [wget http://www.cpan.org/modules/by-module/DBI/DBI-1.624.tar.gz
: G, P, ^2 z2 J; X# pwget http://www.cpan.org/modules/by-module/DBD/DBD-mysql-4.024.tar.gz 0 \9 e& W0 X! @
2. php-json的安装 , t$ q, S& a& \- ]# p4 z1 U
# tar zxvf php-json-ext-1.2.0.tar.bz2 0 @6 _4 T( ]. o0 @
# cd php-json-ext-1.2.0
; E0 P R+ a$ `* Q: G# /usr/bin/phpize
W4 L; g: o) i6 v8 @2 R# ./configure --with-php-config=/usr/bin/php-config
, h8 b' x4 t1 c, e J" [& L+ a# make - }' v' b% `% J' M
# make install
+ O- d8 G, K$ c$ @2 U# 说明:json库的位置 9 q1 Z/ x7 ?) |. J2 a3 v
Installing shared extensions: /usr/lib/php/modules/
h1 e: K2 k- D0 s# 把PHP扩展加入配置文件 b' {; O1 |: u' Z4 h( H
# vi /etc/php.d/json.ini 8 D' G* g' ?" ` i
extension=json.so 4 I5 W; _- ]1 d1 k) U. Z% r
3. ndoutils的安装
: {& ?( ~' h& n* R8 A# cd /usr/src/
( c' O/ w# _9 w$ {下载ndoutils-1.4b9.tar.gz * p2 v. e3 P9 Z! F/ G( B' Y
# wget http://ncu.dl.sourceforge.net/pr ... outils-1.4b9.tar.gz 5 S2 @2 A" ^1 N0 g# ^" n3 R3 K- l
# tar zxvf ndoutils-1.4b7.tar.gz
+ o" a+ I# Z. o; [$ ?( ~8 l- ^# cd ndoutils-1.4b7 ' v5 z' U @3 n; o
#./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios LDFLAGS=-L/usr/lib64/mysql {- t2 o( n# p$ A/ k# g! w- f+ g
# make 9 y9 ?0 P! l2 F/ N$ w# C& b4 ]
7 k, m3 g3 b3 s) h9 G7 h# cd src/
/ j2 {; t% U7 k, U# cp ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin/ + X- l) m7 _0 f, o3 s/ U. S5 E
# cd ../config . d0 H, t1 T/ ]' E/ _' ?, H
# cp ndomod.cfg-sample ndo2db.cfg-sample /usr/local/nagios/etc/ . s- q) q/ Q, f' Q1 h
# cd /usr/local/nagios/etc/ + |' S: @+ f+ G _4 D
# mv ndomod.cfg-sample ndomod.cfg
; h, N, |8 ~/ V4 R, Q' C2 b- f$ U# mv ndo2db.cfg-sample ndo2db.cfg
* K: v2 [ [6 k$ U
# B" w3 E. F$ g6 Q- I3 B+ `% l2 R# @4 q
4. 修改配置文件 6 X9 j1 e2 R0 @3 m x1 ~% _+ L
# vi /usr/local/nagios/etc/ndo2db.cfg ! K# ]0 n; R. |7 ]
db_name=nagios 0 j, ~* V u% @" R0 B9 _
db_host=192.168.1.80 (远程数据库地址)
5 {0 T3 B" D9 D" L0 x$ D* edb_user=nagios
- k6 |* o3 j+ B- z6 V1 `- k9 j7 k0 Vdb_pass=nagios . w9 T6 G4 L, i0 h
debug_level=1 - P6 ^. N) X; t4 J8 n; y- M
这里是用Cacti在mysql中使用的用户和密码以及数据库,远程数据库的话应正确指定数据库IP,以及用户名帐号权限。
& W' n9 p/ c O# vi /etc/nagios/ndomod.cfg # 可以随便指定一个位置 $ V" U6 u* r0 A# u$ [" x
output=/usr/local/nagios/var/ndo.sock : F d8 t( A2 B# X8 I# }
buffer_file=/usr/local/nagios/var/ndomod.tmp
- a* V2 g) h: b, Z. U# vi /usr/local/nagios/etc/nagios.cfg H9 x* }$ m. O
# 以下三条检查一下,默认就是以下内容
0 H, T' a v& @0 D, |check_external_commands = 1
1 w* j* y5 {' P$ p- R+ }( ecommand_check_interval = -1
H% y+ ~) E. e8 ^ J$ bevent_broker_options = -1
' _0 ]: q! a' g2 sprocess_performance_data=1
* x& f2 x# S8 G. D, p" J. O# 注意是一行内容 ) j# ]$ A+ t2 C# T3 [" ?- T h
broker_module = /usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
# I, X' ?. u2 t' G8 w/ }$ j5. 启动ndoutils,也是最麻烦的一点
" A% A/ O4 Z- u6 C f) ?(1) ndoutils的先启动 4 N6 ]7 }# l0 ~. w2 y) x' t
#/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
: ]1 K* {- `" e! a& V. M测试如果出现以下提示,应删除对应sock文件再次启动OK 5 O, O4 R3 g$ Y a% {" B4 Q
Could not bind socket: Address already in use
5 f1 Q* }4 B: y9 `(2) nagios重启
7 l! n1 B- [4 Y8 j0 n3 _$ _3 _# service nagios restart
, T5 f. P+ }& O# K! _9 m2 `' ]说明: 其中的启动日志都记录在/var/log/messages中,可以直接查看有无错误。
; F* P; I8 M& }) W0 o4 o
7 f9 h9 }8 ?( w) e$ w* i; C故障排除:
' I7 o# C( I+ d3 b& r0 s) _如果/var/log/message里出现
- C; I0 W7 C9 \/ `ndoutils not connect 则 chown -R nagios.nagios /usr/local/nagios/
( l" l# {6 h Y% `2 Q: R6 I. ]- I若出现:
3 Z5 z) j9 I% b# b# `Still unable to reconnect to data sink 则 rm -f ndo2db.sock 然后 restart ndoutils服务 |
|