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

读取nagios数据库至mysql数据中

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2018-6-22 21:10:54 | 显示全部楼层 |阅读模式
1,首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。
2 X" b: H* L4 N  V6 U" Q        
0 |; |) ^5 c5 h) c! x         兼容问题:ndo2 1.4b9 换成了 1.4b7就解决没数据问题了。4 S% ?8 c1 R$ o4 \  `6 x
7 n0 A6 O1 @4 Q8 Q8 R
确认DBD-mysql包安 装,如没有安装,请先安装。
% U$ v% z$ _# ?" C2 P$ Y% K如果DBI包没安装DBD-mysql前需要先安装DBI包
; f0 h9 c( }( Ntar xzvf DBI-1.607.tar.gz0 }+ K7 Q, ?1 P/ H7 q
cd DBI-1.607: k8 F1 p' w0 V( y  M6 @
perl Makefile.PL
4 r# g! c/ ]8 M2 K; n' ?make: z! R* ?4 ^* l& k; R  T
make install
  E% C' z; _7 X * p, `% m3 `- ]" h! J% N- T
tar xzvf DBD-mysql-3.0008.tar.gz
7 z- m+ ^# v' J5 w) N! K" e+ `cd DBD-mysql-3.0008
' c% r- t4 l- j8 q. Wunset LANG
: g' L4 d2 ^2 ^; C+ z# Jperl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=123456
7 L8 o2 `) n# P' e& _4 u% hmake7 y- {% K1 e0 I2 b& N, Z' Y
make install
1 N" c) F% v1 {" i0 x% ~ ) x2 h" k* p: K1 l0 T4 P
安装mysql
1 V  ^0 ^5 e; f% o2 e/ R# Papt-get install mysql-server mysql-client4 {" O) C+ Z. f" ]7 u8 f4 e$ t
8 B# x6 g0 j3 X( v5 w: G# q; e! I
wget http://sourceforge.net/projects/ ... 4b7.tar.gz/download: f& S/ ?  [' A  a' H' V% H' q( I1 ^
tar zxvf ndoutils‐1.4b7.tar.gz
  B) }1 z2 E4 C6 h8 }#cd ndoutils
3 n4 [% l2 l$ H5 H4 k! A6 q, W./configure  --enable-mysql  --disable-pgsql  --with-mysql-lib=/usr/lib/mysql; E+ Y7 U  b; @- C
make
8 i" o& C8 L$ |$ {4 B 1 ^9 z) ]9 f. @9 f
建立Nagios数据库
, g: Y" E) r5 F% PMysql –u root –p   连接数据库0 g; D2 M9 l6 j/ g1 ~8 J
Create database nagios;  创建Nagios用户
! B( N* D) w% Y+ ?$ o, IGrant all on nagios.* to nagios@localhost identified by ‘nagios’   授权nagios用户,密码为 Nagios" ]9 |( R3 R5 |9 S" G( P& f* K

. n  o9 B" R( w( n( K" K( q: Z3 V9 X初始化数据库
! ~  E& d' R+ @* dcd ndoutils‐1.4b7
# A7 Y) i+ I" J0 Pcd db+ i- S# e8 }. |/ Y' L7 \
./installdb -u root -p 123456 -d nagios; i9 ^7 ~2 d) T" O

9 n( s3 T9 N& O  t% Xcp config/ndomod.cfg /usr/local/nagios/etc7 J7 w% A- Q4 q2 ^7 g8 X
  K! Y  e& Q& A6 J
. x& |) w/ v3 P, i' C2 U

$ x) ]$ h3 S) o7 Y" w修改nagios主配置文件 #vi /usr/local/nagios/etc/nagios.cfg 添加以下内容
: i1 ^0 }/ C! F+ Bcheck_external_commands=1
  j) }+ `  u, B5 G5 h: Ccommand_check_interval=‐1
