设为首页 收藏本站
查看: 378|回复: 0

[经验分享] 9 nagios 存监测数据到mysql

[复制链接]

尚未签到

发表于 2018-10-1 13:54:11 | 显示全部楼层 |阅读模式
Mysql安装
Yum安装
  监测到的数据可通过Ndoutils插件存到mysql数据库中。在安装Ndoutils插件前,需要先安装mysql(如果先安装Ndo插件,再安装mysql的话,则数据写不到mysql。因为configure Ndo插件时候会找不到mysql库而出现一些错误)。存到数据库中的数据,可以使用cacti等工具,将数据显示出其趋势图来。
  #yum install mysql-server
  yum install mysql-devel
  yum install mysql
  service mysqld start
  mysqladmin -u root password '111111'
  安装mysql-devel
  如果找不到相应的包,可以直接yum安装:
  yum install mysql-devel
  #mysql -u root -h 127.0.0.1 -p
  Enter password:
  mysql> create database nagios;
  Query OK, 1 row affected (0.01 sec)

  mysql> grant all on nagios.* to ndouser@localhost>
  grant all on nagios.* to ndouser@127.0.0.1>
  grant all on nagios.* to ndouser@192.168.50.0>
  GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'>  Query OK, 0 rows affected (0.00 sec)
  mysql> flush privileges;
  Query OK, 0 rows affected (0.00 sec)
  mysql> quit;
  Bye
源代码安装
  源代码包为mysql-5.6.13.tar.gz。
我的安装
  源码安装configure和make都非常慢,因此,如非必要,请使用rpm包安装。我在测试的时候,发现有些操作系统上使用rpm包,nagios无法写入数据到nagios_hosts表,因此,根据网上有关资料,尝试使用源码安装测试下。
  # groupadd mysql
  useradd -r -g mysql mysql
  tar zxvf mysql-5.6.13.tar.gz
  cd mysql-5.6.13
  yum install cmake
  yum install gcc-c++
  yum install bison
  rm CMakeCache.txt //如果已经cmake则再次cmake的时候需要删除这个CmakeCache文件
  cmake .
  make && make install
  // 编译结束
  // 更改用户和组属性,执行mysql_install_db初始化数据库
  cd /usr/local/mysql
  chown -R mysql:mysql .
  scripts/mysql_install_db --user=mysql
  如果出现FATAL ERROR: Could not find ./bin/my_print_defaults的错误,则请执行以下命令:
  ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
  chown -R root .
  chown -R mysql data
  //(以下命令可选)拷贝配置文件到/etc目录下,启动mysql
  #cp support-files/my-default.cnf /etc/my.cnf
  vi /etc/my.cnf
  [mysqld]
  datadir=/usr/local/mysql/data
  socket=/var/lib/mysql/mysql.sock
  [mysql.server]
  user=mysql
  basedir=/usr/local/mysql
  [client]
  socket=/var/lib/mysql/mysql.sock
  /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
  mysql -uroot -p
  mysql>use mysql;
  mysql> update user set password=PASSWORD(111111) where user='root';
  mysql> flush privileges;
  正常启动:
  /usr/local/mysql/support-files/./mysql.server start
  //(以下命令可选)设置mysql开机自启动
  //# cp support-files/mysql.server /etc/init.d/mysql.server
  #cp support-files/mysql.server /etc/init.d/mysqld
  chmod +x /etc/init.d/mysqld
  chkconfig -add mysqld
  chkconfg mysqld on
  mysqladmin -u root password '111111'
  ln -s /usr/local/mysql/bin/mysql /usr/bin
