zoukankan      html  css  js  c++  java
  • Centos7 Nagios 搭建

    Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能。本文章将介绍其安装方法和详细的配置方法。

    总结

    1. 可以做资源,网络,应用服务的监控
    2. 配置上需要配置被监控的,服务,账号等信息
    3. 有 web 管理界面可操作
    4. 教程里没有提及被监控端的配置,暂止,估计坑多。

    nagios 监控服务应用指南

    • 本地资源:负载,CPU,磁盘,内存。IO,RAID,温度,passwd文件变化,本地所有文件指纹识别
    • 网络服务:端口,URL,丢包,进程,网络流量
    • 其他设备:交换机,打印机,windows等。
    • 业务数据:用户登录失败次数,用户登录网站次数,输入验证码失败的次数,某个API接口流量并发,电商网站订单,支付交易的数量

    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插件。
    角色 IP地址 所用软件
    监控端 10.211.55.4 nagios-4.4.2、nagios-plugins-2.2.1
    被监控端 10.211.55.5

    操作步骤

    安装环境包

    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

    wget http://jaist.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.4.2/nagios-4.4.2.tar.gz
    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

    安装nagios-plugins

    wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
    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

      DirectoryIndex index.html index.php //增加index.php

    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"

    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

    设置登陆用户名及密码
    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 10.211.55.5 //被监控的主机地址,这个地址可以是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 332846174@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

    重启服务
    systemctl restart httpd.service
    systemctl restart nagios.service

    访问nagios网站

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

    http://10.211.55.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 10.211.55.5 //被监控的主机地址,这个地址可以是ip,也可以是域名。
    }

    define host{
    use linux-server
    host_name Nagios-Linu
    alias Nagios-Linu
    address 10.211.55.6
    }

    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监控系统详细攻略

    Go!!!
  • 相关阅读:
    【iCore1S 双核心板_ARM】例程六:WWDG看门狗实验——复位ARM
    【emWin】例程三十二:窗口对象———Progbar
    【iCore4 双核心板】DEMO V1.0 测试程序发布
    【iCore1S 双核心板_FPGA】例程二:GPIO输入实验——识别按键输入
    【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
    【emWin】例程三十一:窗口对象——Multipage
    【iCore1S 双核心板_ARM】例程四:USART通信实验——通过命令控制LED
    【iCore1S 双核心板_FPGA】例程一:GPIO输出实验——点亮LED
    【iCore1S 双核心板_ARM】例程三:EXTI中断输入实验——读取ARM按键状态
    【emWin】例程三十:窗口对象——Multiedit
  • 原文地址:https://www.cnblogs.com/shliujing/p/Centos7-Nagios-da-jian.html
Copyright © 2011-2022 走看看