* ~( p- h  D$ s& h' J3 J0 {event_broker_options=‐1
+ Y2 t1 H7 o$ ?* d  L4 u: Kbroker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg' T& A0 `2 z: h7 I) D0 l: b" b+ u
process_performance_data=1        & d: E3 z1 V# ~8 W; S/ Y) o
添加的内容至此结束2 |6 l  h) q1 d' W" J) h
cd src" a0 N) w2 I- J8 c) S
cp ndomod‐3x.o nod2db‐3x log2ndo file2sock /usr/local/nagios/bin' A0 T8 X/ e% G
cp src/ndo2db‐3x /usr/local/nagios/bin/ndo2db
0 j  S" J2 u0 m' d$ Lcp config/ndo2db.cfg /usr/local/nagios/etc2 b+ t+ V. Z6 |/ Z" x: F' L
cp config/ndomod.cfg /usr/local/nagios/etc, a( F3 \+ I! i( i2 a! t. @  |; i* p
chmod 774 /usr/local/nagios/bin/ndo*. G5 y5 ^+ Q( L/ F7 b
chown nagios:nagios /usr/local/nagios/bin/ndo*
0 w: [: U4 i. K$ J - X$ E+ v( [) u% y

$ j8 D& a  ]8 I修改配置文件ndocmd.cfg和ndo2db.cfg,这里我的配置文件内容为:4 M% o: G. u- j/ M8 `
1 S2 x7 Q+ g- h* e: i/ H" |
[root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep ‐v '^#'|sed /^$/d
# n5 {7 `$ H/ t( r# I# l1 Zinstance_name=default! r; Y8 W/ H6 E$ Z! r1 M) ^  N8 x
output_type=tcpsocket
6 E0 o: L0 Y& I+ P" R% Zoutput=127.0.0.1
2 f3 A2 p: f  z0 J& ktcp_port=56684 Q( j1 l% @4 M
output_buffer_items=5000. z* ?' s8 x' V1 k% D" G
buffer_file=/usr/local/nagios/var/ndomod.tmp
5 ~6 n# e: T0 X1 {  vfile_rotation_interval=14400; u1 e% }, @- n7 M  L4 g
file_rotation_timeout=60' v8 I) U$ [3 Q% _5 P
reconnect_interval=153 u: c, U2 W2 r  z* {, b
reconnect_warning_interval=15
# `; D3 }" v* i9 z9 }7 p" \3 J! Gdata_processing_options=‐1+ R: o3 W* a9 G' X  w# ~8 _" Q
config_output_options=2+ s5 V0 Q$ u1 M  O( \+ t" v* R

, t2 {1 P7 ^1 _% z) ` 2 ]9 r7 A. D0 U! a, F. w
[root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep ‐v '^#'|sed /^$/d
4 y9 M* ?2 E/ Y8 l  lndo2db_user=nagios
- D) S$ ~* z9 R, S) K% zndo2db_group=nagios
) I0 r9 R* G# Rsocket_type=tcp
+ p- s) `. J$ }7 ksocket_name=/usr/local/nagios/var/ndo.sock
4 f* d( Z8 R3 S6 l; K; b  z; stcp_port=5668
' j  J( {9 ^0 _2 K& Edb_servertype=mysql
, l- Y9 u4 K: Jdb_host=127.0.0.1: U, x# v" q& n& [! C0 F
db_port=3306
: t9 c* h" C" k4 \1 J' Edb_name=nagios
3 H/ Z" i  y1 @- q8 U4 e8 g" e$ ^( ydb_prefix=nagios_
8 r6 K3 Z- `+ q5 r6 ldb_user=nagios- A' F, B/ w' N" i& x5 p6 l
db_pass=nagios) B' F4 Z+ d7 I! d4 p+ X4 N  p; P! R
max_timedevents_age=14400 x" d+ A: i" ~- m( `) B) E
max_systemcommands_age=10080
, u' v/ l) q* r8 u7 H: H9 ~% `max_servicechecks_age=10080
  R$ D1 s9 U2 a) c3 ^# gmax_hostchecks_age=10080
2 j: q( a  p; U( t! Xmax_eventhandlers_age=44640
5 \; s6 p! h, `$ J% j7 Gdebug_level=1
2 E1 {) B$ Q! M; ~' |* }, T) f3 e; Jdebug_verbosity=1
  h- r7 o. _9 ?8 Z; Cdebug_file=/usr/local/nagios/var/ndo2db.debug2 x- i* y7 N: O% D" _& v. {
max_debug_file_size=1000000# i, y* w! L( O' ?
   #/usr/local/nagios/bin/ndo2db ‐c /usr/local/nagios/etc/ndo2db.cfg ---------启动ndo2db
+ a0 p3 s( T. Q' _' \配置完成; Y$ ^4 {( k( q% V# \: n
6 V3 K3 {! X! h9 {
查看系统日志看是否有错误信息。/ A% Z6 W1 W2 c" l& x
tail -30 /var/log/messages
" Q+ ]- v9 t; J5 F- U! [/ V' f - l0 d$ q1 m  s4 ]
若有mysql_query() 不能插入的错误,即Id问题。7 Q* d- e& ^& r
解决问题:mysql> ALTER TABLE ‘nagios_configfilevariables’ DROP INDEX ‘instance_id’ ,# K0 @4 O3 p& O, B
              -> ADD INDEX ‘instance_id’ ( ‘instance_id’ , ‘configfile_id’ );. z( `! d% T0 p- n
2 J) h# B! T% S/ i. i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2018-6-24 13:14:46 | 显示全部楼层
一、NDOUtils安装需求:, S6 x& H1 {+ P7 ^9 S5 i

# a1 t1 F& O* I5 u& U3 X. o2 s. o  Onagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html
1 D* B, n, ]' Z/ }& o9 p7 u3 B
8 F! S- e. O0 X8 t5 dmysql:源码安装方法:http://www.cnblogs.com/Richardzhu/p/3220883.html
, @% j2 C1 q9 O* Y8 t8 [$ R+ l5 W2 d# S
DBI和DBD-mysql安装方法如下:' }' O7 L# q3 W* l5 \4 M. z
4 s/ n7 b) s/ j
shell> perl -MCPAN -e shell ( d, {% N1 x' A2 X! \9 Z
cpan> install DBI
' J9 b4 r' ^0 x3 _% ?4 ocpan> install DBD::mysql
8 \( P( P, ]( {7 k& L/ i& A# p 二、关联mysql头文件和库:7 P; H& [4 S+ E$ t) m7 c1 T0 T

9 }0 {6 u8 z4 H不做关联可能在config或make时出错. E1 A" b5 s/ `0 U( t
# q. u. Q" l/ l% _3 M' F4 D
ln -s /app/mysql/include/* /usr/include/
0 F, {7 N$ l0 }& A* i3 Bln -s /app/mysql/lib/* /usr/lib/) C( u3 c- E7 @/ P" w

* h7 ]! @/ M; D0 z1 Xecho '/usr/lib' >> /etc/ld.so.conf
  ]5 f7 C& a; l  r" s0 }ldconfig -v
! v: k9 z0 `! l# G/ @; X5 q; Q三、安装nodutils:
7 i/ `+ F, A* {
" _/ z7 g& u3 {' \5 n1 ftar zxvf ndoutils-1.4b7.tar.gz
' V8 F1 t/ C" i9 e) |cd ndoutils-1.4b7* L9 t! e7 S' Q# E
./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
5 V: U3 o# A  g( U6 G( ymake
/ z# A, K/ q8 y四、拷贝文件:
, p& M4 G# R; V! r
, w  e" c5 U. `* g1 tcp ./src/ndomod-3x.o /usr/local/nagios/bin
, N& K% V; Z6 z- g7 D5 f3 g+ `cp ./src/ndo2db-3x /usr/local/nagios/bin
# B7 W  v5 q% s( Vcp ./src/log2ndo /usr/local/nagios/bin5 A2 Q% O/ ^' H& a
cp ./src/file2sock /usr/local/nagios/bin; [0 u' n. L7 i$ H  a& |5 h
chown nagios:nagios /usr/local/nagios/bin/*
3 E" }' z9 ^# A, t五、拷贝配置文件:& [& O! d( d' A% Y

( v) y; G9 W, q3 w: c+ g) acp ./config/ndo* /usr/local/nagios/etc/5 h: e; p. d; S- y
chown nagios:nagios /usr/local/nagios/etc/*
& \, {' d# }/ T7 q六、创建ndo的mysql数据库及用户/ s6 Z* S  B' ]" M+ n) b4 D/ y7 b

2 {$ T2 h1 `4 p6 F7 I. p9 G% TCREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
7 {' Y( T" J% ]9 x$ q. SGRANT select,insert,update,delete ON nagios.* TO nagios@localhost identified by 'nagios';6 w) ?( x. w$ w4 A( N2 W5 P
FLUSH PRIVILEGES ;! w" f/ U* J8 G; p7 J
七、导入数据库结构
( e% @# `+ f! p# B! k/ P% D- j
6 T% `( }$ i3 Q" @cd ./db/5 I6 b" i4 W9 F" O. m* |
./installdb -u root -p 123456 -h localhost -d nagios' N" ]$ ?' |4 X1 ^/ m
如果这里root没有密码的话需要进行修改。
3 ~7 b* N1 [2 w$ g* P八、修改配置文件6 b/ \4 b; ?7 l+ E9 Y/ e- V
! j9 [" b' a4 W& n
复制代码( G/ E' P% A. L: \' C1 X8 U
vim /usr/local/nagios/etc/ndo2db.cfg3 `0 Z/ R0 S- t8 x

0 y% L* ~9 Z  K8 C% I, [db_user=nagios/ f: V& a8 V  W8 y" J3 k# v) G& J$ m4 E
db_pass=nagios& Y5 D) [* x/ V: U. a
socket_type=tcp, N+ f3 S& S4 H. Y5 B0 a

! z5 ~# U2 x- n. E0 dvim /usr/local/nagios/etc/nagios.cfg
; K' }- {- v1 ^$ \3 ]; y4 P3 g" h" Ibroker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg1 G5 |5 P( L$ Y) \! a

7 W4 y. x7 l( h+ {* j6 }vim /usr/local/nagios/etc/ndomod.cfg! k+ c/ a/ A$ s  W
output_type=file
' J! }4 e5 U4 b9 o2 h' M8 ^output=/usr/local/nagios/var/ndo.dat
. C! W' z, m" ?% x" Q; f复制代码' Q9 G" z1 X+ S4 j, R( H
九、启动ndo2db
( A  U8 y+ P- [# G
7 \4 S, ~6 y% D1 C6 @7 o% x/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
( L; i; Z( r8 X' ^$ O  G+ l' A: ?十、重启nagios
, j1 J% N  X8 x. Z$ P
# L. i" T/ a( F* {( u7 Y/ ? /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
" j3 z3 O2 D1 d/ x% dservice nagios restart
" T6 V+ G  F7 ]十一、检查安装是否正确
  I9 n8 K7 L# Y; d; e' |
$ E& S* s; s5 f! }3 Ptail -f /usr/local/nagios/var/nagios.log
: J# j, h5 Z! j$ A5 x2 O0 ]8 m, _) u) I
涉及的错误:) I; K3 R& @* Z; C5 n3 i. m* t

3 {6 O$ x6 x* i3 k; y启动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 $ y5 F6 q2 H8 Y* p1 R8 e
解决办法是使用:mysql -uroot --password="canada" -h192.168.1.97 -e "
$ Y& ?& T- T. g4 w3 n! \alter table nagios.nagios_configfilevariables drop key instance_id;/ }8 Q4 D/ x0 S) A( I4 F
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);
! \6 q# a8 I( B5 r! `
: q$ H  R3 C3 H! X5 q. d% M2 t9 l1 G需要修改表结构。
- \# s, K; `1 A; W) d1 Ralter table nagios.nagios_configfilevariables drop key instance_id; 7 \0 u2 A8 S/ W# u; W  N
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);1 A5 `( i4 E% N( m: z$ C6 P
/ w: g2 Q2 i4 ^+ A
tcp连接Mysql /usr/local/nagios/bin/file2sock -s /usr/local/nagios/var/ndo.dat -d localhost -t tcp -p 5668
; @9 t; e4 n$ z5 B9 Y* \6 @
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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