阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7.4 下安装部署Nagios监控系统详细攻略

197次阅读
没有评论

共计 6840 个字符,预计需要花费 18 分钟才能阅读完成。

Nagios 是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户。它是基于 GPLv2 开发的开源软件,可免费获得及使用。

nagios 工作原理

nagios 的功能是监控服务和主机,但是其自身并不包括这些功能,所有的监控、检测功能都是通过各种插件来完成的。启动 nagios 后,它会周期性的自动调用插件去检测服务器状态,同时 nagios 会维持一个队列,所有插件返回的状态信息都进入队列,nagios 每次都从队首读取信息,进行处理后,再把状态结果通过 web 显示出来。这就是被动模式,经常用于监控主机的系统资源,比如系统负载、磁盘使用率、内存使用率、网络状态、系统进程数等等。另一种是主动模式,主要是 nagios 服务器主动去获取数据,常用于探测 URL 的监控和服务的状态监控。相比于主动模式中服务器主动去被监控机上轮询获取监控数据的方式,这样做的一个很大优势就是将除去数据处理的其他工作都放在了被监控机上面(包括数据的传输),就避免了被监控机数量大时一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键。nagios 提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在 nagios 主目录下的 /libxec 里放有 nagios 自带的可以使用的所有插件。

nagios 主要功能

  • 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
  • 主机资源监控(CPU load、disk usage、system logs),也包括 Windows 主机(使用 NSClient++ plugin)
  • 指定自己编写的 Plugin 通过网络收集数据来监控任何情况(温度、警告……)
  • 通过配置 Nagios 远程执行插件远程执行脚本
  • 远程监控支持 SSH 或 SSL 加通道方式进行监控
  • 简单的 plugin 设计允许用户很容易的开发自己需要的检查服务, 支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C# 等)
  • 包含很多图形化数据 Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios 等)
  • 可并行服务检查
  • 能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查
  • 当服务或主机出现问题时发出通告,可通过 email, pager, sms 或任意用户自定义的 plugin 进行通知
  • 能够自定义事件处理机制重新激活出问题的服务或主机
  • 自动日志循环
  • 支持冗余监控
  • Web 界面可以查看当前网络状态,通知,问题历史,日志文件等

本次项目主要介绍如何部署 nagios,如何对 nagios 进行配置,使其能够对指定的主机进行监控操作

项目环境准备

关闭防火墙及 SELinux

系统版本:CentOS 7.4

虚拟机分配

本次项目只对被监控端做简单测试,所以被监控端不需安装 nagios 插件。
角色
IP 地址所用软件
监控端172.16.10.34nagios-4.4.2、nagios-plugins-2.2.1
被监控端172.16.10.20
被监控端172.16.10.23

相关资料可从以下信息得到下载:

点击这个 http://www.linuxidc.com/Linux/2013-12/93755.htm 链接 关注 Linux 公社官方微信,关注后回复数字153674。即可得到网友的分享密码。

如果取消关注 Linux 公社公众号,即使再次关注,也将无法提供本服务!

链接:https://pan.baidu.com/s/1oAPYYhVP0O1bdSkxSG3dug 密码:获得见上面的方法,地址失效请在下面留言。

—————————————— 分割线 ——————————————

部署 nagios 监控系统

因为 nagios 监控系统的网页需要动态网页支持,所以需要安装 httpd 和 php 软件,或者直接在 lamp 环境下安装,所以实验前要准备好虚拟机环境,对于 lamp 架构的搭建,在这里就不多赘述。

可以参考:CentOS 7.4 下源码编译安装配置 LAMP 环境详解  https://www.linuxidc.com/Linux/2018-03/151133.htm

安装环境包

yum install -y \
— gcc \
— glibc \
— glibc-common \
— gd \
— gd-devel \
— xinetd \
— openssl-devel

创建管理用户

useradd -s /sbin/nologin nagios

创建安装目录,指定属主属组

mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios

编译安装 nagios

tar -zxvf nagios-4.4.2.tar.gz -C /opt

cd /opt/nagios-4.4.2
./configure –prefix=/usr/local/nagios
make all
make install
make install-init
make install-commandmode
make install-config

验证安装结果

ls /usr/local/nagios

CentOS 7.4 下安装部署 Nagios 监控系统详细攻略

安装 nagios-plugins

tar xvzf nagios-plugins-2.2.1.tar.gz -C /opt

cd /opt/nagios-plugins-2.2.1
./configure –prefix=/usr/local/nagios
make && make install

配置 nagios 监控系统

修改 httpd.conf

vim /etc/httpd/conf/httpd.conf
User nagios
Group nagios  // 修改原用户名 apache 为 nagios

<IfModule dir_module>
DirectoryIndex index.html index.php    // 增加 index.php
</IfModule>
AddType application/x-httpd-php .php  // 插入该句

增加安全验证配置

为了安全起见,一般情况下要让 nagios 的 web 监控页面必须经过授权才能访问,这需要增加验证配置,即在 httpd.conf 文件最后插入如下信息:

vim /etc/httpd/conf/httpd.conf
#setting for nagios
ScriptAlias /nagios/cgi-bin “/usr/local/nagios/sbin”
<Directory “/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
</Directory>
Alias /nagios “/usr/local/nagios/share”
<Directory “/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
</Directory>

设置登陆用户名及密码

htpasswd -c /usr/local/nagios/etc/htpasswd chen

配置 nagios

配置 nagois 一般在目录 /usr/local/nagios/etc/ 下

