yangcctv 发表于 2019-1-17 08:27:28

搭建nagios监控服务

由于公司在本市有一些服务器需要对其进行监测,其中大部分是windows的服务器,看了一些相关的监控的软件,最后决定使用nagios进行监控,在这里对Sery文章的帮助表示感谢。
      下面就是一些安装的步骤,由于安装的时候与现在较早,有些地方没有好好的保留,如有不对的地方望大家积极指出,如有不懂的地方可以去nagios的官网去查看,也可以在搭好后的web主页上获得帮助,呵呵,我就是看那里的。不说了,下面是配置步骤。

首先,到www.nagios.orq 上下载nagios 的软件包


2.下载到相应的目录下解压,进行编译 ./configure prefix=/usr/loacl/nagios
注意先建立nagios 用户和组,也可以再编译的时候进行指定
3、编译nagios. make all
4、 安装nagios。与别的软件安装稍有不同,nagios的安装要好几步才能完成。第一步执行make install安装主要的程序、CGI及HTML文件,第二步执行 make install- commandmode 给外部命令访问nagios配置文件的权限,第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。按照安装向导的提示,其实这里 还有一个 make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动,这是一个很方便的措施。但本人是一个喜欢把问题简化的人,没 有执行这样的操作。
5、 验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正 确的安装到系统了。后表是五个目录功能的简要说明:


bin
Nagios执行程序所在目录,这个目录只有一个文件nagios
etc
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
sbin
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share
Nagios网页文件所在的目录
Var
Nagios日志文件、spid 等文件所在的目录



二。安装nagios 的插件,到www.nagios.orq 上下载nagios 的软件包nagios-plugins-1.4.13
执行
./configure prefix=/usr/loacl/nagios   make   make install进行安装
j
注意系统时间的一致性
>
装好后再目标目录下生成 libexec 目录


三、安装web服务器apache
Web服务不是nagios所必须的,但是如果nagios没有web,查看监控对象的状态将是非常费事和没有趣味的事情(只有通过查看nagios的日志来判断状态)。我不愿干特无聊 的事,所以就花少许时间把web安装一下。
在unix/linux世界,apache是web服务器的首选对象,其下载网站为www.apache.org。建议下载源码。因为我们不需要很复杂的web功能,因此简单的执行一下几个步骤就 可以正确的把apache安装到系统:
1、   解包、配置:tar zxvf httpd-2.2.0.tar.gz ; cd httpd-2.2.0 ; ./configure   –prefix=/usr/local/apache 。
2、   编译安装: make ; make install 。
安装完成后,执行命令 ./usr/local/apache/bin/apachectl –t 检查一下apache是否正确安装。

#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

更改目录/usr/local/apache 的权限 为nagios用户
执行/usr/local/apache/bin/apachl -t 检查语法
然后/usr/local/apache/bin/apachctl start & 把apache启动到后台
注意有的版本自带了自己的apache服务,不要试验 /etc/init.d/httpd start 进行启动会冲突

四。进入到/usr/local/nagios/etc/ 下,目录结构如下

http://blog.运维网.com/zhangbo/../attachment/200911/200911091257738265994.png





然后进入到 ./nagios 下对nagios 配置文件进行修改

cfg_file=/usr/local/nagios//etc/objects/commands.cfg   //会在 object 的目录下生成相应的配置文档
cfg_file=/usr/local/nagios//etc/objects/contacts.cfg    //同上
cfg_file=/usr/local/nagios//etc/objects/timeperiods.cfg   // 同上
cfg_file=/usr/local/nagios//etc/objects/templates.cfg         // 同上
cfg_file=/usr/local/nagios//etc/objects/windows.cfg    //取消的注释行,开启监测windows服务器
cfg_file=/usr/local/nagios//etc/objects/switch.cfg      //取消的注释行,开启对路由和交换机的监测
command_check_interval=-10s//设定服务器掉线的允许时间,默认为1s
enable_notifications=1//是否发送通知的过滤器

