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

读取nagios数据库至mysql数据中

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-6-22 21:10:54 | 显示全部楼层 |阅读模式
1,首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。
3 D% Q% ]4 M, Z+ R, P) y: P, [. V        3 M, ]) C0 @- B! W! Y
         兼容问题:ndo2 1.4b9 换成了 1.4b7就解决没数据问题了。, W! T2 \+ {0 [6 C9 V* C
# ]: Q7 X1 K2 u6 H" G% V
确认DBD-mysql包安 装,如没有安装,请先安装。1 J: }  ~9 \0 f. F0 i
如果DBI包没安装DBD-mysql前需要先安装DBI包: n) W0 u8 l) @, s3 a5 f9 r4 J5 A& j/ r, F
tar xzvf DBI-1.607.tar.gz
# H5 Q3 H' k) @9 L7 p, w- W4 Wcd DBI-1.607! J4 I; ~+ s6 e1 ~4 C% s  n) i
perl Makefile.PL; u0 R1 c% R' N9 G& V
make, @7 S/ d6 z, d( j
make install; l" H+ _6 ~* ?! Z. x5 x
; n. P! l# `: F+ o6 H- ^% h/ k: t
tar xzvf DBD-mysql-3.0008.tar.gz+ _1 V3 F; F6 u. x% V
cd DBD-mysql-3.0008
/ p3 W" [/ k; ?9 iunset LANG
4 t! q9 b0 S) V- H9 m" {perl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=1234564 [1 _) P# B  [5 K  R
make5 g3 \6 U! h/ C2 q* H" h
make install  T7 [; O! i  i+ F7 E. a
9 m& [2 Z, S6 e% s& A
安装mysql" z$ }  W) y: K% Z- i: S
apt-get install mysql-server mysql-client7 _0 ^- x( J" H8 D& |; A9 L5 t- U
0 ~: p  |$ K/ T3 U
wget http://sourceforge.net/projects/ ... 4b7.tar.gz/download& k6 v4 T3 [; y: Q2 \# Z9 |& S% g2 h
tar zxvf ndoutils‐1.4b7.tar.gz
4 E1 F0 X" \1 _3 n8 ~#cd ndoutils7 {* D% @& E0 S) I& z
./configure  --enable-mysql  --disable-pgsql  --with-mysql-lib=/usr/lib/mysql9 }7 C8 b2 s+ q) {/ P" Y
make3 ?; Z: o5 t# B5 i: z$ W2 d
) m1 W+ A& J8 q$ N% J
建立Nagios数据库2 k6 k% |% g' c" {$ C2 u
Mysql –u root –p   连接数据库4 ?5 q7 b& `* \% J$ a
Create database nagios;  创建Nagios用户
; {- ~% N0 W$ [. u' e  eGrant all on nagios.* to nagios@localhost identified by ‘nagios’   授权nagios用户,密码为 Nagios
  T' g) h4 b. {& T% {
# n. L: C7 B- i7 e- D6 \9 @0 c初始化数据库& j. @$ k+ L# ?- Z, h) z
cd ndoutils‐1.4b7
. ]6 Y  c) k. M8 S4 l1 t7 N* }cd db
1 J- }! P* E3 u. m7 d5 r8 ^./installdb -u root -p 123456 -d nagios( A0 w( e' C" ^2 a! ?5 y
8 f) c. K4 g8 H* o+ ^% K4 Q7 s
cp config/ndomod.cfg /usr/local/nagios/etc  o. S# L% T! d2 J
: M& x" }6 ~* P5 E9 L! x

$ d0 `: V: |6 P4 w
! m6 F3 |2 v) k6 x修改nagios主配置文件 #vi /usr/local/nagios/etc/nagios.cfg 添加以下内容9 q! B& B( J) N
check_external_commands=1
2 Q' C4 S# x2 u# s6 ncommand_check_interval=‐1: k4 A$ N$ W' O- ]/ x4 s
event_broker_options=‐1
8 |# g( _7 k3 g4 I- I/ F! tbroker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg! r/ p4 ^" T. L, i- `
process_performance_data=1        5 ~' G4 e4 X. I
添加的内容至此结束
% x; ?$ o/ L8 d& L, F4 ycd src! A8 x  I  o7 N/ @2 B) j! Q
cp ndomod‐3x.o nod2db‐3x log2ndo file2sock /usr/local/nagios/bin
+ G1 B% |9 g$ |" d* fcp src/ndo2db‐3x /usr/local/nagios/bin/ndo2db3 |3 K1 E4 n1 E% k# L; ?6 u! V( ?  ?
cp config/ndo2db.cfg /usr/local/nagios/etc4 M3 D' r' {; m5 ~. w1 b
cp config/ndomod.cfg /usr/local/nagios/etc
2 k( [) `# W1 Z9 Q2 n  vchmod 774 /usr/local/nagios/bin/ndo*6 ?! I" m+ y, {9 o8 \" K! @; }) i* Q$ A6 D
chown nagios:nagios /usr/local/nagios/bin/ndo*
: l/ ?" T. a- j3 s3 n: h8 |- l' O  H 8 F+ s2 R- v% D6 J; n) ]* F
' F' y9 @2 V8 ]1 p4 f
修改配置文件ndocmd.cfg和ndo2db.cfg,这里我的配置文件内容为:
  }2 S7 H5 k8 u& F3 G! U+ m
; @  q3 o6 |/ x7 l[root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep ‐v '^#'|sed /^$/d# Q9 F, Z$ [: R. u$ B
instance_name=default
3 o3 c' A! X8 q' {/ ^output_type=tcpsocket
% D1 ^9 j3 a7 j8 @& O, G3 Ioutput=127.0.0.1/ F+ @- ]/ _3 {+ @0 I3 s  Q
tcp_port=5668: c% u( M% m; d: a% \3 X2 F  G2 c
output_buffer_items=5000: E7 C/ S& Y: K1 C, `4 W
buffer_file=/usr/local/nagios/var/ndomod.tmp3 ]4 X: H  U) O1 r
file_rotation_interval=14400
8 k- u% y' F4 Y0 N5 k3 [  b% M& A" kfile_rotation_timeout=60
+ X4 p5 f; D: Z3 |/ j" kreconnect_interval=15( `% h7 A+ X5 S0 E9 x* X
reconnect_warning_interval=15
& ]! v/ v  ?- q4 f1 M$ g9 ndata_processing_options=‐1" ~5 l( p* _1 ^* y. d
config_output_options=2
) b- @  e% x5 l- F* G
( U7 E- V8 u' h% V4 y% J 6 J* {# I# ^/ }: d9 }# G: o/ N
[root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep ‐v '^#'|sed /^$/d" r  _/ P6 {; b
ndo2db_user=nagios. I8 e" ^. \. _+ T- I) v
ndo2db_group=nagios2 U: X: ?2 N& X4 d9 a% [) A
socket_type=tcp
: T4 B9 \/ y: n  s# }. Vsocket_name=/usr/local/nagios/var/ndo.sock
: b) B9 }" }- Q: ktcp_port=5668
( T2 K2 \# u& z8 U0 o0 Jdb_servertype=mysql" S. t5 `+ l% n; D2 C
db_host=127.0.0.1& O; q, @. O. A
db_port=3306
3 E2 `& k! e/ ~( b# T5 pdb_name=nagios5 N. e4 H, ~4 ~  j2 O, b
db_prefix=nagios_
3 v: \7 O" U3 D9 g# V9 pdb_user=nagios: @2 [; M9 n/ Y# S+ x7 ?/ ^: n  y
db_pass=nagios; \: E6 e7 H, q$ m2 }
max_timedevents_age=1440/ E6 y& y4 g  q" w+ T" I
max_systemcommands_age=10080
0 ?. }+ G# q+ ~' p' Q& ?. e. Y# W8 hmax_servicechecks_age=100803 Q7 l+ j- g! n- u  q
max_hostchecks_age=10080" i' d" ~/ w- h1 ?
max_eventhandlers_age=44640
  a0 M8 O# f4 R2 u3 X% wdebug_level=1/ r$ i" U- d2 J- k( M" j
debug_verbosity=1
6 n: n1 z2 p. z. U* E  p: V. {debug_file=/usr/local/nagios/var/ndo2db.debug$ D; w+ I/ }- L% f) j# T3 Q/ {
max_debug_file_size=10000007 o9 \$ t7 ^/ @" O2 q, ]4 [! C
   #/usr/local/nagios/bin/ndo2db ‐c /usr/local/nagios/etc/ndo2db.cfg ---------启动ndo2db
. j4 K0 ^4 D1 j: m+ U' t配置完成
* g+ D5 o" C" d$ J) V5 B ' @) k6 H# G4 r
查看系统日志看是否有错误信息。7 E  \. k0 S2 h4 W3 ~0 ~
tail -30 /var/log/messages0 @0 j. x; d+ \: v

0 u# B: R. H) B* \7 O" ^9 u若有mysql_query() 不能插入的错误,即Id问题。& l4 X: @3 d- H
解决问题:mysql> ALTER TABLE ‘nagios_configfilevariables’ DROP INDEX ‘instance_id’ ,; {3 v8 }. A6 e  v7 C2 @
              -> ADD INDEX ‘instance_id’ ( ‘instance_id’ , ‘configfile_id’ );
+ [, N1 v( k' H" \; `( t5 U* N  r
) I2 h7 U8 V; h9 [

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-6-24 13:14:46 | 显示全部楼层
一、NDOUtils安装需求:
3 x% w7 T- ]9 S: c3 J4 F% Z% {  ]) U8 S. F- C
nagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html
0 n3 ?, c4 Z: S! O' d: t/ C7 H9 Z$ G* Q
mysql:源码安装方法:http://www.cnblogs.com/Richardzhu/p/3220883.html
/ n6 N0 x  |9 X2 |% Y+ \) l
4 O& U9 `+ p8 S2 `DBI和DBD-mysql安装方法如下:0 Q8 B0 z6 L: \' S. H" h7 p

