Nagios远程监控软件的安装与配置详解

作者:redhat_hu

Nagios是一款功能强大的网络监视工具,它可以有效的监控windows、linux、unix主机状态以及路由器交换机的网络设置,打印机工作状态等,并将状态出现异常的服务及时以邮件、msn短信等形式第一时间通告管理员。由于它是一款遵循GPLv2的开源网络监控软件,以其出色的性能低廉的使用成本,深受广大用户的好评。

nagios的主要监控功能有:

1)监控网络服务(HTTP、POP3、SMTP、PING、MySQL等)

2)监控主机资源(磁盘空间利用率、内存利用率、CPU负载等)

3)简洁的插件设计接口,使得用户可以轻松开发所需的检测脚本(运维则可直接找到相关脚本并使用)

4)并行服务模式

5)轻松描述网络结构,并且能够区辨“宕机”和“主机不可达”

6)通过邮件或用户自定义的方式将主机或服务的工作状态变化情况通知给管理员6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式)  可以通过飞信,等方式实现时,既可传递给管理员,可高效的保证服务器的维护

7)自动日志滚动

8)支持以冗余方式进行主机监控

9)可以通过web方式直观的查看当前网络状态、通知和问题历史、日志文件等等,此组件为可选

Nagios相关的配置文件:

nagios.cfg为其主配置文件其中可以定义nagios的一些基本工作状态可监控机的配置文件;

command.cfg其为nagios的监控命令配置文件,在其中可定义nagios在监控过程中针对某项服务所使用到得命令;

contact.cfg其为nagios报警途径配置文件,它用来定义一旦监控到某台主机状态异常或某服务状态为离线通知运维人员的方法;

timeperiods.cfg用于定义nagios向运维人员发送报警的周期时间频率等; resource.cfg用于定义nagios监控服务所使用到脚本所在路径;

templates.cfg中定义的是nagios监控各项主机或服务属性状态所需的模板。

工作原理不在赘述,直接上图:

下文将包括这些内容:安装配置最新版nagios V3.3.1、添加定义被监控Windows主机和Linux主机、具体服务的监控、出现异常情况报警手段定义以及配置过程中笔者所遇到并解决的一些问题。

废话不多说,直接开始配置内容

1.到nagios官网下载到最新版的nagios-3.3.1.tar、nagios-plugins-1.4.15.tar、nrpe-2.12.tar以及windows的客户端nsclient_201.zip

2.安装nagios部署过程中需要依赖到得其他软件和库文件
# 安装Nagios必须的基本组件的运行依赖于httpd、mysql、gd以及编译用到的gcc

  1. yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel openssl-devel

复制代码

Nagios 监控端程序的安装及配置
1.添加nagios用户和组

  1. groupadd nagcmd
  2. #添加与nagios运行相关服务的组
  3. useradd -m nagios
  4. #添加nagios用户
  5. usermod -a -G nagcmd nagios
  6. #将nagios用户追加附加组
  7. usermod -a -G nagcmd apache
  8. #将apache用户追加nagcmd组使之工作时具有足够的权限

复制代码

2.编译安装nagios 3.3.1

  1. tar xvf nagios-3.3.1.tar.gz
  2. cd nagios
  3. # ./configure --with-command-group=nagcmd --enable-event-broker
  4. #默认安装路径在/usr/local/nagios/
  5. make all && make install && make install-init && make install-config && make install-commandmode && make install-webconf
  6. #安装主程序、添加初始化程序、生成配置文件、生成web配置文件

复制代码

make install-webconf的作用:在/etc/httpd/conf.d/nagios.conf生成web相关配置文件,用于定义nagios使用的CGI选项,web的身份认证等

  1. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
  2. New password:
  3. Re-type new password:
  4. Adding password for user nagios
  5. #为nagios的web页面创建账号密码,对访问进行身份认证
  6. service httpd restart
  7. chkconfig httpd on
  8. #启动httpd,并设置开机启动

复制代码

PS:此处用户名尽量使用默认nagiosadmin,否则就需要修改cgi.cfg文件中所有关于认证选项的用户

