易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 4663|回复: 1
收起左侧

读取nagios数据库至mysql数据中

[复制链接]
发表于 2018-6-22 21:10:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?开始注册

x
1,首先需要安装ndoutils以将nagios的数据能导入到mysql数据库中。
# a7 Y2 m1 e9 }        
- l9 U% g: z$ u/ e% C3 E* C         兼容问题:ndo2 1.4b9 换成了 1.4b7就解决没数据问题了。! i+ s& \) w) \: m) p# N

7 c# Z3 V8 ?7 I* V- H' Z! n( w% b确认DBD-mysql包安 装,如没有安装,请先安装。
2 D1 _: f6 J3 p$ S! J/ S如果DBI包没安装DBD-mysql前需要先安装DBI包
8 J% @+ P2 w# ~/ ?& A" L! Ntar xzvf DBI-1.607.tar.gz# A4 i/ y4 {4 _6 v+ |3 m/ q3 r
cd DBI-1.607; o- j& \- T2 R& d# |
perl Makefile.PL
2 b) k* T! f4 _. ]: K. smake: h$ Q, v0 E% ]; _9 D& t
make install
, t# d0 S* _0 A( Z 3 }- z! i, @1 J& X- a
tar xzvf DBD-mysql-3.0008.tar.gz
! E. Q  \+ F  r& }4 j, x' Icd DBD-mysql-3.0008
) W5 B# N) n* Q3 J/ v5 v; z0 L# ~unset LANG; x: C  \4 B* i
perl Makefile.PL --testhost=127.0.0.1 --testuser=root --testpassword=123456
9 }; V9 z' n3 Y  q$ K  A5 I3 Qmake0 ?; I2 A8 D' m5 [+ ^
make install9 ]- s( Q, c9 y6 @( q! X6 J" X4 {
2 L2 k: ^# w0 s5 M
安装mysql
1 y; G( O( S# M9 C7 }5 c& Napt-get install mysql-server mysql-client
* p- X9 r0 Y& N9 m( h( m4 E
/ W3 w" z0 ]/ E) K& bwget http://sourceforge.net/projects/ ... 4b7.tar.gz/download+ J& _4 a5 a# n( G1 {
tar zxvf ndoutils‐1.4b7.tar.gz- f' L+ c( E0 U- p4 L. h1 g; e1 e
#cd ndoutils
& Z& K6 {6 G3 |) m4 u./configure  --enable-mysql  --disable-pgsql  --with-mysql-lib=/usr/lib/mysql
  k) _& v- M( e; D' C8 {3 Emake
. Y, j) U3 B9 k6 l" ^' Z  E & Z7 A$ i' {* X$ p
建立Nagios数据库
8 x: I: f& i! X7 w. fMysql –u root –p   连接数据库' R9 a6 G5 {7 g6 n% [" k# e
Create database nagios;  创建Nagios用户$ ?3 F& M! ?+ N: Q; B6 C
Grant all on nagios.* to nagios@localhost identified by ‘nagios’   授权nagios用户,密码为 Nagios
2 j) F+ ?" m8 Y& \ ! U3 @2 @  l9 \
初始化数据库
$ @# w5 L) x3 F+ Gcd ndoutils‐1.4b71 W7 T. A8 D, ^! k
cd db
9 j4 S6 G/ }& B./installdb -u root -p 123456 -d nagios9 W, V3 c' G, A/ ^4 h8 ]0 i5 a/ G

3 [2 t4 M, T3 N  F3 ], P6 Qcp config/ndomod.cfg /usr/local/nagios/etc
0 `+ G/ b7 @+ v. Q4 r; V
* ~5 @1 s) P; I1 z# }* B
/ G" W4 W6 W' A0 }. K9 O; ^) F+ O) Q * P$ C+ X# }- ^* ?' K1 N
修改nagios主配置文件 #vi /usr/local/nagios/etc/nagios.cfg 添加以下内容
2 A7 j# k1 {; b: w  pcheck_external_commands=1, ~) S, r9 \% l( z
command_check_interval=‐1; v3 j4 W: V/ r) o) d' y% W5 p
event_broker_options=‐11 w" o# U% y1 z* e, m7 Q; t1 q% y
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
6 v/ q4 `$ p  ~) w0 R& ?process_performance_data=1        7 D7 D' o+ K9 f! C  [# \
添加的内容至此结束. t- g, P; @# Z9 z4 r
cd src
, K1 P$ e! v9 S" p! ycp ndomod‐3x.o nod2db‐3x log2ndo file2sock /usr/local/nagios/bin4 c6 x9 ?7 E9 J2 E( H7 l
cp src/ndo2db‐3x /usr/local/nagios/bin/ndo2db
: {- Q. G; `& }! Fcp config/ndo2db.cfg /usr/local/nagios/etc, l) d- Y, r. b/ x) F. _
cp config/ndomod.cfg /usr/local/nagios/etc/ \& b9 S& q7 B* R
chmod 774 /usr/local/nagios/bin/ndo*% Q( r! H8 t8 I2 }$ C" ~9 @
chown nagios:nagios /usr/local/nagios/bin/ndo*
. j9 n+ c7 o  C
1 G/ D# {& @& M. L% C2 K
5 N7 P' |' ?  k  n1 @7 H2 k修改配置文件ndocmd.cfg和ndo2db.cfg,这里我的配置文件内容为:
. n) L% c8 l& N% G
% J4 S8 [8 r9 f1 T[root@localhost downloads]# cat /usr/local/nagios/etc/ndomod.cfg |grep ‐v '^#'|sed /^$/d" y6 |, l1 G2 Y- @
instance_name=default
8 x( X- G- [9 ]: s+ e. c; Routput_type=tcpsocket
2 x" Y( \" X  ]output=127.0.0.1
0 A0 S6 o9 k' M5 d3 J$ htcp_port=5668% [; `) a+ m$ R* A% m! v* ^. C
output_buffer_items=5000. v+ s# W7 @1 }, R& ^
buffer_file=/usr/local/nagios/var/ndomod.tmp& ^0 \! E/ n, Y" ~
file_rotation_interval=14400
8 y/ Q9 w9 k0 W0 ~  _( i0 t' bfile_rotation_timeout=60  r) h8 {0 I& m- X. Y( U$ T
reconnect_interval=158 G  P. {  g! ~' ~# s
reconnect_warning_interval=15+ A* `: V* \+ M1 B8 s/ V# H# G
data_processing_options=‐1
8 m- |$ K. |( E! b. x' f2 nconfig_output_options=2. m) z$ v' t. A+ y$ y. f% x
  N* x2 b( J: q( z- z" \3 f

$ a0 s. g7 v7 p5 K$ d[root@localhost downloads]# cat /usr/local/nagios/etc/ndo2db.cfg |grep ‐v '^#'|sed /^$/d
; u' J* J% B; Indo2db_user=nagios
$ Z! }' W3 y' L" V) c1 Ondo2db_group=nagios
# R6 ]; Y! P  ~2 u5 R  N/ m, Vsocket_type=tcp
& |0 j5 B! h" k# V- H% Q4 |socket_name=/usr/local/nagios/var/ndo.sock7 N  a4 @  ~) u
tcp_port=5668
$ N, t  m, L' S! ddb_servertype=mysql9 o% |- _  d# ]' i& T- Q
db_host=127.0.0.1$ L# R5 z# H) v4 P4 R0 L
db_port=3306
) c' v% A4 T7 e0 d1 v' y5 Gdb_name=nagios
! s3 D2 {0 i) U9 Xdb_prefix=nagios_6 Z7 m# q. ?( h% E" h
db_user=nagios2 M9 Q/ X3 X8 J. Y3 s
db_pass=nagios
4 d. k7 P' O" Z9 x$ X7 [; d: ]! ]& Gmax_timedevents_age=1440% `6 O: ]9 p; Z7 E3 n; A
max_systemcommands_age=10080
1 V) b7 ]* C2 v' \max_servicechecks_age=100808 d* b8 O: D, z3 X
max_hostchecks_age=100807 @! D2 \/ J. W
max_eventhandlers_age=446401 T1 z6 \: e6 H4 b
debug_level=1
9 R. j: C1 k( z- l4 r0 Wdebug_verbosity=1& x- _& x+ i' t  Q
debug_file=/usr/local/nagios/var/ndo2db.debug) E8 d- e2 f8 G
max_debug_file_size=1000000; a, D0 D6 g5 d8 k- n
   #/usr/local/nagios/bin/ndo2db ‐c /usr/local/nagios/etc/ndo2db.cfg ---------启动ndo2db2 ]" X& e& A) M5 f1 q
配置完成: d7 ?# c0 v0 C- h
8 x' Z# m+ T( b0 N# E2 u5 {
查看系统日志看是否有错误信息。
- o" ]" e! y8 C) A" G1 {% ftail -30 /var/log/messages5 m, c% _. M: i# ^7 a: u" W2 c! m

