panjianm 发表于 2019-1-13 09:53:12

Nagios监控之4:NDOUtils安装

  NDOUtils插件实现将检测收集到的数据存储到MySQL数据库中进行管理,可选这不安装。它是基于Nagios正确安装的基础上进行的,Nagios的安装请移步到前面文章.
  1.依赖包检测
  #rpm -q mysql mysql-server mysql-devel

  #yum install mysql mysql-server mysql-devel
  2.编译安装
  #tar xzf ndoutils-2.0.0.tar
  #./configure \
  --prefix=/usr/local/nagios \
  --enable-mysql \
  --disable-pgsql
  默认情况下会自动寻找mysql信息,如果失败可以手动指定但要注意:
  版本在2.0.0上用--with-mysql=/usr/bin/mysql_config来完成;
  如果版本在2.0.0以前的需要明确指定mysql信息的用
  --with-mysql-lib=/usr/lib \
  --with-mysql-inc=/usr/include
  #make
  (这里用make不用使用make install了)
  3.服务配置
  3.1 配置ndomod代理模块
  注意:
  ndomod模块具有Nagios 2.x和Nagios 3.x ....多个版本,具体根据使用的Nagios来用(我这里nagios-3.3.1的):
  ndomod-2x.o = NDOMOD module for Nagios 2.x
  ndomod-3x.o = NDOMOD module for Nagios 3.x
  #cp -v src/ndomod-3x.0/usr/local/nagios/bin/
  #chown nagios.nagios /usr/local/nagios/bin/ndomod-3x.0
  #cp -v config/ndomod.cfg-sample/usr/local/nagios/etc/ndomod.cfg
  #chown nagios.nagios /usr/local/nagios/etc/ndomod.cfg
  3.2 修改nagios配置文件
  (通常在/usr/local/nagios/etc/nagios.cfg)。
  broker_module=/usr/local/nagios/bin/ndomod-3x.o
  config_file=/usr/local/nagios/etc/ndomod.cfg
  (这两个在一行上,分两行Nagios就起不来了)
  //为Nagios开启event broker
  event_broker_options=-1
  # cp -v src/{file2sock,log2ndo} /usr/local/nagios/bin
  #chown nagios.nagios /usr/local/nagios/bin/{file2sock,log2ndo}
  3.3 配置NDO2DB
  NDO2DB daemon也模块具有Nagios 2.x和Nagios 3.x ....多个版本,具体根据使用的Nagios来用(我这里nagios-3.3.1的):
  ndomod-2x.o = NDO2DB module for Nagios 2.x
  ndomod-3x.o = NDO2DB module for Nagios 3.x
  # cp -v src/ndo2db-3x /usr/local/nagios/bin/
  # chown nagios.nagios /usr/local/nagios/bin/ndo2db-3x
  # cp -v config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
  # chown nagios.nagios /usr/local/nagios/etc/ndo2db.cfg
  3.4 修改NDOUtils配置文件ndo2db.cfg,这里主要修改数据库名、用户名和密码(db_name、db_user、db_pass),将其设置成我们之前在安装MySql时创建的数据库和用户。其余保持默认配置即可。
  #vi /usr/local/nagios/etc/ndo2db.cfg
  socket_type=tcp
  db_servertype=mysql
  db_host=localhost
  db_port=3306
  db_prefix=nagios_
  db_name=nagiosdb
  db_user=ndouser
  db_pass=123456
  注意:
  i) 以上"db_"开头的选项用来指定连接数据库的属性;
  ii)其默认用来接收数据的方式为Unix域套接字,这里修改成了TCP套接字;同时,ndomod.cfg配置文件中指定的输出方式也应该做相应的修改;
  3.5 为NDOUtils创建数据库
  # mysql -uroot -p
  mysql> create database nagiosdb;
  mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON nagiosdb.* TO ndouser@localhost IDENTIFIED BY '123456';
  mysql> flush privileges;
  生成ndoutils所需要的数据库表等,这些表默认以“nagios_”为前缀;install脚本命令必须在db子目录内执行:
  # cd db
  # ./installdb -u ndouser -p 123456 -h localhost -d ndodb
  (如果出现error 1142 (42000)错误是因为权限不足导致,改用root来执行就可以了)
  说明:
  其中各选项的意义如下:
  -u用来指定导入时所用的mysql用户帐号
  -p表示前面mysql用户的密码
  -h表示mysql服务器地址,如果是localhost,则可以省略
  -d表示目标数据库
  如果与cacti整合的话,npc插件会在cacti的数据库自动生成ndoutils所需要表,这些表均以“npc_”为前缀。
  3.6 编辑ndomod的配置文件,为其指定数据的输出方式和输出目标主机
  # vi /usr/local/nagios/etc/ndomod.cfg
  output_type=tcpsocket
  output=127.0.0.1
  4.启动ndo2db守护进程
  # /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
  建议此时查看系统日志(/var/log/messages)中是否有错误出现。
  如果此时Nagios进程已启动,则需要停止并重新启动nagios,(必要时要用kill)还必须删除/usr/local/nagios/var下的ndo.sock,否则下次NDOUtils不能正常启动。
  # killall -SIGHUP nagios
  # rm -f /usr/local/nagios/var/nagios.lock
  # /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
  说明:
  i)此处停止Nagios必须通过向Nagios发送SIGHUP信号的方式进行;
  ii)建议此时查看nagios日志文件中是否表明ndomod的模块加载是否正常,以及其是否能正常连接到data sink;查看日志,可以使用如下命令实现:
  # tail -30 /usr/local/nagios/var/nagios.log
  鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!



页: [1]
查看完整版本: Nagios监控之4:NDOUtils安装