3.编译安装nagios-plugins

nagios的所有监控工作都是由nagios-plugins插件完成的,因此,在启动nagios之前还需要为其安装nagios-plugins。

  1. tar xvf nagios-plugins-1.4.15.tar.gz
  2. cd nagios-plugins-1.4.15
  3. ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql
  4. #添加mysql依赖
  5. make && make install
  6. #编译并安装

复制代码

Ps:此处作者在安装nagios-cn-3.2.3.tar过程中,在此处编译完成发现mysql关联库文件本跳过。经分析原因是由于在编译nagios时修改了nagios的默认安装路径(非/usr/local/nagios)。  解决办法:

  1. cp /usr/lib/mysql/mysql_config /usr/lib/pkgconfig/
  2. #将mysql的配置文件放在这个目录下使之能够在编译过程中读到相关配置选项
  3. 再进行编译安装nagios-plugins

复制代码

4.测试配置文件语法并尝试启动nagios

  1. chkconfig --add nagios
  2. chkconfig nagios on
  3. #添加nagios到开机启动项
  4. vim /etc/profile
  5. PATH=$PATH:/usr/local/nagios/bin
  6. #向profile加入这一行,指明nagios命令的path
  7. . /etc/profile
  8. nagios -v /var/www/nafios/etc/nagios.cfg
  9. #检查配置文件的语法
  10. service nagios start
  11. #如语法监测为报错则尝试开启服务

复制代码

注意:此时需要关闭SELINUX或针对nagios对SELIUNX进行配置

  1. 方法一、直接关闭selinux
  2. getenforce
  3. #查看selinux的运行状态
  4. setenforce 0
  5. #如果是enforce(开启)状态,则关闭
  6. Ps:如果您想在今后的使用中完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
  7. 方法二、修改相关文件的type
  8. chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
  9. chcon -R -t httpd_sys_content_t /usr/local/nagios/share
  10. #进行这些操作就可以在selinux开启的状态下正常访问nagios

复制代码

5.打开浏览器检测nagios的工作情况

http://192.168.0.71/nagios

注意:如果htpasswd生成的密码没有使用的默认的nagiosadmin则会导致无法正常显示监控信息,将cgi.cfg中use_authentication=1改成0虽能显示主机信息但在手动刷新服务状态时报错

解决方法:将cgi.cfg中认证用户改成htpasswd生成的用户;或按照cgi.cfg认证功能用户从新生成htpasswd。

配置监控Windows主机

1.修改nagios主配置文件

  1. vim /usr/local/nagios/etc/nagios.cfg
  2. cfg_file=/usr/local/nagios/etc/objects/windows.cfg
  3. #将这一行注释去掉

复制代码

2.修改用来定义windows的配置文件

  1. vim /usr/local/nagios/etc/objects/windows.cfg
  2. define host{
  3. use             windows-server  ; Inherit default values from a template
  4. host_name       winserver       ; The name we're giving to this host
  5. alias           My Windows Server       ; A longer name associated with the host
  6. address         192.168.0.72   ; windowsIP
  7. }
  8. #修改IP,此ip为windows主机IP

复制代码

配置监控Linux主机

1.编译安装nrpe

  1. tar xvf nrpe-2.12.tar
  2. cd nrpe-2.12
  3. ./configure --enable-ssl --with-ssl-lib=/lib/
  4. make all && make install-plugin

复制代码

2.在nagios中定义nrpe

  1. vi /usr/local/nagios/etc/objects/commands.cfg
  2. #check nrpe
  3. define command{
  4. command_name check_nrpe
  5. command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
  6. }
  7. #在末行添加这些内容

复制代码