5 R! o% Q% E- C- c& H+ i7 `若有mysql_query() 不能插入的错误,即Id问题。2 Q1 V6 Q  Q; L
解决问题:mysql> ALTER TABLE ‘nagios_configfilevariables’ DROP INDEX ‘instance_id’ ,0 X6 l8 ?& q& y% S
              -> ADD INDEX ‘instance_id’ ( ‘instance_id’ , ‘configfile_id’ );
( q; T, q5 r4 j+ G: Y1 t$ A: M7 u1 n4 C
 楼主| 发表于 2018-6-24 13:14:46 | 显示全部楼层
一、NDOUtils安装需求:3 j5 C) b' T9 Y- b. C. W
( g, U0 }" ~% S
nagios:安装方法:http://www.cnblogs.com/Richardzhu/p/3340638.html3 U/ L! @9 Z( c* y6 e; d9 n

8 X, Q" i) K+ w& D: z0 emysql:源码安装方法:http://www.cnblogs.com/Richardzhu/p/3220883.html, `) n% [% ~& B2 s2 y/ [( D4 E* f

! l: v, r) l+ u; {$ {6 A# RDBI和DBD-mysql安装方法如下:) c6 t9 Z% q- Z

) k* `8 a5 D9 l! w( Sshell> perl -MCPAN -e shell
$ M9 i- I4 o( {cpan> install DBI * b5 W8 @1 _4 c. ]4 m" K: s, \/ e
cpan> install DBD::mysql
/ j+ @6 p% n* r3 y+ r8 ?, V! X 二、关联mysql头文件和库:* K5 t4 O# b7 y1 w, T

: ]2 x; @6 D% N不做关联可能在config或make时出错
6 F9 X; E( t- R7 A% [. l5 g# }0 [, s9 O7 J' y4 J
ln -s /app/mysql/include/* /usr/include/
5 ~+ K& C1 n5 ~. L/ W* Y7 M8 xln -s /app/mysql/lib/* /usr/lib/7 u" ]; [! W+ [# C- A* ?

5 I, ?  O* F$ p% vecho '/usr/lib' >> /etc/ld.so.conf( c+ D8 X  _* G# G# |# p0 \- G% I' g
ldconfig -v
  Z( c/ }/ b1 d7 U2 _0 M2 X5 H三、安装nodutils:
8 _) P- L* Y$ h+ P1 b" ]7 q6 i6 o7 n0 w3 ~4 i( d
tar zxvf ndoutils-1.4b7.tar.gz
% ?, ?5 y* ?# Q; Ucd ndoutils-1.4b7
0 Z* d! J$ ]; H: P& x6 ~./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" X4 Y/ {3 v/ j' w8 v4 V3 r
make. d: x/ u- J  \6 A, g# q
四、拷贝文件:- H# `* |" _  y/ w
. U2 d: ?# L' b  a6 [  M
cp ./src/ndomod-3x.o /usr/local/nagios/bin: j5 ^# B" Q1 m; `; n
cp ./src/ndo2db-3x /usr/local/nagios/bin
/ i' @' B0 {# fcp ./src/log2ndo /usr/local/nagios/bin; o- [) i! D9 ^+ G. _. A2 C
cp ./src/file2sock /usr/local/nagios/bin  X) m" o4 X$ V+ ^
chown nagios:nagios /usr/local/nagios/bin/*  d. U" \" T2 a) r
五、拷贝配置文件:
) T9 Q0 i/ e! _$ s" ]7 C9 m7 k  j+ Q1 m2 f0 Z% {  e; ]( M
cp ./config/ndo* /usr/local/nagios/etc/2 i. S( y, v  [
chown nagios:nagios /usr/local/nagios/etc/*, {9 r+ t/ v2 n+ [" r
六、创建ndo的mysql数据库及用户3 d% Z8 {! r2 P  L

% v$ C  K" E0 y" w* y- e7 FCREATE DATABASE `nagios` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
2 _0 B% y( I+ V6 l9 i$ Z# _/ y2 iGRANT select,insert,update,delete ON nagios.* TO nagios@localhost identified by 'nagios';
( V' ?( b! W0 _( XFLUSH PRIVILEGES ;
' }# F; ~( A9 b% f; U七、导入数据库结构9 H" @/ h, d& t% Q

1 L1 p+ @4 F, Acd ./db/5 \; f2 f" S8 K# k
./installdb -u root -p 123456 -h localhost -d nagios
$ r, D( f6 [' V' t/ I如果这里root没有密码的话需要进行修改。
4 V# `" S5 v) e( s' ~" |. q1 }八、修改配置文件$ e; X0 s) Q# P* A9 g7 P" w
9 p$ V7 x, Q1 s& }/ E
复制代码
7 Y5 C/ p4 ~8 t' |vim /usr/local/nagios/etc/ndo2db.cfg
* n7 [2 u" `" f
8 F- |8 I( [5 p0 qdb_user=nagios
& U0 o( `1 h; }) J  R# _db_pass=nagios. e, p; n9 ]: j7 h3 e
socket_type=tcp. ]7 X0 h. X' c5 `

/ l8 ]1 g1 h) O$ n- Gvim /usr/local/nagios/etc/nagios.cfg
8 X4 L: }4 O" U- Tbroker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
: \, b  X5 x! I! u7 K8 C6 |: u( r( m; R4 u1 V
vim /usr/local/nagios/etc/ndomod.cfg
# c- e! H' c9 o/ Y' ~3 xoutput_type=file/ I2 R& g* {$ O
output=/usr/local/nagios/var/ndo.dat+ `( R4 ]; Y# e
复制代码
8 q) m3 m0 c0 M# @# I) S+ T0 [九、启动ndo2db- K$ }/ h$ f3 H: X. g: O3 C

+ P+ T( n+ T  F  u4 e$ Q/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg0 A5 J8 Z8 q' t2 j9 q
十、重启nagios
6 K( J+ w) ]0 I. J. x0 F* I/ T7 W3 ^0 R5 o8 @! R' Q
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg : C$ d) Q& i- V% k8 p( C
service nagios restart% _8 j) z% f% J6 P! [3 U3 \- \& I
十一、检查安装是否正确( Y4 {! U! `  _

0 H9 ]+ i! e; z9 y. y2 ltail -f /usr/local/nagios/var/nagios.log1 L! E5 \2 ~' O& O; @
- p8 y( E  F- K+ ~+ n
涉及的错误:% B* T- o" ~+ N8 V

* \& ~7 p( e: D4 R2 {; `启动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 : K5 N( t' G' f$ e* l( p% [
解决办法是使用:mysql -uroot --password="canada" -h192.168.1.97 -e "  W& D; V' [  N4 @
alter table nagios.nagios_configfilevariables drop key instance_id;8 I6 f4 r* x3 b5 _6 h- M: w/ Q8 _
alter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);
, l1 E. r0 r# y! Q8 R6 C
9 Z) h. \7 h1 h: P5 u% T( Q/ t需要修改表结构。
2 w0 M% N1 z1 X0 ~) ]+ Malter table nagios.nagios_configfilevariables drop key instance_id;
( G' ~2 J# d* K' x* talter table nagios.nagios_configfilevariables add index (instance_id, configfile_id, varname);
# y$ J  Q6 C5 `, s( K# ]" d& r6 b. s4 B; u* q& t# U4 t
tcp连接Mysql /usr/local/nagios/bin/file2sock -s /usr/local/nagios/var/ndo.dat -d localhost -t tcp -p 5668; X& s+ C$ U8 |7 y/ B1 W' u
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-8 23:52 , Processed in 0.041716 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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