templates.cfg

主要用于监控主机资源以及服务,在 nagios 配置中称为对象,为了不必重复定义一些监控对象,Nagios 引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。contact_groups 联系组属性改成 np 将在后面的 contacts.cfg 文件中定义

vim /usr/local/nagios/etc/object/templates.cfg
contact_groups                  np  // 文中有五处都需修改

resource.cfg 文件

resource.cfg 是 nagios 的变量定义文件 一般无需更改

commands.cfg 文件

此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可

hosts.cfg 文件

此文件默认不存在,需要手动创建,hosts.cfg 主要用来指定被监控的主机地址以及相关属性信息,注意书写格式,不要有多余的空格

vim /usr/local/nagios/etc/objects/hosts.cfg
define host{
        use                    linux-server            // 引用主机 linux-server 的属性信息,linux-server 主机在 templates.cfg 文件中进行了定义。
        host_name              Nagios-Linux    // 主机名,自定义
        alias                  Nagios-Linux    // 主机别名
        address                172.16.10.20    // 被监控的主机地址,这个地址可以是 ip,也可以是域名。
        } 
define hostgroup{// 定义一个主机组
        hostgroup_name          bsmart-servers    // 主机组名称,可以随意指定。
        alias                  bsmart servers    // 主机组别名
        members                Nagios-Linux      // 主机组成员,其中“Nagios-Linux”就是上面定义的主机。
        }

localhost.cfg

用来监控本机 一般无需更改

services.cfg

此文件默认也不存在,需要手动创建, 主要用于定义监控的服务和主机资源

vim /usr/local/nagios/etc/objects/services.cfg
define service{
        use                    local-service      // 引用 local-service 服务的属性值,local-service 在 templates.cfg 文件中进行了定义。
        host_name              Nagios-Linux      // 指定要监控哪个主机上的服务,“Nagios-Server”在 hosts.cfg 文件中进行了定义。
        service_description    check-host-alive  // 对监控服务内容的描述,以供维护人员参考。
        check_command          check-host-alive  // 指定检查的命令。
        } 

contacts.cfg

contacts.cfg 是一个定义联系人和联系人组的配置文件, 注意书写格式。

vim /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name                    chen            // 联系人的名称, 这个地方不要有空格
        use                            generic-contact // 引用 generic-contact 的属性信息,其中“generic-contact”在 templates.cfg 文件中进行定义
        alias                          Nagios Admin
        email                          46****06@qq.com // 填入真实可用邮箱,也可不写
        }
define contactgroup{
        contactgroup_name      np                      // 联系人组的名称, 同样不能空格
        alias                  Technical Support      // 联系人组描述,言简意赅,能懂什么意思就行
        members                chen                    // 联系人组成员,其中“chen”就是上面定义的联系人,如果有多个联系人则以逗号相隔
        }

cgi.cfg

此文件用来控制相关 cgi 脚本, 由于 nagios 的 web 监控界面验证用户为 chen,所以只需在 cgi.cfg 文件中添加此用户的执行权限

default_user_name=chen
authorized_for_system_information=nagiosadmin,chen 
authorized_for_configuration_information=nagiosadmin,chen 
authorized_for_system_commands=chen
authorized_for_all_services=nagiosadmin,chen 
authorized_for_all_hosts=nagiosadmin,chen
authorized_for_all_service_commands=nagiosadmin,chen 
authorized_for_all_host_commands=nagiosadmin,chen            // 配置文件末尾插入

nagios.cfg

将对象配置文件在 Nagios.cfg 文件中进行引用

vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg    // 合适的位置插入
command_check_interval=10s  // 该变量用于设置 nagios 对外部命令检测的时间间隔,插入即可。

验证配置文件准确性

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

CentOS 7.4 下安装部署 Nagios 监控系统详细攻略

重启服务

systemctl restart httpd。service
systemctl restart nagios.service

访问 nagios 网站

该网站设置了登陆验证,所以在访问网站是输入之前设置的用户名和密码即可登陆网站。

http://172.16.10.34/nagios/

CentOS 7.4 下安装部署 Nagios 监控系统详细攻略
CentOS 7.4 下安装部署 Nagios 监控系统详细攻略

增加主机数

修改 hosts.cfg 文件

此文件默认不存在,需要手动创建,hosts.cfg 主要用来指定被监控的主机地址以及相关属性信息,注意书写格式,不要有多余的空格

vim /usr/local/nagios/etc/objects/hosts.cfg
define host{
        use                    linux-server            // 引用主机 linux-server 的属性信息,linux-server 主机在 templates.cfg 文件中进行了定义。
        host_name              Nagios-Linux    // 主机名,自定义
        alias                  Nagios-Linux    // 主机别名
        address                172.16.10.20    // 被监控的主机地址,这个地址可以是 ip,也可以是域名。
        } 
define host{
        use                    linux-server
        host_name              Nagios-Linu
        alias                  Nagios-Linu
        address                172.16.10.23
        }

define hostgroup{// 定义一个主机组
        hostgroup_name          bsmart-servers    // 主机组名称,可以随意指定。
        alias                  bsmart servers    // 主机组别名
        members                Nagios-Linux,Nagios-Linu      // 主机组成员,其中“Nagios-Linux”就是上面定义的主机。
        }

重启服务

systemctl restart httpd。service
systemctl restart nagios.service

CentOS 7.4 下安装部署 Nagios 监控系统详细攻略

 

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计6840字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中