找回密码
 注册
查看: 4668|回复: 1

读取nagios数据库至mysql数据中

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-6-22 21:10:54 | 显示全部楼层 |阅读模式
1,首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。$ A8 z5 j/ g2 {- h) {
        9 u; N1 l  ?3 y+ T2 I6 C
         兼容问题:ndo2 1.4b9 换成了 1.4b7就解决没数据问题了。* b3 F; |: z' n3 U

' @$ p) `; ^  X! N  B确认DBD-mysql包安 装,如没有安装,请先安装。( p; Z" ~$ N$ U0 \* T
如果DBI包没安装DBD-mysql前需要先安装DBI包
& Q, n% p$ Z; a8 [, y8 C1 Rtar xzvf DBI-1.607.tar.gz
, i9 d% H  c/ W& jcd DBI-1.607
9 \! K% {) c( T) s$ m; n/ Eperl Makefile.PL8 M; G$ M, r8 l5 B" \- M
make
$ [* M6 F% J( L6 qmake install
1 ]8 N3 R% J4 u( w& h ' Z% ^1 }0 P5 @# b- L, j
tar xzvf DBD-mysql-3.0008.tar.gz, f5 @! E9 |# T; J* f' T8 e
cd DBD-mysql-3.0008
6 N* F, A/ ~+ T2 _' Hunset LANG  ?4 C1 W  L) ?. s# r" P
perl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=123456
/ A8 u4 g2 f7 f5 p( M* imake
2 D' |: y; M9 ?2 U/ p" M: P9 omake install0 k& ~; n' M1 R5 c, u
+ @# y  [6 Q, H
安装mysql
# k% m* s3 }$ G5 `* F4 a1 eapt-get install mysql-server mysql-client
8 U5 w# H1 ~' _( u+ [ ) T, p. ?/ j  A% O$ N. i
wget http://sourceforge.net/projects/ ... 4b7.tar.gz/download1 M3 J7 m: {# n+ v. O
tar zxvf ndoutils‐1.4b7.tar.gz
5 `. a8 f  W+ `" S* W#cd ndoutils  i1 a0 y3 A. L! _; m1 a
./configure  --enable-mysql  --disable-pgsql  --with-mysql-lib=/usr/lib/mysql
- q2 {+ u" q9 i8 O+ H* g& D7 Nmake# M  M. w3 ^. z6 D1 ^0 e
/ J" ~8 \, T, H, x9 P9 L6 M
建立Nagios数据库6 \+ R/ k5 d/ A4 N
Mysql –u root –p   连接数据库( G5 [4 e, D% t/ v! f2 p. L
Create database nagios;  创建Nagios用户4 t" f! Y3 A0 {. i; H5 ?
Grant all on nagios.* to nagios@localhost identified by ‘nagios’   授权nagios用户,密码为 Nagios4 Z- b9 A* R. }; W# ?
0 H. n: V" L2 T1 }- Y2 @* X6 {4 P
初始化数据库
1 W6 `2 }9 x9 @5 G3 @! J& C3 I0 D. Hcd ndoutils‐1.4b7* s3 g/ m5 ^2 E# z" z( z
cd db; _$ N9 R3 ?2 c- a0 {& }' M
./installdb -u root -p 123456 -d nagios0 p, G; r8 W& P0 `6 y

4 P2 r( X- r1 G  R: F  c  |cp config/ndomod.cfg /usr/local/nagios/etc- _: T3 ^9 X$ l' g
7 c4 |. ]6 f/ H# l" c3 H+ ]

0 t- a+ p& E! ^( u7 }) f1 p  {- d. p
; ^& v/ s6 }. ?# f5 P) y0 R修改nagios主配置文件 #vi /usr/local/nagios/etc/nagios.cfg 添加以下内容' g% _( ?! _+ t/ P: w0 V- {4 @. _
check_external_commands=1
  e% N( T( Y2 h9 E$ o7 X" i) m; Acommand_check_interval=‐1& g2 n  k! Q8 E$ D$ ~
event_broker_options=‐1
( X, w6 r/ s$ y4 w7 abroker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
) M) W. N, b% E/ t5 R, I9 A% I6 Rprocess_performance_data=1        , ~- _6 }% r3 d' x9 P0 E
添加的内容至此结束
- ^# H" I2 k' k5 Fcd src
, T2 S+ |2 s' pcp ndomod‐3x.o nod2db‐3x log2ndo file2sock /usr/local/nagios/bin* C. d/ g$ H5 F; @) I4 K, z
cp src/ndo2db‐3x /usr/local/nagios/bin/ndo2db5 s4 o& p! q' H9 c! d; r) U
cp config/ndo2db.cfg /usr/local/nagios/etc
: H  A$ g* Q! ]; S! hcp config/ndomod.cfg /usr/local/nagios/etc* ?3 n6 b$ ~5 O5 K3 j
chmod 774 /usr/local/nagios/bin/ndo*+ E, J; i# y+ a
chown nagios:nagios /usr/local/nagios/bin/ndo*7 K) j+ @$ m9 v

$ y4 c4 v5 h# v0 V$ V 2 _$ }; G0 k, |" r2 u
修改配置文件ndocmd.cfg和ndo2db.cfg,这里我的配置文件内容为:  S/ Y: e. {, Y! n* a

# T; Y3 p/ Q8 i1 D, P: n1 B, X[root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep ‐v '^#'|sed /^$/d
( A9 e& k2 c5 b! X# qinstance_name=default
4 P& `) H' k! g9 ~7 ?  c. Loutput_type=tcpsocket
: D6 _6 n0 [9 J4 `) w" ?output=127.0.0.1- H$ b& M; [: N. i$ L
tcp_port=56683 S% F( f7 u% N! V
output_buffer_items=50003 j2 ~% t2 \& \) Q! W
buffer_file=/usr/local/nagios/var/ndomod.tmp
; e- f  }3 f# |file_rotation_interval=144003 I- ?( {4 T, I6 [6 K4 I5 ~, k! m8 a9 R
file_rotation_timeout=60
9 X/ C. w& M% j* c3 q$ M1 R" ireconnect_interval=156 x% i( }' V+ C3 o# B0 f
reconnect_warning_interval=15
+ U2 j2 {6 \: R. U- Gdata_processing_options=‐1+ |7 ~+ z' q* r: B* K5 i- K
config_output_options=2
" ]) E4 b; B% V. Z
- ^9 j* S, O6 X/ k) T
( {& `# ~  H1 j4 g/ W  u5 E' F[root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep ‐v '^#'|sed /^$/d
! j. M, d; h2 D8 Gndo2db_user=nagios
9 k) R5 f2 W* |8 j( b3 z  @. A2 endo2db_group=nagios
0 g7 ^) y- }  t& usocket_type=tcp- J, J% o) V1 W
socket_name=/usr/local/nagios/var/ndo.sock
; N) y. p- P' o3 n& jtcp_port=5668
/ p. Z7 Y' E3 O- r1 Z: p2 C3 r# u4 jdb_servertype=mysql
# H# a4 k- v6 E1 `, _3 w* Tdb_host=127.0.0.1
8 b: j7 \: [6 V1 ?6 \2 Ndb_port=33060 U& i& R/ c4 C/ `2 f9 Y
db_name=nagios& S, W; d% H/ d. M1 @4 @; H
db_prefix=nagios_4 N$ _# \+ a& M: N- M- g
db_user=nagios- ~+ o' B. m0 s+ X" M* i4 F& ^
db_pass=nagios3 a% @, F+ w6 l# f. P. t9 k* i
max_timedevents_age=1440
  p0 B+ _- p# U2 r* nmax_systemcommands_age=10080/ j- X& D% Y8 |, c
max_servicechecks_age=10080) ]. u+ [' t0 D
max_hostchecks_age=10080
- C, s  |2 J( N# Hmax_eventhandlers_age=44640
# X7 w! {* d( T9 tdebug_level=1: J& D6 L* R8 ?; I) R3 \
debug_verbosity=1
3 r8 D# C1 z# H2 B, Cdebug_file=/usr/local/nagios/var/ndo2db.debug5 \; \/ M- X* N) B* T- Q
max_debug_file_size=1000000: H, V4 l6 H6 x! s* m
   #/usr/local/nagios/bin/ndo2db ‐c /usr/local/nagios/etc/ndo2db.cfg ---------启动ndo2db
! }# L" ~; S; S7 p8 R1 c  {配置完成) L; c" v7 D/ ?1 a+ ~2 |1 j8 O( J

/ z* Q4 W: Q4 V9 k' X& }查看系统日志看是否有错误信息。
2 x7 d% ^7 O! x& c! A2 rtail -30 /var/log/messages
$ Q0 D2 }6 k6 p, g7 T' F- f8 D
0 V6 ]5 x) E+ S若有mysql_query() 不能插入的错误,即Id问题。, ^. X# U8 H1 a% j: ?* P9 b
解决问题:mysql> ALTER TABLE ‘nagios_configfilevariables’ DROP INDEX ‘instance_id’ ,: }+ Z# E$ u" e  @1 y" v6 B% q
              -> ADD INDEX ‘instance_id’ ( ‘instance_id’ , ‘configfile_id’ );, \, U3 n6 e9 L; y

. d8 T* T* ]: s/ R  ?1 j3 ]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-6-24 13:14:46 | 显示全部楼层
一、NDOUtils安装需求:
# Z, _& G9 [. ]$ i$ `
, U# L3 Y) l; Anagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html4 x: C9 H$ J! t0 {/ A
" `+ I; _0 S8 J0 s
mysql:源码安装方法:http://www.cnblogs.com/Richardzhu/p/3220883.html
3 j6 u) f5 d) h7 o, n# Q/ d# i# d- f2 T) z. e: C. @
DBI和DBD-mysql安装方法如下:) l& U. D9 D9 Q6 A3 [; b  O
5 J, S& W9 W! G6 x0 B. r
shell> perl -MCPAN -e shell + I0 ]6 i: [% B2 D! i
cpan> install DBI   v6 p: f/ r4 E# u9 `
cpan> install DBD::mysql
$ Q# `- D3 p! v 二、关联mysql头文件和库:5 S$ V, I% q+ V3 B/ @, @. h

. P+ {" \% }. A3 t$ w% u0 R: b不做关联可能在config或make时出错0 I7 I* W* }7 `6 k) L

3 S0 r+ S0 m: vln -s /app/mysql/include/* /usr/include/
* x, K3 Q; |$ {# @ln -s /app/mysql/lib/* /usr/lib/
+ r; L( x# ^" n  C2 R" v0 [/ [1 A; \* ~, j5 U; ?  l7 a5 _  _9 J2 U) p
echo '/usr/lib' >> /etc/ld.so.conf
, F* u/ h9 k6 wldconfig -v  ]7 E! M2 M; U" V, ~6 C3 ~+ e& a
三、安装nodutils:
6 ?6 B1 J5 ^* z; y. ^
8 A$ f9 o9 [) U8 Q. H* S5 Ftar zxvf ndoutils-1.4b7.tar.gz, I; e3 p1 [( ?3 R. n
cd ndoutils-1.4b71 q. n( `2 w, i6 G
./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql LDFLAGS=-L/app/mysql/lib --with-mysql-inc=/app/mysql/include/mysql --with-mysql-lib=/app/mysql/lib/mysql+ T$ ]! a/ h. C! K4 P
make; ^1 a% o7 z5 V2 @
四、拷贝文件:4 u* T+ q" g9 q

% ?: p" ]9 z5 C9 Vcp ./src/ndomod-3x.o /usr/local/nagios/bin5 j# s1 k0 L3 ?  {8 {
cp ./src/ndo2db-3x /usr/local/nagios/bin' U) F: P* W6 ]4 e5 T6 h
cp ./src/log2ndo /usr/local/nagios/bin
3 u- L1 k- N3 d' M% `0 Qcp ./src/file2sock /usr/local/nagios/bin
  a/ Q) w. @/ Qchown nagios:nagios /usr/local/nagios/bin/*1 l- s' m$ K: ~2 Z0 F, H+ N. m
五、拷贝配置文件:
0 g/ \# m8 Z4 L. w" c$ ?7 f( c$ t, E3 M: m% r
cp ./config/ndo* /usr/local/nagios/etc/
% G' @# }, O- V0 ?chown nagios:nagios /usr/local/nagios/etc/*- W& Z& t0 d: i, t
六、创建ndo的mysql数据库及用户" |. H, G  ^/ Y: v5 z% ~

) [; ^2 i6 a" \' `CREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;# k  g# C+ [! k' n$ ~% G
GRANT select,insert,update,delete ON nagios.* TO nagios@localhost identified by 'nagios';
8 i5 }- i) W. M/ G4 A7 A& HFLUSH PRIVILEGES ;# p3 I# |& R- m) |
七、导入数据库结构
5 M; M& m2 m, L; C7 q' f+ J5 u& V$ W  a4 [, T
cd ./db/2 k  M! P1 O" X7 z. ~7 M9 u! m" U) o7 C& L
./installdb -u root -p 123456 -h localhost -d nagios+ Y: ~2 x( e8 }. E+ f% ]
如果这里root没有密码的话需要进行修改。0 J' T. E3 V1 c
八、修改配置文件
* c! \/ n% i1 [2 j6 r3 m8 ~0 C* j  K; e4 e# w5 }9 X* d
复制代码
8 A3 a& g# y) S1 y4 W4 E. svim /usr/local/nagios/etc/ndo2db.cfg
) }, \* g' e( c1 q+ m
. P- N6 K9 a+ Z% q1 t! v' {; `db_user=nagios
. r) r* @( \  Y/ Ddb_pass=nagios# `7 M9 d" N  ~) X0 ?
socket_type=tcp
) C8 U7 ]; z# k6 Y2 w  j
  ?3 ]1 _1 D- |0 W* u$ E+ yvim /usr/local/nagios/etc/nagios.cfg1 V. d) X- N/ P% J
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg5 ~5 \; q; _$ x, r) p9 {+ t8 u' \

: R6 Z$ N# y6 J6 e4 n( mvim /usr/local/nagios/etc/ndomod.cfg
0 j$ g$ s% }! a5 G3 xoutput_type=file! k) p: ]4 W: m* ~! u9 n
output=/usr/local/nagios/var/ndo.dat
1 R6 ^' S9 W' l5 L: @复制代码, e, O+ D2 N  F1 s8 D- i" ~
九、启动ndo2db% p# S, ~( ~# c$ b9 K% \, x0 m

4 C  n* J8 N- I1 b1 `. O+ x/ X3 v/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg8 y: X6 ]8 k$ x+ m$ L( Q* }( ~
十、重启nagios! M. J# M6 O9 v) ]  X1 [
7 t1 d0 d' S. w7 S* o0 E: W
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
) V$ ?- t% D. {, V& E# zservice nagios restart
: M3 A7 E1 ]. I- t+ y" D十一、检查安装是否正确7 Z* r  r/ V5 J% J0 V
1 _# ~" p- V1 C
tail -f /usr/local/nagios/var/nagios.log
1 M  c; k/ A2 `6 r" V, j
. h) c4 ^) m) A9 ~/ c涉及的错误:& `, a' u! X% t) n3 ?1 G+ \2 Q; t
- @4 q- Y, H: e; i! W5 D; k; l
启动ndo后在日志中出现:  nagios ndo2db-3x: Error: mysql_query() failed for 'INSERT INTO nagios_configfilevariables SET instance_id='1', configfile_id='3', varname='cfg_file', varvalue='/usr/local/nagios//etc/objects/localhost\.cfg . c& b. q2 w* t6 ^9 B6 I8 M9 C
解决办法是使用:mysql -uroot --password="canada" -h192.168.1.97 -e "
( s" j8 {' l* P2 f% [% g! Talter table nagios.nagios_configfilevariables drop key instance_id;. w! k2 y4 i- `& u& `% J6 B4 x
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname); , F1 ^  s1 x- r3 C) `
! A2 f3 V8 s9 ^+ H8 o1 u5 U8 l
需要修改表结构。
( E" B3 X/ t6 c9 p4 Q0 R7 o4 }alter table nagios.nagios_configfilevariables drop key instance_id;
' N) r( j/ k0 H) D/ R8 f% salter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);/ D# I) V# V7 d0 l  }0 m
( L7 {3 V  T. F' k4 ?
tcp连接Mysql /usr/local/nagios/bin/file2sock -s /usr/local/nagios/var/ndo.dat -d localhost -t tcp -p 5668; }- ~8 Y* h( k. l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 03:22 , Processed in 0.019061 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表