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

读取nagios数据库至mysql数据中

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-6-22 21:10:54 | 显示全部楼层 |阅读模式
1,首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。
4 Y* E6 H0 q1 P. b8 Q, G        5 p/ u+ ]+ F% P# f
         兼容问题:ndo2 1.4b9 换成了 1.4b7就解决没数据问题了。
4 a$ w* z' Y2 {* a7 h2 G) t # F# w* e4 i" Q
确认DBD-mysql包安 装,如没有安装,请先安装。8 A4 N' D( T) J) _' d
如果DBI包没安装DBD-mysql前需要先安装DBI包
! k) ^3 a5 L; N2 ?tar xzvf DBI-1.607.tar.gz4 ]5 M: f+ r  r1 @7 Q( H
cd DBI-1.607% S; o* v  H- V
perl Makefile.PL7 J( k! p6 M8 \; C: N4 I" V8 y2 U- Z' T
make
8 y4 n8 G0 U- Y2 e" c2 Y  w) Cmake install
: |( h- `# T' ^5 W5 P' |* Q3 _ ; g# A5 M: q+ e- x! j" v) f
tar xzvf DBD-mysql-3.0008.tar.gz
6 f" O0 ?) S; I9 y8 j. {; gcd DBD-mysql-3.0008- k2 i, M4 V/ v. i
unset LANG) j7 [5 f6 I- ]# L0 p) V0 E. f# n
perl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=1234566 ^& I7 j& g. G3 P: B3 T
make
9 K' K- V; f0 Q. Lmake install' U5 f, @4 z- J2 c! V0 K, L

; U' @, k* o* e2 K; j安装mysql
: i  E: ~7 u+ ]! ]0 ]apt-get install mysql-server mysql-client
! N/ a/ Q+ ?' D0 s0 P& K
  |4 T' k& \; a& kwget http://sourceforge.net/projects/ ... 4b7.tar.gz/download6 R2 A/ S+ r& a% Y- }& e( \
tar zxvf ndoutils‐1.4b7.tar.gz
+ x% h+ y+ R+ `6 [0 f% o$ a#cd ndoutils
0 r: R" ^( _" N6 q* D./configure  --enable-mysql  --disable-pgsql  --with-mysql-lib=/usr/lib/mysql. m! ~6 v! p6 B# Y9 E# h
make. ]+ x2 k  m5 ?9 F

. b/ Y. N7 \( ]建立Nagios数据库
$ a1 g# v! D5 }/ d7 o2 U7 k: i8 uMysql –u root –p   连接数据库
8 I8 `# G  t9 v4 TCreate database nagios;  创建Nagios用户
: }0 x) Q: e) c6 DGrant all on nagios.* to nagios@localhost identified by ‘nagios’   授权nagios用户,密码为 Nagios( N4 y) _  @; t& ]" |2 R, C

; P2 {4 K5 y" H* u1 f  p' H+ R初始化数据库
; T/ I$ k) y2 D/ j; o. }% T  jcd ndoutils‐1.4b7* n3 o* u: f0 `4 @
cd db. t5 X5 w! A) ~8 Z5 u
./installdb -u root -p 123456 -d nagios, i0 b1 F4 V6 K/ e0 \2 U
* Z6 R, P- Z6 n4 d4 I% A
cp config/ndomod.cfg /usr/local/nagios/etc
7 [: O7 s3 w% {" _) _ 4 T4 G1 v1 q" s! a0 O
9 Z; w# F3 E/ {* u( {

% o: ^- y& i% Y, W! R修改nagios主配置文件 #vi /usr/local/nagios/etc/nagios.cfg 添加以下内容6 e: }- R; V5 `' R& t
check_external_commands=19 w- A2 v" |0 T' a6 ]3 y+ x6 R3 ^
command_check_interval=‐17 {" Z6 |1 l& k4 Z
event_broker_options=‐1+ d' w' X+ R: f! J( W
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg4 @0 O( W$ L1 C! G+ H1 o6 B1 i
process_performance_data=1        9 q! j$ d! w! c* Y
添加的内容至此结束
9 @/ _* |7 W8 M, Q. G+ q4 ]cd src
4 R2 n0 u& ?' e& u" pcp ndomod‐3x.o nod2db‐3x log2ndo file2sock /usr/local/nagios/bin
0 }! j( j5 Q4 ?  `( V" f: \% ncp src/ndo2db‐3x /usr/local/nagios/bin/ndo2db0 c9 L: e. _( f1 b
cp config/ndo2db.cfg /usr/local/nagios/etc& T5 y/ j# q6 |5 N3 @: h
cp config/ndomod.cfg /usr/local/nagios/etc
  D3 u- @% t8 Z: Q5 H, Ichmod 774 /usr/local/nagios/bin/ndo*  `# T' M2 M1 L/ @0 F! W$ X
chown nagios:nagios /usr/local/nagios/bin/ndo*3 x. M, J9 g1 h' U3 L* O
- p) }" C/ ?/ E
7 s- c( t: W: s/ c
修改配置文件ndocmd.cfg和ndo2db.cfg,这里我的配置文件内容为:
0 p6 v# ^+ O2 y" g* S/ s5 [ & \3 t1 A% f8 T* |  E2 y! A5 D
[root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep ‐v '^#'|sed /^$/d/ B& k8 W, t" ~% x' v& N
instance_name=default
9 E# e6 i; Z3 \- B' n4 }output_type=tcpsocket6 R5 j6 F. Z, v/ T1 T( c9 ~
output=127.0.0.13 G3 |- _3 |  F8 [/ k6 m7 C; K3 K, m- z
tcp_port=5668
, v) w; p8 |1 Z3 V1 G$ z1 Voutput_buffer_items=5000
( e$ ^$ ?9 n" \$ ^" F2 Rbuffer_file=/usr/local/nagios/var/ndomod.tmp. D; u1 u! D' f  j
file_rotation_interval=14400! g, j. C7 S% `4 y
file_rotation_timeout=60
; n0 E' c, _& D& g, Q4 dreconnect_interval=153 L& G: j" |8 h" @; B
reconnect_warning_interval=15
$ v* G) s& ]/ x( |. a/ `: g9 Idata_processing_options=‐17 X8 N7 u7 L* A
config_output_options=21 t( U( _; @9 I
% ]" X% y* P; S

# b3 r. z% f% z& c( y% g# [[root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep ‐v '^#'|sed /^$/d
- e# t8 C; ~9 J3 xndo2db_user=nagios% {1 t" o4 C. z4 J
ndo2db_group=nagios8 W' {# v% G" D  N
socket_type=tcp
& {! Z- q) v! B2 O, c6 Z7 q' vsocket_name=/usr/local/nagios/var/ndo.sock
# l9 P# F' e% u' k+ H0 R0 Stcp_port=5668
- x+ _& o6 w. V# @/ T4 ?1 M( zdb_servertype=mysql
3 E* e2 G; u9 Y6 W$ S) C; u: n% Ndb_host=127.0.0.1
- @2 h  S) U; D+ wdb_port=3306
- m1 c& |4 m1 a( F5 K2 W1 Cdb_name=nagios0 u3 K8 E! r% i. m0 @" B: N* m5 L
db_prefix=nagios_
& V1 t* w! }* F4 c5 e" W: S' m0 b4 udb_user=nagios
) O0 Q7 H$ h9 T# h# }- ^) qdb_pass=nagios
; B- `4 }* G+ E1 c6 ]. a0 \( emax_timedevents_age=1440
$ j0 n2 D  i8 \' x# ~' `5 h$ m6 lmax_systemcommands_age=100802 C. J2 j1 y+ F0 x2 _9 j  V' ?
max_servicechecks_age=10080
5 S) T" i  i3 i% b8 Q2 b3 e- Omax_hostchecks_age=10080
: K* M0 J9 p- y, Qmax_eventhandlers_age=44640. B: @, T- U/ q) w6 R
debug_level=1
( \6 i; W0 \) R* f. [% G$ W, ?debug_verbosity=11 J3 p% [* z8 ~# r
debug_file=/usr/local/nagios/var/ndo2db.debug' R3 u1 E) z/ `1 ~7 v5 z5 P3 u. `8 r
max_debug_file_size=1000000
& Y' z( l1 |% d7 J; V   #/usr/local/nagios/bin/ndo2db ‐c /usr/local/nagios/etc/ndo2db.cfg ---------启动ndo2db: x# A: v5 [& p
配置完成
6 i' F: P) X2 @; z. [. P! j4 _; k 0 l# ~* ], A, `/ h: C: H
查看系统日志看是否有错误信息。# |% y& E' u6 I2 J( p
tail -30 /var/log/messages" Q' Y" h) }/ T: G/ F& G3 d# a8 V5 f

+ p$ Y1 [2 L' u3 g若有mysql_query() 不能插入的错误,即Id问题。
7 g: `% ?# r6 U( e- r解决问题:mysql> ALTER TABLE ‘nagios_configfilevariables’ DROP INDEX ‘instance_id’ ,, ~7 y8 F  Q6 f3 e- q
              -> ADD INDEX ‘instance_id’ ( ‘instance_id’ , ‘configfile_id’ );
, h' D+ I6 {" ~" _; D. D) u/ P+ g. Y0 N; b0 ~- F

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-6-24 13:14:46 | 显示全部楼层
一、NDOUtils安装需求:" E' z$ q; w  S( L+ ?! K/ z

; b0 A4 y# {( [5 Q8 Q& H: Vnagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html
) }7 S7 O8 u0 P& _& `( L1 I; J* O) M3 K" B& _
mysql:源码安装方法:http://www.cnblogs.com/Richardzhu/p/3220883.html" q0 V6 C" U; R8 ?) E7 p
8 O# S& _8 Z# {: H# V* v: t
DBI和DBD-mysql安装方法如下:
1 i4 y; o& c2 s2 L* ^! B% m% X; V) S$ c+ `
shell> perl -MCPAN -e shell & {+ ]0 w  n8 V2 V0 N7 {/ {3 `% E) t  W7 Y
cpan> install DBI
2 O8 p* K5 }; O+ Rcpan> install DBD::mysql/ w, w: }  O  p" k
二、关联mysql头文件和库:
7 S5 i( v. ]4 [
  H0 u4 M" k% c& Q不做关联可能在config或make时出错, g" o0 J1 L2 N5 V

% t, D% W. e* m: s# Q5 Wln -s /app/mysql/include/* /usr/include/
5 {% n- f% g* L) v7 m; k6 sln -s /app/mysql/lib/* /usr/lib/
# n  _& k) a# _/ z5 [1 R8 h7 {7 |4 m5 n+ k# [
echo '/usr/lib' >> /etc/ld.so.conf9 i8 C8 q6 \! r1 x$ i
ldconfig -v/ R6 m- t) b5 I7 V! q' i
三、安装nodutils:& [% p6 i( ?$ u# M5 W1 P. i0 m

3 d% R9 s" @" m! A! mtar zxvf ndoutils-1.4b7.tar.gz6 i( a. D. F/ m% o
cd ndoutils-1.4b7) e5 l4 Q& x& u7 M
./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/mysql7 E. V+ r5 i9 ?: h
make
9 ]1 Q% G9 u) R/ X' E  Q四、拷贝文件:+ N8 p* z* H2 d0 o7 m( T

  P% m+ q& x; y2 p& g0 N" H  Pcp ./src/ndomod-3x.o /usr/local/nagios/bin; F1 O: J, k7 P
cp ./src/ndo2db-3x /usr/local/nagios/bin
  ^% O8 u( G  k( P. k% ccp ./src/log2ndo /usr/local/nagios/bin' R* }( m! L3 {( s
cp ./src/file2sock /usr/local/nagios/bin
# Z! _* G4 d5 Y0 F* C& `chown nagios:nagios /usr/local/nagios/bin/*2 Y+ Y2 [) r" k' B* h; S8 r
五、拷贝配置文件:  N% j: Y# Q9 R* [/ a! ^5 y

) N% t8 Q6 a6 Bcp ./config/ndo* /usr/local/nagios/etc/
* w5 ?: C- h7 O8 ?chown nagios:nagios /usr/local/nagios/etc/*4 k; ?3 T% b7 _' d3 k
六、创建ndo的mysql数据库及用户
* {8 [2 q! _3 t1 \' r) i+ J% h( O3 B7 }
CREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;9 X6 `5 c  D0 Y% v4 ~/ }5 S  [& g, R
GRANT select,insert,update,delete ON nagios.* TO nagios@localhost identified by 'nagios';5 F8 K$ u3 w8 F) f' u) m& U
FLUSH PRIVILEGES ;; L. c, R' P, W  T( }
七、导入数据库结构* L4 a2 U5 q, D' D3 s+ V
* H# [9 p! c& v# d( W+ Z2 G4 Q0 x
cd ./db/, E$ }& Q- H2 G4 b" i& T9 s7 z
./installdb -u root -p 123456 -h localhost -d nagios
, M! h3 {9 V8 e; V+ q* H如果这里root没有密码的话需要进行修改。+ t, \. g" j6 w3 `
八、修改配置文件% d- d7 {9 }  z" |3 `$ g! U

/ A! i& r9 L5 T复制代码6 f# C; E+ u2 R/ @9 K
vim /usr/local/nagios/etc/ndo2db.cfg
$ E* h5 N7 y- y2 m7 l+ f% |, ~& q; Z8 i
db_user=nagios
9 d1 E7 M) O4 v' I* {& [db_pass=nagios- x0 W6 t5 T, _1 R* }6 Y$ ?
socket_type=tcp2 L0 X* t' E2 m  k7 i( ^9 i% T
! s- M5 P5 B& @3 a: Y6 c, T, |
vim /usr/local/nagios/etc/nagios.cfg& f) ^3 T4 t/ \5 N, c& @; Y
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
0 T9 J: ^9 s8 Q5 W1 M' Q# v
' Q+ b  Q  c7 Pvim /usr/local/nagios/etc/ndomod.cfg
6 \" w: b3 t1 A( h/ Voutput_type=file
. F3 P0 H3 C! {2 f  Voutput=/usr/local/nagios/var/ndo.dat* q3 e7 G, l) e* q) p" y
复制代码- S" E  |  C- b4 ?8 I% u
九、启动ndo2db
* V- {, {% t  C* P" e/ |4 Y3 T% F3 Z# ?. M  W" {
/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg  E/ q; x  X! ?% t4 j. C
十、重启nagios% L+ F; J& i9 s7 G
; D" S# g& F2 k' i
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 0 r  m5 T7 a! |2 H/ T( e
service nagios restart( ^% h+ V/ ~( {5 Y% O1 M
十一、检查安装是否正确
6 Y( }$ a. f/ f. {3 H/ W9 f/ q. [; Q, q+ z% c, _0 W& o' V) B0 L; [
tail -f /usr/local/nagios/var/nagios.log7 Q5 d; {8 |9 G2 `
1 V# C# ]: S) O- A5 ]% ]
涉及的错误:7 r* a8 ?- V! D: E6 Z( U) X

* f: o/ ~" X/ `. j3 k% @启动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   ?! V; f( w8 i4 F: D6 R) W/ j6 h
解决办法是使用:mysql -uroot --password="canada" -h192.168.1.97 -e "
- S& h$ ~: G. l3 m7 x$ jalter table nagios.nagios_configfilevariables drop key instance_id;  b' ^$ W* `/ \) @, o
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);
9 ^5 D9 G+ s7 w) T( }  j# F6 l( Q- z
) ]: `& ~  h0 E需要修改表结构。 6 X2 m& n8 k' x$ Q8 j! V
alter table nagios.nagios_configfilevariables drop key instance_id; 8 n! ^& D* L( l0 G7 P: O
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);! ]+ J3 k4 ]  Y3 F5 X( H, |: y
5 W7 h. ~/ F) Q8 K* a
tcp连接Mysql /usr/local/nagios/bin/file2sock -s /usr/local/nagios/var/ndo.dat -d localhost -t tcp -p 5668
& g2 B3 _: n, E  M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 02:09 , Processed in 0.019948 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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