3.创建定义linux的配置文件

  1. vim /usr/local/nagios/etc/objects/mylinux.cfg
  2. define host{
  3. use             linux-server
  4. host_name     mylinux
  5. alias            mylinux
  6. address        192.168.0.72#客户端IP即被监控的IP
  7. }
  8. define service{
  9. use                      generic-service
  10. host_name             mylinux
  11. service_description     check-load
  12. check_command         check_nrpe!check_load
  13. }
  14. define service{
  15. use                      generic-service
  16. host_name             mylinux
  17. service_description     check-users
  18. check_command        check_nrpe!check_users
  19. }
  20. define service{
  21. use                    generic-service
  22. host_name           mylinux
  23. service_description  otal_procs
  24. check_command     check_nrpe!check_total_procs
  25. }
  26. chown -R nagios:nagios mylinux.cfg
  27. #修改配置文件的属主属组

复制代码

4.修改配置文件

  1. vim /usr/local/nagios/etc/nagios.cfg
  2. cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg
  3. #在主配置文件指明linux主机的配置文件路径

复制代码

Windows 监控端配置

安装NSClient,进入安装目录修改配置文件NSC.ini,将[module]下所有库文件的注释删去。运行nsclient。

Linux 监控端配置

1.添加nagios用户

  1. useradd nagios

复制代码

2.编译安装nagios-plugin

  1. tar zxf nagios-plugins-1.4.15.tar.gz
  2. cd nagios-plugins-1.4.15
  3. ./configure --with-nagios-user=nagios --with-nagios-group=nagios
  4. make && make install

复制代码

3.编译安装nrpe

  1. yum install openssl-devel
  2. #先安装openssl解决依赖
  3. tar -zxvf nrpe-2.12.tar.gz
  4. cd nrpe-2.12.tar.gz
  5. ./configure --enable-ssl --with-ssl-lib=/usr/lib/
  6. make all && make install-plugin && make install-daemon && make install-daemon-config
  7. #编译安装

复制代码

4.配置并启用nrpe

  1. vim /usr/local/nagios/etc/nrpe.cfg
  2. allowed_hosts=192.168.0.71
  3. #监控端的IP
  4. /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
  5. #开启进程

复制代码

监控端重启nagios服务

  1. service nagiso restart

复制代码

浏览器刷新页面,即出现windows和linux被监控主机

监控服务的添加

下面就添加被监控主机mysql服务为例进行说明

1.被监控机(192.168.0.72)安装mysql并创建监控用户

  1. yum install mysql mysql-server
  2. #简单起见yum安装mysql
  3. service mysqld start
  4. #启动mysql
  5. mysqladmin -uroot -p password '123456'
  6. #给root用户创建mysql密码
  7. mysql -uroot -p
  8. #进入mysql
  9. mysql> create database nagios;
  10. #创建数据库
  11. mysql> grant select on nagios.* to nagios@'%' identified by 'redhat';
  12. #给nagios用户赋予查询权限
  13. mysql> flush privileges;
  14. #刷新特权表

复制代码

2.监控机(192.168.0.71)修改相关配置文件

  1. vim /usr/local/nagios/etc/objects/command.cfg
  2. #check mysql
  3. define command{
  4. command_name check_mysql
  5. command_line $USER1$/check_mysql -H 192.168.0.72 -u nagios -d nagios -p redhat
  6. }
  7. #在命令配置文件中添加这些字段

复制代码

  1. vim /usr/local/nagios/etc/objects/mylinux.cfg
  2. define service{
  3. use                    generic-service
  4. host_name           mylinux
  5. service_description  check_mysql
  6. check_command     check_mysql
  7. }
  8. #在linux主机配置文件中定义服务

复制代码

重启服务

  1. service nagios restart

复制代码

刷新浏览器页面

异常报警

这里选用飞信作为异常报警手段,异常事件出发直接以短信形式通知运维人员

