CentOS下搭建Nagios

王尚
2014.11.09
操作系统:CentOS-6.5-i386-bin-DVD1.iso

安装在VM中进行测试的。
本章需要的软件链接:

php-5.3.2.tar.gz

http://www.163disk.com/fileview_2161669.html

nagios-plugins-1.4.14.tar.gz

http://www.163disk.com/fileview_2161667.html

nagios-cn-3.2.3.tar.bz2

http://www.163disk.com/fileview_2161666.html

nagios-3.2.0.tar.gz

http://www.163disk.com/fileview_2161665.html

httpd-2.0.63.tar.gz

http://www.163disk.com/fileview_2161664.html

本期文章按照《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》进行实验的,其中针对本人的操作故总结以后发表出来,如有雷同请谅解,这里仅仅作为学习交流之用。该教程链接http://www.163disk.com/fileview_2161673.html

1、介绍nagios

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

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

2) 
监控主机资源(处理器负荷、磁盘利用率等);

3) 
简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4) 
并行服务检查机制;

5) 
具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;

6) 
当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

7) 
可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;

8) 
自动的日志滚动功能;

9) 
可以支持并实现对主机的冗余监控;

10) 
可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

2、nagios的安装和配置

1) 安装nagios

(1)创建nagios用户和用户组,将nagios的主程序目录设置为nagios。

(2)
在nagios的监控服务器上开启sendmail服务,目的是让nagios在检测到故障时可以发送报警邮件。

(3)
编译安装nagios

(4)
设置nagios开机自启

nagios的安装目录下的结构

(5)安装nagios插件

nagios只提供少数的监控功能,它是通过相应的插件来实现其其它强大的功能。这里选用nagios-plugins-1.4.14版本。

注意:插件的安装必须和nagios安装的路径一致。安装完的插件会在nagios主程序目录/usr/local/nagios/libexec目录下产生可执行文件。

(6)安装nagios汉化插件(需要安装相应的类库才能完成,具体操作看本期文章结尾的备注1)

(7)安装与配置Apache

nagios提供Web监控界面,通过Web监控界面可以看到监控的主机和资源的运行状态。可以安装apache、nginx,这里选择apache。

(nagios3.1.x版本后,配置监控界面需要php的支持。)

安装apache

安装php(需要安装相应的类库才能完成,具体操作看本期文章结尾的备注2)

配置apache

修改/usr/local/apache2/conf/httpd.conf的apache的进程启动用户为nagios

修改为:

找到:

修改为并且增加如下内容:

为了安全,访问的nagios的web监控界面需要授权才能访问。在httpd.conf文件的最后添加如下信息:

(8)创建apache目录验证文件

在上面的配置中,指定了目录验证文件htpasswd,下面创建这样一个文件:

这样就在/usr/local/nagios/etc目录下创建了一个httpasswd的验证文件,对应的用户名为ixdba。

(9)启动apache服务

成功启动apache后,可以看到nagios的默认web监控界面。如果安装的是nagios的中文包,可以看到中文界面。

2) 配置nagios

nagios主要监控一台或者多台本地主机及远程主机的各种信息。默认的nagios配置没有任何监控内容,仅是一些模板文件。下面是/usr/local/nagios/etc目录下的一些配置文件:

nagios的默认配置文件并不是必需的,可以使用这些默认的配置文件,也可以创建自己的配置文件,然后在主配置文件nagios。cfg中引用。

nagios配置涉及的几个定义:主机、主机组、服务、服务组、联系人、联系人组、监控时间、监控命令。必需明白:第一步定义监控哪些主机、主机组、服务、服务组;第二定义监控要通过什么命令实现;第三定义监控的时间段;第四定义主机或服务出现问题时要通知的联系人和联系人组。

创建hosts.cfg文件定义主机和主机组。

创建services.cfg文件定义服务。

使用默认的contacts.cfg文件定义联系人和联系人组。

使用默认的commands.cfg文件定义命令。

使用默认的timeperiods.cfg文件定义监控时间段。

使用默认的templates.cfg文件作为资源引用文件。

templates.cfg是一个模板配置文件,将一些共性的属性定义成模板,以便多次引用。

resource.cfg文件是nagios的变量定义文件。

变量$USER1$指定了安装nagios插件的路径。如果把插件安装在其他路径,只需在此修改。

commands.cfg文件

hosts.cfg文件

此文件需要创建。hosts.cfg主要用来指定被监控的主机地址及相关属性信息。按以下配置:(创建了两个远程主机和一个主机组)

services.cfg文件需要自己动手创建,该文件主要用于定义监控的服务和主机资源。按以下进行配置:

在这里分别对web和mysql的主机设置了4个监控服务,分别是check_ping、check_ssh、check_ftp、check_http。在services.cfg文件中有很多对命令的定义。这些命令均在commands.cfg中进行定义。其实这些命令就是安装nagios插件后生成的可执行文件。

contacts.cfg文件是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障时,nagios会通过指定的通知方式将信息发给指定的联系人和联系人组。按以下进行配置:

timeperiods.cfg此文件定义监控的时间段。按如下配置:

cgi.cfg此文件定义控制相关的CGI脚本。如果想在nagios的web监控界面执行CGI脚本,例如:重启nagios进程、关闭nagios通知、停止nagios主机检测,就需要配置cgi.cfg文件了。由于nagios的web监控界面验证用户为ixdba,因此需要在cgi.cfg文件添加此用户的执行权限就可以了。按如下修改:

