ndoutils 插件

  • 版本 2.x

  • NDOMOD

    • 接收 Program Logic、Frogram Data 数据, 或者监控信息,输出到: 标准文件、Unix 域套接字或者 TCP 套接字
  • NDO2DB

    • NDO2DB 进程将创建一个 TCP 套接字 或 Unix 域套接字以监听客户端, 接收来自 NDOMOD、LOG2NDO 的数据源,并保存到数据库中
  • LOG2NDO

    • 用来将 Nagios 的历史日志通过 NDO2DB 进程输出至数据库, 通讯方式是: 标准文件、Unix 域套接字或者 TCP 套接字
  • FILE2SOCK

    • 标准文件或标准输入 读取数据, 并输出至 Unix 域套接字或 TCP 套接字
    • 当 NDOMOD 或 LOG2NDO 将数据输出至标准文件时, 此工具则可用来将这些标准文件中数据读出并发送给 NDO2DB 进程监听的 TCP 套接字或 Unix 域套接字
  1. 1. 安装依赖
  2. yum install -y mysql-devel perl-DBD-MySQL
  3. 2. 下载安装
  4. 1) 下载
  5. cd /usr/local/src
  6. wget https://downloads.sourceforge.net/project/nagios/ndoutils-2.x/ndoutils-2.1.3/ndoutils-2.1.3.tar.gz?r=&ts=1497433073&use_mirror=jaist
  7. tar -zxvf ndoutils-2.1.3.tar.gz
  8. 2) 安装
  9. cd /usr/local/src
  10. ./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios LDFLAGS=-L/usr/lib64/mysql
  11. make
  12. make all
  13. 3. 配置模块 ndomod 代理模块(转发数据)
  14. 1) 复制 ndomod 模块, 4x.0 表示 nagios-core 4.x 版本, 具体根据 core 定义
  15. cp -v src/ndomod-4x.o /usr/local/nagios/bin/
  16. chown nagios:nagios /usr/local/nagios/bin/ndomod-4x.o
  17. 2) 复制 ndomod 配置文件
  18. mkdir -p /usr/local/nagios/etc/ndoutils
  19. cp -v config/ndomod.cfg-sample /usr/local/nagios/etc/ndoutils/ndomod.cfg
  20. chown nagios:nagios /usr/local/nagios/etc/ndoutils/ndomod.cfg
  21. 4. 配置 ndo2db 模块(接收数据保存到 MySQL)
  22. 1) 复制 ndo2db 模块, 4x 表示 nagios-core 4.x 版本
  23. cp -v src/ndo2db-4x /usr/local/nagios/bin/
  24. chown nagios:nagios /usr/local/nagios/bin/ndo2db-4x
  25. 2) 复制 ndo2db 配置文件
  26. mkdir -p /usr/local/nagios/etc/ndoutils
  27. cp -v config/ndo2db.cfg-sample /usr/local/nagios/etc/ndoutils/ndo2db.cfg
  28. chown nagios:nagios /usr/local/nagios/etc/ndoutils/ndo2db.cfg
  29. 3) 配置 ndo2db.cfg 数据库
  30. vim /usr/local/nagios/etc/ndoutils/ndo2db.cfg
  31. # db 配置
  32. socket_type=tcp
  33. db_servertype=mysql
  34. db_host=nagios_db
  35. db_port=3306
  36. db_name=nagios
  37. db_prefix=nagios_
  38. db_user=nagios
  39. db_pass=nagios
  40. 5. 安装数据库
  41. 1) 登录 MySQL 创建数据库
  42. CREATE DATABASE nagios /*!40100 DEFAULT CHARACTER SET utf8 */;
  43. GRANT ALL PRIVILEGES ON nagios.* TO 'nagios'@'%' IDENTIFIED BY 'nagios' WITH GRANT OPTION;
  44. 2) 安装数据库
  45. cd src/db
  46. ./installdb -h dw0 -u nagios -p nagios -d nagios
  47. 6. 配置 nagios.cfg 加载 ndomod 模块
  48. vim /usr/local/nagios/etc/nagios.cfg
  49. # ndoutils ndomod 模块, 设置同一行
  50. broker_module=/usr/local/nagios/bin/ndomod-4x.o config_file=/usr/local/nagios/etc/ndoutils/ndomod.cfg
  51. # 开启代理
  52. event_broker_options=-1
  53. 7. 复制 file2sock,log2ndo 依赖
  54. cp -v src/{file2sock,log2ndo} /usr/local/nagios/bin
  55. chown nagios:nagios /usr/local/nagios/bin/{file2sock,log2ndo}
  56. 8. 配置 ndomod -> ndo2db, ndomod 发送数据到的地址和端口 ndo2db
  57. 1) ndomod 发送数据地址
  58. vim /usr/local/nagios/etc/ndoutils/ndomod.cfg
  59. # 发送到 ndo2db 的地址
  60. output_type=tcpsocket
  61. output=127.0.0.1
  62. tcp_port=5668
  63. 2ndo2db 监听接收数据地址
  64. vim /usr/local/nagios/etc/ndoutils/ndo2db.cfg
  65. # 监听设置
  66. socket_type=tcp
  67. tcp_port=5668
  68. 7. 启动 ndo2db, 监听在端口 5668, 接收 ndomod 发来的数据
  69. # 启动 ndo2db-4x 服务
  70. /usr/local/nagios/bin/ndo2db-4x -c /usr/local/nagios/etc/ndoutils/ndo2db.cfg
  71. tail -f /var/log/messages
  72. netstat -tnulp | grep 5668
  73. # 重启 nagios 服务
  74. service nagios restart
  75. tail -f /usr/local/nagios/var/nagios.log
  76. 8. 实例 ndomod 实例默认和更改
  77. vim /usr/local/nagios/etc/ndoutils/ndomod.cfg
  78. # 默认组是 default, 大型应用中可能存在多个独立的或分布式布置的 Nagios 服务器.
  79. # 这种环境中的每个 Nagios 服务器通常被称为一个 Nagios 实例。
  80. # 在多 Nagios 实例的环境中,既可以把所有实例的数据存入到一个数据库,也可以将各实例的数据分别存储。
  81. instance_name=dw_groups