网上资料-安装1
  http://blog.csdn.net/westmaniac/article/details/6535000
  Linux源码安装mysql 5.5.13 (cmake编译)
  2011-06-09 20:59 7163人阅读 评论(4) 收藏举报
  mysqllinuxservice编译器工作
  1.安装make编译器
  下载地址: http://www.gnu.org/software/make/
  [c-sharp]view plaincopy
  1. tar zxvf make-3.82.tar.gz
  2. cd make-3.82
  3. ./configure
  4. make
  5. make install
  2.安装bison
  下载地址:http://www.gnu.org/software/bison/
  [c-sharp]view plaincopy
  1. tar zxvf bison-2.5.tar.gz
  2. cd bison-2.5
  3. ./configure
  4. make
  5. make install
  3.安装gcc-c++
  下载地址:http://www.gnu.org/software/gcc/
  [c-sharp]view plaincopy
  1. tar zxvf gcc-c++-4.4.4.tar.gz
  2. cd gcc-c++-4.4.4
  3. ./configure
  4. make
  5. make install
  4.安装cmake
  下载地址:http://www.cmake.org/
  [c-sharp]view plaincopy
  1. tar zxvf cmake-2.8.4.tar.gz
  2. cd cmake-2.8.4
  3. ./configure
  4. make
  5. make install
  5.安装ncurses
  下载地址:http://www.gnu.org/software/ncurses/
  [c-sharp]view plaincopy
  1. tar zxvf ncurses-5.8.tar.gz
  2. cd ncurses-5.8
  3. ./configure
  4. make
  5. make install
  开始安装MySQL,下载地址:http://dev.mysql.com/
  准备工作
  [c-sharp]view plaincopy
  1. groupadd mysql
  2. useradd -r -g mysql mysql
  解压并安装MySQL
  [c-sharp]view plaincopy
  1. tar zxvf mysql-5.5.13.tar.gz
  2. cd mysql-5.5.13
  3. cmake . /
  4. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql /
  5. -DINSTALL_DATADIR=/usr/local/mysql/data
  6. make
  7. make install
  完成后,继续下面的操作
  [c-sharp]view plaincopy
  1. cd /usr/local/mysql
  2. chown -R mysql .
  3. chgrp -R mysql .
  4. scripts/mysql_install_db --user=mysql
  5. chown -R root .
  下面的命令是可选的,将mysql的配置文件拷贝到/etc
  [c-sharp]view plaincopy
  1. cp support-files/my-medium.cnf /etc/my.cnf
  启动mysql:
  [c-sharp]view plaincopy
  1. bin/mysqld_safe --user=mysql &
  2. #启动mysql,看是否成功
  3. netstat -tnl|grep 3306
  上面是一种启动mysql的方法,还有一种简单的方便,如下:
  [c-sharp]view plaincopy
  1. #将mysql的启动服务添加到系统服务中
  2. cp support-files/mysql.server /etc/init.d/mysql.server
  3. #现在可以使用下面的命令启动mysql
  4. service mysql.server start
  5. #停止mysql服务
  6. service mysql.server stop
  7. #重启mysql服务
  8. service mysql.server restart
  将mysql服务添加到开机启动项,让mysql服务开机启动
  [c-sharp]view plaincopy
  1. chkconfig --add mysql.server
  重启机器后,mysql服务就会自动启动了。
网上资料-安装2
  http://blog.chinaunix.net/uid-13954789-id-3432115.html
  源码编译mysql5.5过程记录2012-12-06 17:18:29
  分类: Mysql/postgreSQL
  CentOS6.3源码安装mysql-5.5.27
  #mysql5.5以上使用cmake代替configure编译,首先需要安装cmake
  yum install cmake
  # 建mysql用户和组
  shell> groupadd mysql
  shell> useradd -r -g mysql mysql
  # 解压tgz包,编译mysql
  shell> tar zxvf mysql-5.5.27.src.tar.gz
  shell> cd mysql-5.5.27
  shell> cmake .
  shell> make && make install
  # 编译结束
  # 更改用户和组属性,执行mysql_install_db初始化数据库
  shell> cd /usr/local/mysql
  shell> chown -R mysql:mysql .
  shell> scripts/mysql_install_db --user=mysql
  shell> chown -R root .
  shell> chown -R mysql data
  # (以下命令可选)拷贝配置文件到/etc目录下,启动mysql
  shell> cp support-files/my-medium.cnf /etc/my.cnf
  shell> bin/mysqld_safe --user=mysql &
  # (以下命令可选)设置mysql开机自启动
  shell> cp support-files/mysql.server /etc/init.d/mysql.server
  安装过程并不顺利,遇到好几次错误
  1.没有安装 gcc 和 gcc-c++,执行cmake报如下错误:
  ==================================================
  [root@ice mysql-5.5.27]# cmake .

  -- The C compiler>
  -- The CXX compiler>  CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found.  Please set CMAKE_C_COMPILER to a valid compiler path or name.
  CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.  Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
  ..
  -- Configuring incomplete, errors occurred!
  ==================================================
  解决方法:安装gcc和gcc-c++
  yum install gcc
  yum install gcc-c++
  #删除cache文件,不删除还会报错
  rm CMakeCache.txt
  cmake .
  2.编译快结束时,又报如下错误:
  Warning: Bison executable not found in PATH
  解决方法:安装bison
  yum install bison
  rm CMakeCache.txt
  cmake .
  #编译通过
  make && make install
  #执行时间比较长
  3.无法启动mysql
  bin/mysqld_safe --user=mysql & 无法启动
  解决方法:
  再执行一次scripts/mysql_install_db --user=mysql
  为什么会这样,原因不明
  vi /etc/my.cnf
  [mysqld]
  datadir=/usr/local/mysql/data
  socket=/var/lib/mysql/mysql.sock
  [mysql.server]
  user=mysql
  basedir=/usr/local/mysql
  [client]
  socket=/var/lib/mysql/mysql.sock
  /usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
  mysql –uroot -p
  mysql>use mysql;
  mysql> update user set password=PASSWORD(111111) where user='root';
  mysql> flush privileges;
  正常启动:
  /usr/local/mysql/support-files/./mysql.server start