1.飞信的安装

  1. unzip fetion.zip
  2. cd ../fetion
  3. mv fetion /usr/bin/
  4. #将飞信脚本放在/usr/lib
  5. chmod +x /usr/bin/fetion
  6. #添加执行权限
  7. mv ./* /usr/lib
  8. #将剩余所有库文件移动到/usr/lib

复制代码

Ps:飞信程序已上传至本文附件中

2.修改nagios相关配置文件

  1. vim /usr/local/nagios/etc/templates.cfg
  2. define contact{
  3. name                            generic-contact
  4. service_notification_period     24x7
  5. host_notification_period        24x7
  6. service_notification_options    w,u,c,r,f,s
  7. host_notification_options       d,u,r,f,s
  8. service_notification_commands   notify-service-by-fetion
  9. host_notification_commands      notify-host-by-fetion
  10. register                        0
  11. }
  12. #修改成上面字段
  13. vim /usr/local/nagios/etc/commands.cfg
  14. commands.cfg
  15. define command{
  16. command_name notify-service-by-fetion
  17. command_line      /usr/bin/fetion --mobile 您的手机号 --pwd 您的飞信密码 --to 您的手机号 --msg-tpye=0  --msg-utf8 $HOSTNAME
  18. }
  19. #添加这些字段

复制代码

重启服务使配置文件生效

关于nagios的配置流程以及应用添加就先写到这里,以上内容在您实现过程中出现的任何问题,欢迎在此交流; 并请各位高手前辈大神达人予以批评指正,谢谢!

Nagios远程监控软件的安装与配置详解相关推荐

  1. keepalived介绍、安装及配置详解

    文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...

  2. Julia的安装与配置详解(包含在Ubuntu 18.04和Windows 10系统上Julia的安装)

    Julia的安装与配置详解((包含在Ubuntu 18.04和Windows 10系统上Julia的安装) Julia的安装 使用二进制文件安装Julia 在Ubuntu上安装Julia 在Windo ...

  3. node.js卸载、安装、配置详解

    node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...

  4. Gradle安装和配置详解

    Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...

  5. gulp的安装和配置详解

    gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...

  6. Linux中Nginx安装与配置详解及常见问题

    3 Nginx安装 3.1 安装前的准备     1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库.     2) 准备 nginx-1. ...

  7. nagios安装与配置详解1

    一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...

  8. Nagios安装与配置详解

    一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报 ...

  9. nagios安装和配置详解

    写在最前 本文转载自https://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html,转载博客博主写的十分详细,本次转载仅用于学习交流. 一 ...

最新文章

  1. 巴克码matlab,matlab编写巴克码
  2. 集美大学1511,1512软件工程课程作业总结
  3. 风变编程python第一关脸黑怪我喽_风变编程:Python适合编程初学者学习吗?
  4. 模块开发卷宗是什么_详论单片机固件模块化架构设计(精华)
  5. centos7 没有pip命令_Linux(CentOS7)部署系列---Docker编排应用部署方案
  6. My SQL出错代码及出错信息对照
  7. leetcode 561. 数组拆分 I(排序)
  8. 网页html语言怎么看,怎样查看网页的css代码?
  9. datagrid wpf 获取选中_c# WPF DataGrid 获取选中单元格信息
  10. 老外用的文件服务器,云存储服务市场乱战 老外到底都用啥
  11. POJ 3254 Corn Fields (状态压缩)
  12. 查看cics 运行状态
  13. 三调业务摘要201709
  14. 用什么软件可以编辑pdf文件
  15. 淘宝API item_search_similar - 搜索相似的商品
  16. 计算机组装维护安装光驱步骤,光驱怎么安装?教你如何正确安装光驱方法
  17. 微信小程序Animation动画的使用
  18. IJCAI 2022奖项公布:3篇杰出论文,南加大、耶拿大学等机构在列
  19. 观大数据有感_读《大数据时代》有感-大数据时代的取舍
  20. 计算机音乐简单教学反思,一年级音乐教学反思(精选10篇)

热门文章

  1. php 提取登录QQsid_php模拟登录qq邮箱(curl命令详解)
  2. markdown学习记录
  3. Golang垃圾回收机制(一)
  4. 一轮项目冲刺——移山小分队(2)
  5. Michael-Scott非阻塞队列(lock-free)算法的C实现
  6. 【Servlet3.0新特性】第03节_文件上传
  7. JS回调函数(callback)
  8. POJ 3159 Candies
  9. io操作是指什么_各种IO模型,一篇打尽
  10. tableau双折线图_Tableau可视化之多变条形图