在cgi.cfg中进行修改

authorized_for_system_information=nagiosadmin,zhangbo
authorized_for_configuration_information=nagiosadmin,zhangbo
authorized_for_system_commands=zhangbo //多个用户之间用逗号隔开
authorized_for_all_services=nagiosadmin,zhangbo
authorized_for_all_hosts=nagiosadmin,zhangbo
authorized_for_all_service_commands=nagiosadmin,zhangbo
authorized_for_all_host_commands=nagiosadmin,zhangbo

下面进入到 ./object 的目录下,改目录的结构如下:

http://blog.运维网.com/zhangbo/../attachment/200911/200911091257738628484.png




再 contacts.cfg 中进行修改:这里主要是联系人的相关设置

define contactgroup{
      contactgroup_name       admins//联系组的相应组名,后面要用到
      alias                   Nagios Administrators   //别名
      members               zhangbo    //成员,多用户用“,”隔开
      }

define contact{
      contact_name                  zhangbo         //联系人            
      alias                           Nagios zhangbo(Admin)   //别名      
      email                           zhangbo@邮箱   //联系人的邮箱,通知的邮箱
      }

再timeperiods.cfg 中没有修改://这里主要是一些关于监测时间,报警时间,间断时间的一些设置,保持默认即可


在 localhost.cfg 下的修改:

define hostgroup{
      hostgroup_namehostadmin   //监视的主机组的名称
      alias         hostadmin   //别名
      members         zhangbo      //成员名 ,多用户用“,”隔开
         }

define host{
      use                     linux-server//使用的类定义,根据templates.cfg的定义
      host_name               zhangbo             //主机名
      alias                   zhangbo                //别名
      parents               MainSwitch
      address               192.168.1.251   //对应的ip地址
      icon_image            server.gif
      statusmap_image         server.gd2
      2d_coords               500,200
      3d_coords               500,200,100
      }

再templates.cfg 中进行修改://可以根据自己的需要进行相应类的定义


define contact{
      name                                    generic-contact       //定义的类名
      service_notification_period   24x7                  
      host_notification_period      24x7                  
      service_notification_options    w,u,c,r,f,s            
events, and scheduled downtime events
      host_notification_options       d,u,r,f,s               
ents, and scheduled downtime events
      service_notification_commands   notify-service-by-email
      host_notification_commands      notify-host-by-email   
      register                        0                     




检测:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
出现下面情况表示成功
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

对于监测是点来说,我这里都是一些windows的机器,因为系统的差异,对windows的监控得需要在各监控点上安装第三方的软件--NSClient++

NSClient++ 客户端在windos上的安装步骤

1,到官方网站上下载最新的稳定的 NSClient++ 软件包或安装程序

2. 将其安装再C盘下

3.再 cmd 的模式下,进入到安装目录,执行:
       NSClient++ /uninstall
    NSClient++ SysTray uninstall

    NSClient++ /install
    NSClient++ SysTray install

4.再安装目录下对配置文件进行修改:

将 部分的所有模块前面的注释都去掉,除了CheckWMI.dll and RemoteConfiguration.dll这两个
在部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码.
将部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP.我改为如下这样allowed_hosts=127.0.0.1/32,192.168.0.111 以逗号相隔.这个地方是支持子网的,如果写成192.168.0.0/24则表示该子网内的所有机器都可以访问.如果这个地方是空白则表示所有的主机都可以连接上来.注意是部分的,因为部分也有这个选项.
必须保证的'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口

5.在CMD中执行nsclient++ /start启动服务,注意所在目录是C:\NSClient++
   
password=secret-password


下面是web的nagios的监控图形界面

http://blog.运维网.com/zhangbo/../attachment/200911/200911091257738490876.png








对服务器监控测试正常

http://blog.运维网.com/zhangbo/../attachment/200911/200911091257738556826.png




页: [1]
查看完整版本: 搭建nagios监控服务