把新建的那几个文件放到/usr/local/nagios/etc/下,其他默认的放在原来位置即可。在nagios.cfg中调用相应的路径即可。

nagios.cfg该文件是nagios的核心文件,所有的对象配置文件都必须在这个文件中定义才能发挥作用,这里只要引用对象配置文件即可。以下是nagios.cfg文件的介绍:

(以上的引用路径有点变动,需要自己把自己的路径写进去)

3) 验证第二步的配置文件的正确性

使用上述的命令,可以很快的定位错误根源。

4) 启动和停止nagios

(初始化脚本启动nagios)/etc/init.d/nagios start或service nagios start

(手工方式启动nagios)/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

(初始化脚本关闭nagios)/etc/init.d/nagios stop或service nagios stop

(通过Kill方式关闭nagios)kill
(ps -ef|grep nagios)

(初始化脚本来重启nagios)/etc/rc.d/init.d/nagios reload或restart

通过web监控页面重启nagios(在进程里面)

手工方式平滑重启kill -HUP
pid

5) nagios使用邮件进行故障报警

nagios的故障报警功能很强大,可以支持邮件、短信、MSN、qq等多种方式。在这里面邮件报警最简单,只需添加报警的邮件地址即可;短信报警需要硬件或第三方插件支持,例如飞信;MSN和QQ报警需要编写自己的自定义的脚本。下图是邮件报警:

注:欢迎大家提出问题。。。

CentOS服务器运维监控Nagios(一)的更多相关文章

  1. 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus

    前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...

  2. 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...

  3. 优化Linux内核参数/etc/sysctl.conf sysctl 《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》

    优化Linux内核参数/etc/sysctl.conf  sysctl  <高性能Linux服务器构建实战:运维监控.性能调优与集群应用> http://book.51cto.com/ar ...

  4. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

  5. 运维监控-使用Zabbix Server 添加自定义 item

    运维监控-使用Zabbix Server 监控自定义 item  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...

  6. 运维监控-基于yum的方式部署Zabbix Server 4.0 版本

    运维监控-基于yum的方式部署Zabbix Server 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.如何选择zabbix版本 1>.打开zabbix官方 ...

  7. Linux服务器运维安全策略经验分享

    http://jxtm.jzu.cn/?p=3692 大家好,我是南非蚂蚁,今天跟大家分享的主题是:线上Linux服务器运维安全策略经验.安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折 ...

  8. 【微学堂】线上Linux服务器运维安全策略经验分享

      技术转载:https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&sn=6d403ab4 ...

  9. 谈谈我的windows服务器运维管理

    我们开发的页游General War(http://gw.gamebox.com)上线运营也有半年多了,服务器的开发到运维基本都由我一手包办,在服务器上线之后我们又招了一个程序员接手后续功能的开发,而 ...

随机推荐

  1. 数据结构与算法(c++)——查找二叉树与中序遍历

    查找树ADT--查找二叉树 定义:对于树中的每个节点X,它的左子树中的所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项. 现在给出字段和方法定义(BinarySearchTree.h) # ...

  2. Ubuntu命令模式基础

    Ubuntu是一个自由.开源.基于Debian的Linux发行版.在ubuntu的基础上,又衍生其它各具特色的Linux发行版.首先是一个操作系统,操作系统用于管理电脑硬件.要发挥出电脑的作用,还得依 ...

  3. JAVA类型擦除

    Java泛型-类型擦除 一.概述 Java泛型在使用过程有诸多的问题,如不存在List<String>.class, List<Integer>不能赋值给List<Num ...

  4. 鼠标滚轮图片放大缩小功能,使用layer弹框后不起作用

    今天在项目中遇到的一个问题:点击按钮使用layer弹框弹出一张图片,需要加一个鼠标滚轮放大缩小,图片也跟着放大缩小的功能.于是在网上找了一个demo. DEMO: <!DOCTYPE html ...

  5. Java内部类与final关键字详解

    一.内部类的几种创建方法: 1.成员内部类 class Outer{ private int i = 1; class Inner{ public void fun() {System.out.pri ...

  6. 记一次Nginx的配置

    记第一次Nginx的配置 Nginx 首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理.负载均衡.正向代理.http服务器.这次部署用到的就是反向代理. 反向代理就是指在目 ...

  7. 关于Latex中插入Visio图片文字不显示的问题

    经过探索,将Visio保存为pdf格式是最完美的解决方式,因为pdf文件保存了所有格式和字体信息. Visio输出pdf时要使其符合PDF/A标准.如果包含Visio的多余信息,就会在一些低版本Lat ...

  8. 第二章:2.8 通过Django 在web页面上面输出 “Hello word ”

    1. 第一步:配置 guest 目录下面的 settings.py 文件, 将 sign应用添加到 guest项目中. 2. 在 guest目录下面,打开 urls.py 文件,添加 要打开的路由文件 ...

  9. 【前端】用jQuery实现瀑布流效果

    jQuery实现瀑布流效果 何为瀑布流: 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.最早 ...

  10. acm->stl

    容器 queue 队列 定义 queue的定义需要两个参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型 基本方法 push(x) 入队,将x接到队列的末端 ...