centos7安装nagios步骤
一、Nagios简介

Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒,而"Agios"是"saint"的希腊表示方法。Nagios被开发在Linux下使用,但在Unix下也工作得非常好。
主要功能
- 网络服务监控(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的功能是监控服务和主机,但自身并没有该功能,所有的监控、检测功能都是通过插件来完成。
Nagios周期性调用插件检测服务器状态,并维持一个队列,所有插件返回状态信息都进入队列,Nagios每次从队首开始读取信息,并把状态通过web显示。
Nagios提供了许多插件,利用这些插件可以监控服务状态。安装完成后,在nagios主目录下/libexec放有nagios自带所有插件,如check_disk检查磁盘空间插件,check_load检查CPU负载等等。每一个插件可运行./check_xxx –h 查看其使用方法和功能。
Nagios可识别4种状态返回信息,即
- 0(OK)表示状态正常/绿色
- 1(WARNING)表示出现警告/黄色
- 2(CRITICAL)表示出现非常严重的错误/红色
- 3(UNKNOWN)表示未知错误/深黄色
Nagios根据插件返回值判断监控对象状态,并通过web显示。
四种监控状态

Nagios 自身没有报警代码,甚至无插件,交给用户或者其他相关开源项目组去完成。
Nagios基本上无依赖包,只要求系统是Linux或者其他Nagios支持的系统。安装apache可提供web页面访问。
Nagios如何管理远端服务器对象?
Nagios 系统提供了一个插件NRPE。通过周期性运行获得远端服务器状态信息。它们之间关系如下:


Nagios 通过NRPE 来远端管理服务
- 1. Nagios 执行check_nrpe 插件,告诉check_nrpe 去检测哪些服务。
- 2. 通过SSL,check_nrpe 连接远端机上的NRPE daemon
- 3. NRPE 运行本地插件检测本地服务状态(check_disk,..etc)
- 4. NRPE 把检测结果传给主机端check_nrpe,check_nrpe 再把结果送到Nagios状态队列
- 5. Nagios 依次读取队列信息,并显示
准备工作
本文 从官网获取Nagios源码包进行编译,需要编译环境,同时 Nagios 的Web界面需要有 Web 服务器和 PHP 运行环境。本文 Web 服务器使用 Apache,用户也可以自行选择使用其他 Web 服务器,如Nginx等。
以下命令均在root下进行:
yum install httpd php
yum install gcc glibc glibc-common unzip
yum install gd gd-devel
安装步骤
1 创建系统用户
创建 nagios 用户并设置密码
/usr/sbin/useradd -m nagios
passwd nagios
创建 nagcmd 用户组,将 nagios 和 apache(web 服务器的运行用户) 用户添加至该组
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
2 下载 Nagios 及其插件
可以前往 https://www.nagios.org 获取最新的软件包,这里以 Nagios 核心 4.2.1,以及插件 2.1.2 为例:
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.1.tar.gz
wget https://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz
3 Nagios 核心的编译与安装
解压源码包
tar -zxvf nagios-4.2.1.tar.gz
cd nagios-4.2.1
编译配置信息(以下命令切换到目录.../nagios-4.2.1下执行)
./configure --with-command-group=nagcmd
编译
make all
安装 Nagios,并初始化脚本及基础配置文件
make install
make install-init
make install-config
make install-commandmode
此时先不用启动 Nagios,安装步骤尚未完成
4 自定义配置信息
配置文件在目录 /usr/local/nagios/etc 下,通过这些基础配置信息可以直接启动 Nagios,现在唯一需要更改的是联系人信息,可以编辑 /usr/local/nagios/etc/objects/contacts.cfg ,将联系人邮件地址换成你自己的。
vi /usr/local/nagios/etc/objects/contacts.cfg
5 配置 web 服务器
创建 Apache 的配置文件,配置文件在目录 /etc/httpd/conf.d/
make install-webconf
为 Nagios 的 Web 界面创建 nagiosadmin 用户,并设置密码。
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
启动 Apache
systemctl start httpd
6 编译并安装 Nagios 插件包
Nagios 实际的监控脚本都是通过插件实现的,本文中的插件包是官方提供插件包(大约50个用于监控的插件),更多的插件可以去社区下载(https://exchange.nagios.org/),当然也可以自己编写插件。
解压插件包
tar -zxvf nagios-plugins-2.1.2.tar.gz
cd nagios-plugins-2.1.2
编译并安装(以下命令切换到nagios-plugins-2.1.2目录下执行)
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
7 启动 Nagios 核心
将 Nagios 核心加入自动启动列表
chkconfig --add nagios
chkconfig nagios on
检查 Nagios 基础配置文件(在之后修改过配置文件后,都可以用下边的方式进行检查)
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios 各个目录用途说明如下:
| bin | Nagios 可执行程序所在目录 |
| etc | Nagios 配置文件所在目录 |
| sbin | Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 |
| share | Nagios网页文件所在的目录 |
| libexec | Nagios 外部插件所在目录 |
| var | Nagios 日志文件、lock 等文件所在的目录 |
| var/archives | Nagios 日志自动归档目录 |
| var/rw | 用来存放外部命令文件的目录 |
如果没有错误,就可以直接启动 Nagios
systemctl start nagios
查看nagios是否启动
systemctl status nagios

8 SELinux 设置
首先查询SElinux状态:
sestatus
A.如果此时状态是enforcing,会导致访问 Nagios CGIs 时出现 Internal Server Error 的错误。
为避免这个错误可以:
a)在SELinux配置文件/etc/selinux/config中disabled SELinux,重启系统;
b)临时将其设置为 Permissive 模式,但仅本次开机有效,下次启动依然是enforce:
setenforce 0
B.如果不想关闭 SELinux 或者将其设置为 Permissive ,即在 enforcing/targeted 模式下可以使用如下命令进行设置
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
9 登录 Web 界面查看
访问 http://localhost/nagios,通过 nagiosadmin 用户及刚才设置的密码登录。
点击左侧目录中的 Service,可以查看当前监控的服务。
10 其他配置
至此,Nagios 的基础安装就结束了。这里还要补充说明的一下,服务器的防火墙需要允许 apache 80 端口的访问,可以通过如下命令设置防火墙,允许 80 端口的访问。
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
如果不能访问网页nagios,采取直接关闭防火墙:
systemctl status firewalld.service
systemctl stop firewalld.service
注意此时还无法发送邮件
参考http://blog.csdn.net/firstar521/article/details/52848393
centos7安装nagios步骤的更多相关文章
- Centos7安装moloch步骤
Centos7安装moloch步骤 Moloch 是一个由AOL开源的,能够大规模的捕获IPv4数据包(PCAP).索引和数据库系统,由以下三个部分组成: capture :绑定interface ...
- CentOS7安装nagios并配置出图详解
目录 开始之前 系统环境 监控内容 所需软件包 台机器,全都按照CentOS7最小化模式安装系统 系统版本号 [root@localhost ~]# cat /etc/redhat-release ...
- CENTOS7安装DOCKER步骤以及安装阿里镜像加速后无法正常启动服务的问题2018年1月
本文时间2017年12月7日,比较新,大家可以直接参考.有问题直接评论 我根据菜鸟教程通过yum install docker安装了docker,由于测试发现奇慢无比,所以就安装了阿里云的加速,随后也 ...
- centOS7安装docker步骤
首先准备一台linux系统, Docker需要一个64位系统的系统,内核的版本必须大于3.10,可以用命令来检查是否满足要求: 满足条件后,下面开始正式安装步骤: 1.更新yum: sudo yum ...
- Centos7安装 PostgreSQL步骤
1. 安装服务器即可. Yum install postgresql-server Yum install postgresql-contrib 2. 验证是否安装成功: rpm -aq| grep ...
- Centos7 安装svn步骤(宝塔面板)
1.运行以下命令安装SVN yum install subversion 2.运行以下命令创建目录 mkdir /var/svn 3.依次运行以下命令创建版本库 cd /var/svn svnad ...
- CentOS7 安装 mysql8
本文主要从以下几个方面对自己在centos7 下安装mysql8过程做如下总结: CentOS7 安装mysql8 步骤: window下的Navicat 连接MySql8: 涉及到的Linux命令 ...
- Centos7安装packstack
Centos7安装packstack 步骤一 下载centos7.6 https://archive.kernel.org/centos-vault/7.6.1810/isos/x86_64/Cent ...
- CentOS7/RHEL7安装Redis步骤详解
CentOS7/RHEL7安装Redis步骤详解 CentOS7/RHEL7安装Redis还是头一次测试安装了,因为centos7升级之后与centos6有比较大的区别了,下面我们就一起来看看Cent ...
随机推荐
- 前端学PHP之正则表达式基础语法
前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...
- 【转】对于HttpClient和HtmlUnit的理解
原文地址:http://www.haohaoblog.com/?p=1327&utm_source=tuicool 做Java编程的人其实,很多不懂SEO,也不知道如何让百度收录等等,当然,对 ...
- 【转】Tomcat源代码阅读系列
在IntelliJ IDEA 和 Eclipse运行tomcat 7源代码(Tomcat源代码阅读系列之一) Tomcat总体结构(Tomcat源代码阅读系列之二) Tomcat启动过程(Tomcat ...
- 一位资深程序员给予Java初学者的学习路线建议
一位资深程序员给予Java初学者的学习路线建议 java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干 ...
- 解决新建maven项目速度慢的问题
问题描述 通过idea新建maven项目,参数设置好后,idea自动构建maven项目时,速度很慢. 参数设置如图: 执行时间如下图: Total time为8:49,花了将近十分钟时间. 连续尝试了 ...
- 3步轻松搭建Unity3d安卓开发环境
之前写过一个Untiy3d安卓开发环境的配置教程,那是我第一次学习配置安卓开发环境,互联网上的信息良莠不齐,自己当时也不懂,配置步骤麻烦的一塌糊涂,现在见的多了,也会的多了,配置安卓开发环境变得非常容 ...
- 设置debian的静态IP
欲设置的信息: IP地址:198.9.146.131 子网掩码:255.255.255.0 网关:198.9.146.254 DNS:198.9.9.1 198.9.9.2 首先编辑/etc/netw ...
- UIScrollView 和 UICollectionView 分页效果
UIScrollView 和 UICollectionView 分页效果 UIScrollView可以滚动显示宽度或高度大于其bounds的内容.有些时候,需要有分页效果.每一页有统一的大小,相邻无缝 ...
- 深入理解ajax系列第三篇——响应解码
前面的话 我们接收到的响应主体类型可以是多种形式的,包括字符串String.ArrayBuffer对象.二进制Blob对象.JSON对象.javascirpt文件及表示XML文档的Document对象 ...
- [.net 面向对象程序设计深入](26)实战设计模式——使用Ioc模式(控制反转或依赖注入)实现松散耦合设计(1)
[.net 面向对象程序设计深入](26)实战设计模式——使用IoC模式(控制反转或依赖注入)实现松散耦合设计(1) 1,关于IOC模式 先看一些名词含义: IOC: Inversion of con ...