Ndoutils安装
  将nagios测试到的数据存储到mysql数据库。
安装Ndoutils
  #yum install perl_DBI
  tar -zxvf ndoutils-1.5.2.tar.gz
  cd ndoutils-1.5.2
  ./configure --with-mysql-inc=/usr/include/mysql --with-mysql-lib=/usr/lib/mysql --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
  如果mysql是使用yum安装的,则这里configure安装会有问题,因为mysql有关的lib文件等不在上面configre参数所指的路径中。此时,可以直接使用:
  ./configure //由于mysql是yum安装无需制定使能mysql和lib参数ndo可以自动找到
  make
设置配置文件
  编译完成后(不需要make install)
  cd src/
  cp ndomod-3x.o /usr/local/nagios/bin/
  cp ndo2db-3x /usr/local/nagios/bin/
  chmod 774 /usr/local/nagios/bin/ndo*
  chown nagios.nagios /usr/local/nagios/bin/ndo*
  cd ../config
  cp ndo2db.cfg-sample ndo2db.cfg
  cp ndomod.cfg-sample ndomod.cfg
  cp ndo2db.cfg ndomod.cfg /usr/local/nagios/etc/
  cd ..
  cp daemon-init /etc/init.d/ndo2db
  chmod 775 /etc/init.d/ndo2db
  chkconfig --add ndo2db
  chkconfig --level 35 ndo2db on
  //上面的这一个创建ndo服务也可以直接使用以下命令启动:
  /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg
  如果启动出现Could not bind socket: Address already in use错误的话,可以查看下这个ndo进程是否存在,如果存在的话,则先杀掉;如果不存在的话,则删除以下文件后重新执行上面的命令:rm /usr/local/nagios/var/ndo.sock
  chown -R nagios.nagios /usr/local/nagios/etc/ndo*
  vi /usr/local/nagios/etc/ndo2db.cfg
  修改以下参数(以下为网上拷贝的内容,这里可以不用做任何修改,请记录默认的这些参数值)
  socket_name=/usr/local/nagios/var/ndo.sock
  db_name=cacti nagios
  db_prefix=npc_ nagios_
  db_user=viong ndouser
  db_pass=viong0623 ndopassword
  debug_level=1
  debug_file=/usr/local/nagios/var/ndo2db.debug
  保存退出
  vi ndomod.cfg
  修改以下参数(以下为网上拷贝的内容,这里可以不用做任何修改,请记录默认的这些参数值)
  output=/usr/local/nagios/var/ndo.sock
  buffer_file=/usr/local/nagios/var/ndomod.tmp
  保存退出
  配置nagios.cfg:
  # vi /usr/local/nagios/etc/nagios.cfg
  # 复制下面内容粘贴到#broker_module=...下面。
  broker_module=/usr/local/nagios/bin/ndomod-3x.o config_file=/usr/local/nagios/etc/ndomod.cfg
  此外,请确保您的/usr/local/nagios/etc/nagios.cfg中有如下行出现,否则,请自行添加:
  event_broker_options=-1 //为Nagios开启event broker
  process_performance_data=1 //这个参数是否有用不清楚,网上有些资料上都会写,但根据其解析,这个参数打开后,后面的几个参数才有用。但后面的参数这里都没有设置。
  备注:以上内容是一行连接的,中间使用空格隔开的。
创建数据表
  mysql>
  ./installdb -u root -p -h localhost -d nagios
  或者:
  # cd ndoutils-1.5.2/db
  # mysql -uroot -p nagios  * kernel.msgmni   is the maximum number of messages allowed in any one message queue (整个系统的最大数量的消息队列)
  * kernel.msgmnb  is the total number of bytes allow in all messages in any one message queue(每个消息队列的最大字节限制,一个队列有多个消息)
  5, naigos_hosts表一直没有数据
  对这个表进行了跟踪,发现以往用yum安装的mysql数据库一直不会将数据插入到这个表,后来使用mysql的源代码编译安装后,这个表就有数据了。
  这个表的数据是在nagios服务启动时生成,因此,如果删除了这个表的数据后,需要重启nagios服务才能生成数据。
  在Cacti的Npc安装好后,可能npc_hosts也没有数据,重启nagios服务应该能够写入数据到这个表。
  后来发现在centos5.8 64位操作系统中,使用rpm包安装的mysql,npc_hosts就有数据,各种现象还没梳理过有什么规律。但如果要用cacti监测nagios获取的数据,则要保证npc_hosts表中,要有各个host的数据。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-607190-1-1.html 上篇帖子: 在MySQL分区表中支持datetime类型的列 下篇帖子: mysql开启远程登录功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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