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

nagios+mysql+ndo2安装总结

[复制链接]

尚未签到

发表于 2019-1-17 06:30:07 | 显示全部楼层 |阅读模式
  1.apache 安装
  1.1下载
  http://httpd.apache.org/download.cgi
  1.2安装
  tar zvxf httpd-2.2.6.tar.gz
  cd httpd-2.2.6
  ./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max && make && make install
  这里我们通过enable-module参数告诉设置脚本,我们需要启动so和rewrite模块,so模块是用来提DSO支持的apache核 心模块,而rewrite模块则是用意实现地址重写的模块,由于rewrite模块需要DBM支持,如果在初次安装时没有编译进apache,以后需要用 到时需要重新编译整个apache才可以实现。为此除非你可以确定以后不会用到rewrite模块,否则还是建议你在第一次编译的时候把rewrite模 块编译好。
  enable-shared=max 这个参数的作用时编译apache时,把除了so以外的所有apache的标准模块都编译成DSO模块。而不是编译进apache核心内。
  1.3启动
  /usr/local/apache/bin/apachectl start  //启动apache
  然后用ie看http://服务器地址。
  /usr/local/apache/bin/apachectl stop  //关闭apache
  2. nagios安装
  2.1下载
  http://www.nagios.org/download/
  2.2安装
  groupadd nagios && useradd nagios -g nagios -M –r //建立nagios的运行用户和组
  tar -zxf ./ nagios-2.10.tar.gz
  cd ./nagios-2.10
  ./configure –prefix=/usr/local/nagios make all && make install
  chown –R nagios:nagios /usr/local/nagios //把nagios文件夹给nagios用户
  make install-init && make install-commandmode && make install-config //分别安装nagios启动脚本、cgi文件和config文件。
  2.3 apache配置文件
  //在apache中添加nagios
  useradd apache -g daemon -M -r //为apache添加执行用户
  vi /usr/local/apache/conf/httpd.conf //编辑apache配置文件
  找到 User xxx
  Group xxx
  改为 User apache
  Group daemon
  在文件的最后添加:
  ####################
  #setting for nagios#
  ####################
  ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
  
  AuthType Basic
  Options ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
  AuthName "Nagios Access"
  AuthUserFile /usr/local/nagios/etc/htpasswd
  Require valid-user
  
  Alias /nagios /usr/local/nagios/share
  
  AuthType Basic
  Options None
  AllowOverride None
  Order allow,deny
  Allow from all
  AuthName "nagios Access"
  AuthUserFile /usr/local/nagios/etc/htpasswd
  Require valid-user
  
  保存退出
  usermod –G nagios apache //把apache的执行用户添加到nagios组里
  //这一步非常重要,是能在web页面执行cgi的关键
  /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd test
  //为访问nagios用户设置权限,建立了一个用户test,之后提示输入两次密码(我设置的是111111)。
  测试:
  ls /usr/local/nagios/ //如果安装目录下有etc、bin、 sbin、 share、 var则说明nagios安装成功。
  2.4 nagios配置文件说明
  (注:这部分是直接复制的cfg文件,自己没有做过)
  i. 主体配置文件nagios.cfg
  这个文件是nagios的主体配置文件,需要修改以下几个地方:
  注释行:
  #cfg_file=/usr/local/nagios/etc/localhost.cfg
  去掉以下几行的注释:
  cfg_file=/usr/local/nagios/etc/contactgroups.cfg //联系组配置文件路径
  cfg_file=/usr/local/nagios/etc/contacts.cfg //联系人配置文件路径
  cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主机组配置文件路径
  cfg_file=/usr/local/nagios/etc/hosts.cfg //主机配置文件路径
  cfg_file=/usr/local/nagios/etc/hostgroups.cfg //服务组配置文件路径
  cfg_file=/usr/local/nagios/etc/services.cfg //服务配置文件路径
  cfg_file=/usr/local/nagios/etc/timeperiods.cfg //监视时段配置文件路径
  改check_external_commands=0为check_external_commands=1
  //允许在web界面下执行重启nagios、停止主机/服务检查等操作
  把command_check_interval的值从默认的1改成command_check_interval=10s(或更高,根据自己需求而定)
  ii. CGI脚本控制文件cgi.cfg
  首先确保use_authentication=1。
  修改
  default_user_name=test //这里只能写一个用户
  authorized_for_system_information=nagiosadmin,test
  authorized_for_configuration_information=nagiosadmin,test
  authorized_for_system_commands=test //多个用户之间用逗号隔开
  authorized_for_all_services=nagiosadmin,test
  authorized_for_all_hosts=nagiosadmin,test
  authorized_for_all_service_commands=nagiosadmin,test
  authorized_for_all_host_commands=nagiosadmin,test
  这里的test用户,就是
  /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd test
  这个用户。如果要添加新管理员,执行:
  # /usr/local/apache/bin/htpasswd /usr/local/nagios/etc/htpasswd test1
  之后把test1用户添加到上面的cgi.cfg里的授权用户后,多个用户用逗号隔开。
  iii. 时间段定义timeperiods.cfg
  # vi /usr/local/nagios/etc/timeperiods.cfg
  define timeperiod{
  timeperiod_name 24x7 //时间段的名称,这个地方不要有空格
  alias 24 Hours A Day,7Days A Week
  sunday 00:00-24:00
  monday 00:00-24:00
  tuesday 00:00-24:00
  wednesday 00:00-24:00
  thursday 00:00-24:00
  friday 00:00-24:00
  saturday 00:00-24:00
  }
  这里我们定义了一个时间段,每天都是00:00-24:00,这个时间段我们给它取个名字叫24x7。在之后的host和service配置文件 里都会用到这里定义的时间短,当然我们还可以定义其他的时间短,譬如说再定义一个24x5的时间段。那么这个文件里就定义了两个时间短,我们可以监控用 24x7的,而警报通知用24x5的,当然这只是打个比方。
  iv. 联系人定义contacts.cfg
  # vi /usr/local/nagios/etc/contacts.cfg
  define contact {
  contact_name lele //联系人的名称,这个地方不要有空格
  alias System Administrator
  service_notification_period 24x7
  host_notification_period 24x7
  service_notification_options w,u,c,r
  host_notification_options d,u,r
  service_notification_commands notify-by-email
  host_notification_commands host-notify-by-email
  email wangl@asiacom-online.com
  }
  创建了一个名为test的联系人,下面列出其中重要的几个选项做说明
  service_notification_period 24x7
  服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的.
  host_notification_period 24x7
  主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg中定义的
  service_notification_options w,u,c,r
  当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况恢复正常,在这四种情况下通知联系人.
  host_notification_options d,u,r
  当主机出现d¬¬¬¬—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人
  service_notification_commands notify-by-email
  服务出问题通知采用的命令notify-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件.至于commands.cfg之后将专门介绍
  host_notification_commands host-notify-by-email
  同上,主机出问题时采用的也是发邮件的方式通知联系人
  email wangl@asiacom-online.com
  很明显,联系的人email地址
  pager 1338757xxxx
  联系人的手机,如果支持短信的通知的话,这个就很有用了.
  alias是联系人别名,address是地址 意义不大.
  按照上面的方式简单的复制修改就可以创建多个联系人了.
  v. 联系人组contactgroups.cfg
  # vi /usr/local/nagios/etc/contactgroups.cfg
  define contactgroup{
  contactgroup_name sagroup //联系人组的名称,同样不能空格
  alias System Administrator Group //别名
  members test //组的成员,来自于上面定义的contacts.cfg,如果有多个联系人则以逗号相隔
  }
  vi. 定义被监控主机hosts.cfg
  # vi /usr/local/nagios/etc/hosts.cfg
  define host {
  host_name Nagios-Server //被监控主机的名称,别带空格
  alias Nagios Server //别名
  address 192.168.1.201 //被监控主机的IP地址
  contact_groups sagroup //联系人组,上面在contactgroups.cfg中定义的sagroup
  check_command check-host-alive //监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活
  max_check_attempts 3 //检查失败后重试的次数
  check_period 24x7 //检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中定义的
  notification_interval 50 //提醒的间隔,每隔50分钟提醒一次
  notification_period 24x7 //提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg中定义的
  notification_options d,u,r //指定什么情况下提醒,具体含义见之前contacts.cfg部分的介绍
  }
  通过简单的复制修改就可以定义多个主机了.
  vii. 主机组定义hostgroups.cfg
  # vi /usr/local/nagios/etc/hostgroups.cfg
  define hostgroup{
  hostgroup_name sa-servers //主机组名称
  alias sa Servers //别名
  members nagios-server //组的成员主机,多个主机以逗号相隔,必须是上面hosts.cfg中定义的
  }
  viii. 监控服务定义services.cfg
  这部分是整个监控系统的核心部分. 用nagios主要是监控一台主机的各种信息,包括本机资源,对外的服务等等.这些在nagios里面都是被定义为一个个的项目(nagios称之为服 务,为了与主机提供的服务相区别,我这里用项目这个词),而实现每个监控项目,则需要通过services.cfg文件中定义的命令.
  # vi /usr/local/nagios/etc/services.cfg
  define service{
  host_name nagios-server //被监控的主机,hosts.cfg中定义的
  service_description Check Disk //这个监控项目的描述(也可以说是这个项目的名称),可以空格,我们这里定义的是监控这个主机是不是存活
  check_command check_local_disk!10%!5%!/ //所用的命令,是commands.cfg中定义的,其中!后面跟的是命令后面需要跟的参数,多个参数可以用多个!来追加,这里 check_local_disk的第一个参数是10%第二个参数是5%
  max_check_attempts 3
  normal_check_interval 3
  retry_check_interval 2
  check_period 24x7 //监控的时间段,是timeperiods.cfg中定义的
  notification_interval 50
  notification_period 24x7 //通知的时间段, ,是timeperiods.cfg中定义的
  notification_options w,u,c,r //在监控的结果是wucr时通知联系人,具体含义看前文.
  contact_groups sagroup //联系人组,是contactgroups.cfg中定义的
  }
  可以看到基本上所有的成员都是已经定义的.同样的将上面的内容复制修改,就可以定义多个服务。
  ix. 插件注册commands.cfg
  # vi /usr/local/nagios/etc/commands.cfg
  define command{
  command_name check-host-alive
  //在hosts.cfg和services.cfg中,check_command所对应的命令名
  command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
  //其中$USER1$是在resource.cfg文件中定义的,代表插件的安装路径.就如我们上面看到的那样$USER1$=/usr/local/nagios/libexec,至于$HOSTADDRESS$,则默认被定义为监控主机的地址.
  }
  我们在services.cfg中定义了对Nagios-Server执行check-host-alive命令,实际上就是执行了 /usr/local/nagios/libexec/check_ping -H 192.168.1.201(Nagios-Server的ip地址) -w 3000.0,80% -c 5000.0,100% -p 1
  commands.cfg默认已经定义了很多这样的命令,如check_http,check_ftp等,这些命令,我们都可以直接用,但是如果我们要用 的命令这里没有定义,那么我们就需要把/usr/local/nagios/libexec下我们需要用得插件,像上面的格式写到 commands.cfg中,完成插件注册,之后我们就可以在services.cfg和hosts.cfg里调用了。
  当我们的services.cfg需要调用命令的时候,就在check_command后面对应写上需要的调用的命令,当命令带参数时,例如:
  define command{
  command_name check_local_disk
  command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
  }
  其中$ARG1$是参数一,$ARG2$是参数二,当我们在services.cfg里调用的时候,check_command应该对应的写上 check_local_disk!10%!5%!/,这里的3个参数用!追加.例如:
  define service{
  host_name nagios-server
  //被监控的主机,hosts.cfg中定义的
  service_description Check Disk
  //这个监控项目的描述
  check_command check_local_disk!10%!5%!/
  max_check_attempts 3
  normal_check_interval 3
  …
  …
  …
  }
  参数的意义可以运行/usr/local/nagios/libexec check_disk –h得知.
  //测试
  配置好以后,使用命令:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  检查配置是否有误。
  3.nagios -plugins安装
  3.1下载
  http://www.nagios.org/download/
  3.2安装
  Nagios是一个框架,真正的所有的监控工作全部是由nagios插件来完成的,而nagios只是做一个汇总,把监控结果整理的明了之后呈现到用户面前。
  tar -zxf ./nagios-plugins-1.4.10.tar.gz
  cd ./nagios-plugins-1.4.10
  ./configure –prefix=/usr/local/nagios //注意这里要把安装目录与nagios安装目录相同
  make && make install //安装完毕之后回在/usr/local/nagios/下产生一个libexec的目录
  ls /usr/local/nagios/libexec //里面有很多插件,安装完成
  3.3启动apache+nagios+apache
  //启动apache
  /usr/local/apache/bin/apachectl start
  //检查nagios配置是否有误
  /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  //启动nagios
  /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
  在任意一台机器上打开网页http://服务器地址/nagios
  输入用户名test 密码111111
  登入,就可以看到nagios的界面。
  4.mysql安装
  4.1下载
  http://www.mysql.com
  4.2安装
  tar zvxf mysql-5.0.20a.tar.gz //解压缩
  cd mysql-5.0.20a //进入解压缩后的文件目录
  ./configure --prefix=/usr/local/mysql \ //设定安装目录
  --enable-thread-safe-client \ //编译线程安全版的客户端库
  --without-debug \ //关闭debug功能
  --localstatedir=/data/mysqldata \ //设定数据库文件目录
  make //编译
  make install //安装
  cd /
  mkdir /data
  mkdir /data/mysqldata
  /usr/local/mysql/bin/mysql_install_db //初始化授权
  这一命令如果出错(...gethostname...)
  修改/etc/hosts中第一行开头的1:为:
  127.0.0.1
  chown –R root:root /usr/local/mysql //文件属性改为root用户
  cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件
  ----------------------------------启动MySQL服务----------------------------------
  /usr/local/mysql/bin/mysqld_safe --user=root & //启动MySQL
  ----------------------------------修改MySQL密码----------------------------------
  /usr/local/mysql/bin/mysqladmin -uroot password hrsoft//修改密码
  ----------------------------------关闭MySQL服务----------------------------------
  /usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown //关闭MySQL
  //添加一个nagios用户供ndo2db使用,密码1234
  /usr/local/mysql/bin/mysql -uroot -phrsoft  //登录到mysql
  use mysql;

  GRANT ALL PRIVILEGES ON *.* TO nagios@localhost>  //修改mysql用户(nagios)权限

  grant select,insert,update,delete on *.* to nagios@localhost.localdomain>  退出mysql,使用nagios登录mysql
  /usr/local/mysql/bin/mysql -unagios -p1234
  show databases;
  //添加数据库给ndo2db使用
  create database nagios;
  //以下几个是常用的命令
  修改mysql用户(nagios)密码:
  use mysql;update user set password = PASSOWRD("123456") where user='nagios';
  修改mysql用户(nagios)权限

  grant select,insert,update,delete on *.* to nagios@localhost.localdomain>  添加用户:
  INSERT INTO user VALUES( 'localhost.localdomain', 'monty', PASSWORD('something'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y');
  添加用户:

  GRANT ALL PRIVILEGES ON *.* TO username@localhost>  4.3启动
  /usr/local/mysql/bin/mysqld_safe --user=root &  //启动mysql
  /usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown //关闭MySQL
  5.安装perl-DBD-mysql
  5.1下载
  http://mirrors.cytanet.com.cy/linux/fedora/linux/core/6/i386/os/Fedora/RPMS/
  5.2安装
  rpm –i perl-DBD-MySQL-3.0007-1.fc6.i386.rpm
  6.Ndoutils安装
  6.1下载
  http://www.nagios.org/download/
  6.2安装
  tar -zxf ndoutils-1.4b7.tar.gz
  cd ndoutils-1.4b7.tar.gz
  ./configure --prefix=/usr/local/nagios
  --enable-mysql
  --with-mysql-lib=/usr/local/mysql/lib/mysql
  --with-mysql-inc=/usr/local/mysql/include
  --disable-pgsql
  如果没有提示错误,
  make
  编译时如提示mysql的路径问题,
  修改 src/Makefile 下的CFLAGS,加入mysql的include路径:
  CFLAGS=-O0 -g -DHAVE_CONFIG $(DBFLAGS)
  cd db
  ./installdb -unagios -p1234 -hlocalhost.localdomain -d nagios
  会在当前目录下创建一个mysql.sql的文件。
  //测试
  登录到数据库使用:
  /usr/local/mysql/bin/mysql -uroot -phrsoft
  show databases;
  use mysql
  show tables;
  可看到数据库中有nagios的表。
  但是 select可看到表中没有数据。
  6.3设置ndo2db和ndomod
  //复制mdoutils文件到安装目录
  cp src/ndo2db-2x /usr/local/nagios/bin/  //ndo2db可执行文件
  cp src/ndomod-2x.o /usr/local/nagios/bin/  //ndomod库文件
  cp src/log2ndo /usr/local/nagios/bin/
  cp config/ndo2db.cfg /usr/local/nagios/  //ndo2db配置文件
  cp config/ndomod.cfg /usr/local/nagios/  //ndomod配置文件
  //cfg文件
  vi /usr/local/nagios/etc/nagios.cfg  //nagios主配置文件
  找到broker_module的地方,添加以下内容,(注,下面的要写在一行)
  broker_module=/usr/local/nagios/bin/ndomod-2x.o config_file=/usr/local/nagios/etc/ndomod.cfg  //这条语句将使Nagios下次启动时自动加载NDOMOD事件代理。
  确认在Nagios主配置文件中有如下语句:
  Event_broker_options=-1
  vi /usr/local/nagios/etc/ndo2db.cfg
  修改以下内容:
  ndo2db_user=nagios
  ndo2db_group=nagios
  db_servertype=mysql  //数据库类型
  db_host=localhost.localdomain //数据库的主机名
  db_name=nagios  //数据库名
  db_user=nagios  //登录mysql的用户名
  db_pass=1234  //密码
  6.4启动ndo2db
  /usr/local/nagios/bin/ndo2db-2x -c /usr/local/nagios/etc/ndo2db.cfg
  7.启动和关闭apache+nagios+mysql+ndo2db
  7.1启动的shell
  # up apache
  /usr/local/apache/bin/apachectl start
  #up nagios
  /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
  #up mysql
  /usr/local/mysql/bin/mysqld_safe --user=root &
  #up ndo2db
  /usr/local/nagios/bin/ndo2db-2x -c /usr/local/nagios/etc/ndo2db.cfg
  7.2关闭的shell
  #down apache
  /usr/local/apache/bin/apachectl stop
  #down nagios
  pkill nagios
  #down ndo2db
  pkill ndo2db
  #down mysql
  /usr/local/mysql/bin/mysqladmin -uroot –phrsoft shutdown


运维网声明 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-664138-1-1.html 上篇帖子: Nagios 安装总结(一) 下篇帖子: nagios报警但不发邮件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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