2 G8 g' g* f1 S+ ~: Cshell> perl -MCPAN -e shell
7 K: E. ^2 l- ucpan> install DBI
/ {9 [/ |) L) ]5 K. x4 ?: E2 }cpan> install DBD::mysql
8 |. f. |$ w2 k" `1 r 二、关联mysql头文件和库:
7 A$ B8 G) I$ \2 W2 [. ?! ]
) \  A) R, w; E: K3 h. w8 p不做关联可能在config或make时出错6 Q# y$ U: k; U  d

0 H& H3 k: t- }$ p  t  bln -s /app/mysql/include/* /usr/include/' h8 O# T2 r7 c/ b' R' Y  V
ln -s /app/mysql/lib/* /usr/lib/( M0 j/ r$ P3 `/ x! h
! d" m/ v) @2 n7 t) g9 a: o
echo '/usr/lib' >> /etc/ld.so.conf
! Q! H8 B3 q& G4 nldconfig -v
5 Y3 \( M9 i# A+ y' r7 e( I: V三、安装nodutils:
# ^5 R) C4 p0 R5 u/ a' Q9 a& a5 K% _; ]4 y4 p  l4 [
tar zxvf ndoutils-1.4b7.tar.gz
/ a" O( W8 L# p5 [+ hcd ndoutils-1.4b7% I! S: @2 U2 ^& W$ o. {5 `  e. A
./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% O/ s" G& Q" m' W  Z9 c' [
make! M5 }/ q4 N+ A$ F# n! l
四、拷贝文件:
, R  r* c: I6 y% ~# W5 D. x% I2 f4 I1 R7 W7 v$ ^6 K3 N
cp ./src/ndomod-3x.o /usr/local/nagios/bin
  L, v0 \! O# K6 P; c! c/ Icp ./src/ndo2db-3x /usr/local/nagios/bin
2 H$ u5 {  ], j5 j% A3 x, V4 z0 F2 gcp ./src/log2ndo /usr/local/nagios/bin* d3 l8 ]& P8 {
cp ./src/file2sock /usr/local/nagios/bin4 v2 X# _1 j( ~8 ^  ^
chown nagios:nagios /usr/local/nagios/bin/*
2 _8 K; S0 H; A% E' O) B0 o五、拷贝配置文件:
8 @4 }( b, Q5 i0 W# o2 G5 q0 [1 G5 ]
  R; L: h( H/ ~/ B9 mcp ./config/ndo* /usr/local/nagios/etc/2 J3 C* w5 o2 r* M7 U
chown nagios:nagios /usr/local/nagios/etc/*$ d* U5 y. ]/ }) j, M
六、创建ndo的mysql数据库及用户
3 Z. m6 a: J8 _* }6 ]$ i  R7 r
4 |: M. {- X3 I7 u4 n+ \8 _4 ^CREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# d3 l7 [) D! LGRANT select,insert,update,delete ON nagios.* TO nagios@localhost identified by 'nagios';
. u' t, R" }% o+ V: c. mFLUSH PRIVILEGES ;
* r. J# n/ {# I$ s七、导入数据库结构
" g1 }' m2 t; p8 S; j2 `2 u( O8 Q, T$ @$ `. @) Z4 ~* T% S9 j
cd ./db/
8 u# B4 i' W2 R; n./installdb -u root -p 123456 -h localhost -d nagios  J$ d- U# r* f/ ?" D0 p
如果这里root没有密码的话需要进行修改。
; N) [/ U$ P+ z: _八、修改配置文件+ O* E( M( X6 u. ]. g* _6 V

% M: ~# @0 S# s8 `( e复制代码
" s1 x. ~5 w- U+ M; v' S& {vim /usr/local/nagios/etc/ndo2db.cfg6 C. d. N" b  @" u8 C9 R; J# L) G

! T; X: t8 U% d6 Kdb_user=nagios
' p! }. U: l% A& p5 ]( o, @& Zdb_pass=nagios
" h/ V- z4 O* H5 s: nsocket_type=tcp* F: A0 {& |1 H6 B8 j6 r

. \1 p. |) P1 @. `2 ], z* Z: svim /usr/local/nagios/etc/nagios.cfg& x) D4 h( H+ n( q
broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg2 ~' }3 k( @) P5 o; t
4 v. a! U/ X, m$ J; D' ~/ Z; |
vim /usr/local/nagios/etc/ndomod.cfg
6 v6 ~2 `& w# `: R7 R# B; @output_type=file
' u) n5 D$ s* |: E' |output=/usr/local/nagios/var/ndo.dat
: h: _+ j) }, ]+ H复制代码) A4 O" w% x0 }/ r; `0 q
九、启动ndo2db
, l, |, @2 A  T9 f- l* v4 n9 j
2 M' T; v# S$ }  E$ |/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg+ Y$ h! z6 ]/ M
十、重启nagios
  z% H, M, d' P2 Y' [9 a# s1 {; p0 B! M, Q' t: [: g
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg $ l$ t  F2 L/ `5 }' @5 }
service nagios restart3 k& I& z3 P2 i0 B0 @
十一、检查安装是否正确6 R5 N9 D+ q) f5 I! m& j3 X
% `3 [8 u+ {4 S, B/ P& Z: a. O# i/ l
tail -f /usr/local/nagios/var/nagios.log1 f" R. X) {+ L5 v, P8 \* Y: M; R" \
" I+ t# c& w" \* K7 q! l" l
涉及的错误:2 b( g9 a2 O8 j+ t" O

& \/ T4 [9 a3 V. 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
+ `+ l1 k) o$ L, M4 c( t解决办法是使用:mysql -uroot --password="canada" -h192.168.1.97 -e ": I9 @) q' Y% a7 P( b, F
alter table nagios.nagios_configfilevariables drop key instance_id;
9 K: w) ]2 W3 F" d& @, r% Zalter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname); ) ?; m' w- R8 \/ u
. H1 O- {9 Z2 u, ]" R/ t
需要修改表结构。
% @9 C7 d8 w% M% G5 v1 Nalter table nagios.nagios_configfilevariables drop key instance_id;
) Q9 V7 ~, B) X& i7 G- m# D# Talter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);
& D0 O1 |. W  U7 y% y4 o
* r: k( c0 p# z1 Z& R0 v, ctcp连接Mysql /usr/local/nagios/bin/file2sock -s /usr/local/nagios/var/ndo.dat -d localhost -t tcp -p 56688 g( H; m, a6 G# \$ @0 G. y* W6 D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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