实战CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

Nagios网上的教程百度一下一大把,发现有些教程讲法有点出入,估计有些都是拷贝乱贴乱飞,按有些说法去做,根本就做不下去,今天我亲自实践,现场抓图让你看得清楚看得明白,以及中间遇到什么问题,怎么解决,都会分享给大家,抓图再写出来有点辛苦,关键能学到东西一切都是值得滴,Follow me~!

下载centOS 6.0然后安装好系统,最好用vmware来做最好.

CentOS 6.0最新版国内下载地址:http://mirrors.163.com/centos/6.0/isos/i386/

自行装好系统以后现在开始装备安装前的环境准备
我把命令贴出来,为了方便大家操作你只要跟着我把命令拷贝和粘贴即可,省去敲打命令的麻烦也避免失误出错(小技巧提醒:装好centOS以后进入x-windows里面装个vmware tools就可以实现物理机和虚拟机之间的拷贝和粘贴,方法很简单这里就不说了)
yum -y install httpd gettext mysql mysql-server mysql-devel php php-mysql php-pear

image

yum install php-mysql mysql perl mysql-server perl-DBI perl-DBD-MySQL httpd gcc glibc glibc-common gd gd-devel php

image

在线下载nagios程序和插件

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz (现在最新版本的插件) 
wget http://sourceforge.net/projects/nagios-cn/files/sourcecode/zh_CN%203.2.3/nagios-cn-3.2.3.tar.bz2/download(最新版为3.3.1,装上去觉得界面变得不好看,顺便就找了个中文版的)

image

image

image

用户和组的准备

image

image

开始安装主程序

image

./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd

image

完成以后发现执行make all命令的时候出现以下错误

image

貌似CentOS下默认系统没有安装编译器,安装一下:

yum -y install gcc automake autoconf libtool make

image

继续做make all操作,发现最后报错了,

image

先执行make clean操作,然后再执行 ./configure && make all 操作通过(问题分享)接着再执行以下命令即可,没有出现任何状况.

image

image

image

image

image

接下来安装插件

image

./configure --with-nagios-user=nagios --with-nagios-group=nagios

image

image

添加访问页面用户nagiosadmin及密码,这里要记住此密码不要忘记了.

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

image

接下来启动相关服务

image

image

检查配置文件是否正确

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

image

[经验分享:由于这一串检查的命令很长,应用率也比较高,这里我们可以自定义一个命令来代替这一长串的命令

编辑.bashrc这个文件

image

在里面用alias 来自定义一个命令来代替,这里我用check

image

用source命令在当前bash环境下读取并执行bashrc中的命令

image

这样我们自定义的命令就生效了,以后只要输入check就可以检查nagios配置文件是否存在错误了,简单方便.]

发现没有警告和错误就表示通过了

image

现在就可以用http://serverip/nagios 方式访问nagios web访问控制台了.

开了防火墙记得要开放80端口,要不然连接不到,或者直接关闭防火墙用命令service iptables stop关闭即可.

image

问题分享:进入页面的时候点主机或其它选项的时候报此错误,后面百度一下原来是开启了selinux强制访问控制安全模块所致

image

注意:如果你开启了selinux 需要配置如下二步: 
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ 
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

image

这样正宗的中文版出来了,总算迈出了成功的一小步,耐心坚持让我们继续吧~~!

image

[经验分享:我这里用虚拟机做的,记得系统和网络相关参数配置好以后做一个系统的快照,配到这里nagios安装成功以后我们再做一个快照,以免后面配乱出问题的时候我们可以返回到这里重新再配置,方便快捷,记住做快照的时候先把虚拟机关闭以后再做,要不然快照出来的文件大得吓人,而关闭以后做快照文件才几百KB.]

SNAGHTMLbffa284

ok下面我们接着来

[nrpe_plugins指标采集程序主要是用来分析nrpe客户端的plugin脚本采集性能指标数据。目前实现的有cpu、memory、disk、buffer、singleprocess、oracle、sybase等方面的性能指标的分析,这个插件需要分别安装在主控端和被控端上,这个插件需要openssl的支持,没有就直接在线安装一下(yum install openssl-devel)所以还需在nagios主机和被控端安装,感觉挺麻烦,没办法它需要咱们就跟着做哈.]

先把nrpe下载下来先.

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

image

解压文件

image

编译安装

image

image

完成以后没有出错就可以看到以下生成的文件了

image

二:配置PNP

[PNP是一个基于php和perl,用rrdtool将nagios采集的数据绘制图表的工具,所以安装pnp之前必须先安装php perl  and rrdtool这里用yum直接来安装rrdtool,单独下载安装有很多依存关系,挺麻烦.]

image

我这里找到最新的版本是0.6.15

wget http://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.15.tar.gz/download

image

image

image

编译的时候报错了.

image

yum install perl-Time-HiRes

image

继续编译发现有个perl modules没有发现,好像提示用来加速什么的,暂时不管它了

image

image

根据提示需要继续

image

image

image

image

然后把相关后缀带sample文件变更成无sample后缀

image

配置Nagios来启用PNP

image

enable_environment_macros=1默认是开启了的 
 

image

pnp4nagios有很多种工作模式,这里我们选用同步模式,想选其它模式可以看说明都有详细配置教程(不同模式配置不同

image

这里我们按说明的设定方法来做

image

[这里先把pnp4nagios执行数据收集的文件拷贝到nagios的libexec下,方便统一命令的执行路径.]
cp /usr/local/pnp4nagios/libexec/process_perfdata.pl /usr/local/nagios/libexec/

image

然后在commands.cfg里面加入如下(这里是同步模式设定方法

image

#process-host-perfdata' command definition 
define command{ 
        command_name    process-host-perfdata 
        command_line    $USER1$/process_perfdata.pl -d HOSTPERFDATA 
        }

#process-service-perfdata' command definition 
define command{ 
        command_name    process-service-perfdata 
        command_line    $USER1$/process_perfdata.pl 
        } 
 

image

然后添加小太阳模版,镶嵌在nagios页面上
[这里有两种查看图的方法,第一种方法是你当太阳的图标的时候会在新窗口中打开图形查看,第二种方法是你只需要把鼠标移动到太阳图标上面就会自动弹出图形出来,以下两种方法你可以根据自己喜好选其中一种即可]
第一种方法在templates.cfg里面加入如下

image

define host { 
   name       host-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_ 
   register   0 
}

define service { 
   name       srv-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ 
   register   0 

 

image

第二种方法按照说明加入如下

image

拷贝status-header.ssi到/usr/local/nagios/share/ssi/目录下面来(这一步很重要,要不然移动到太阳标记上出不来图

image

define host { 
   name       host-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ 
   register   0 
}

define service { 
   name       srv-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ 
   register   0 

第二种方法最终效果图

image

为目标主机图标旁边添加一个小太阳标记

image

image

为相关服务添加一个小太阳标记

image

image

先做一下pnp4nagios环境测试,发现php-gd模块无效,用命令yum install php-gd安装成功以后还是不行,后来经老男孩指点用yum install php* -y安装然后重启系统成功通过,

image

image

image

按要求重命名install.php

image

做好相关配置以后请用命令重启一下nagios的服务

image

ok,到此总算配置好了PNP,配置了这么多有点累了,但我们还要继续,配置本章最后一个Nagios WEB管理工具叫NagiosQL(注:还有同样一个Nagios WEB管理工具叫Nconf)

wget http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.1.1/nagiosql_311.tar.gz/download

image

NagiosQL是一个WEB管理工具,只要把其放到下Apache即可。因为这里它要和Nagios整合到一起,为了方便管理,把其放在Nagios目录下

image

image

建立nagiosQL导出nagios配置文件的目录,并修改权限

建目录和改权限
mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import}
chown -R apache:nagios /etc/nagiosql/
chmod -R 755 /etc/nagiosql
chmod 777 /usr/local/nagios/nagiosql/config

image

Nagios相关文件权限的设定
chown nagios:apache /usr/local/nagios/etc
chown nagios:apache /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chown nagios:apache /usr/local/nagios/etc/*
chmod 664 /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chmod 775 /usr/local/nagios/etc

image

设定nagios二进制文件的权限,以便其能够通过Web程序执行
chown nagios:apache /usr/local/nagios/bin/nagios
chmod 750 /usr/local/nagios/bin/nagios
chown -R apache.nagios /usr/local/nagios/var/spool/
chown nagios:apache /usr/local/nagios/var/rw/nagios.cmd
chmod 660 /usr/local/nagios/var/rw/nagios.cmd

image

为apache添加nagiosQL虚拟目录

image

Alias /nagiosQL "/usr/local/nagios/nagiosql" 
<Directory "/usr/local/nagios/nagiosql"> 
# SSLRequireSSL 
Options None 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory>

image

重新加载httpd服务和启动mysqld服务

image

建立nagiosql安装文件
touch /usr/local/nagios/nagiosql/install/ENABLE_INSTALLER

image

访问http://ip/nagiosQL进行安装

问题分享:我在访问的时候提示没有权限访问,搞了半天原来是SElinux惹的祸,修改SELinux的实时运行模式,setenforce 0 (设置SELinux 成为permissive模式)这个只是临时解决方法,优点是不需重启系统生效,但如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0

image

选取中文然后点开始安装按钮

image

测试所需环境通过,直接按下一步即可

image

删除安装目录,这里使用改权限:chmod 000 /usr/local/nagios/nagiosql/install

image

image

到这里安装步骤总算结束了,下面我们还需要进行相关配置工作.

image

管理-域-localhost---点“修改”

image

按如图所示更改相应的路径即可

image

工具-导入数据 右边会列出一些配置文件,选择导入即可。
导入只是把配置文件内容导入到Mysql数据库,而使用其配置文件时,是一个个cfg文件,所以下面要进行写入过程

image

工具-nagios控制-写入检测数据-写入其他数据

image

检查配置文件成功

image

image

写入之后就可以看到相应的cfg文件了,查看写入是否成功,由下面的输出可以看出写入是成功滴.

image

修改nagios的配置文件,将原有以cfg_file开头项全部注释掉,加入上面新写入的配置文件

image

注释掉

image

加入新的配置文件路径
cfg_dir=/etc/nagiosql/hosts/ 
cfg_dir=/etc/nagiosql/services/ 
cfg_file=/etc/nagiosql/commands.cfg 
cfg_file=/etc/nagiosql/contactgroups.cfg 
cfg_file=/etc/nagiosql/contacts.cfg 
cfg_file=/etc/nagiosql/contacttemplates.cfg 
cfg_file=/etc/nagiosql/hostdependencies.cfg 
cfg_file=/etc/nagiosql/hostescalations.cfg 
cfg_file=/etc/nagiosql/hostextinfo.cfg 
cfg_file=/etc/nagiosql/hostgroups.cfg 
cfg_file=/etc/nagiosql/hosttemplates.cfg 
cfg_file=/etc/nagiosql/servicedependencies.cfg 
cfg_file=/etc/nagiosql/serviceescalations.cfg 
cfg_file=/etc/nagiosql/serviceextinfo.cfg 
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg 
cfg_file=/etc/nagiosql/timeperiods.cfg

image

检查nagios的配置文件是否有问题,然后生重启nagios服务,至此整个搭建过程终于完成了,下一节将讲解重头戏,怎么用nagiosQL添加需要监控的主机以及启用nagios报警机制,待续~~!

NagiosQL添加监控主机及Nagios上启用报警机制

http://allanfan.blog.51cto.com/520839/704288




     本文转自allanhi 51CTO博客,原文链接:http://blog.51cto.com/allanfan/684169,如需转载请自行联系原作者





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
JSON Rust 安全
30天拿下Rust之实战Web Server
30天拿下Rust之实战Web Server
26 7
|
8天前
|
JavaScript 前端开发 数据安全/隐私保护
组件库实战 | 教你如何设计Web世界中的表单验证
该文章通过实战演练,教授了如何在Web应用中设计和实现表单验证,包括使用Vue.js处理表单输入的验证逻辑、展示错误信息以及通过插槽和组件间通信来增强表单的功能性和用户体验。
组件库实战 | 教你如何设计Web世界中的表单验证
|
11天前
|
缓存 中间件 网络架构
Python Web开发实战:高效利用路由与中间件提升应用性能
在Python Web开发中,路由和中间件是构建高效、可扩展应用的核心组件。路由通过装饰器如`@app.route()`将HTTP请求映射到处理函数;中间件则在请求处理流程中插入自定义逻辑,如日志记录和验证。合理设计路由和中间件能显著提升应用性能和可维护性。本文以Flask为例,详细介绍如何优化路由、避免冲突、使用蓝图管理大型应用,并通过中间件实现缓存、请求验证及异常处理等功能,帮助你构建快速且健壮的Web应用。
11 1
|
20天前
|
机器学习/深度学习 算法 开发工具
Python Web开发工具
Python Web开发工具
18 3
|
25天前
|
安全 前端开发 JavaScript
Web安全-网页开发者工具
Web安全-网页开发者工具
38 7
|
2月前
|
数据库 开发者 Java
颠覆传统开发:Hibernate与Spring Boot的集成,让你的开发效率飞跃式提升!
【8月更文挑战第31天】在 Java 开发中,Spring Boot 和 Hibernate 已成为许多开发者的首选技术栈。Spring Boot 简化了配置和部署过程,而 Hibernate 则是一个强大的 ORM 框架,用于管理数据库交互。将两者结合使用,可以极大提升开发效率并构建高性能的现代 Java 应用。本文将通过代码示例展示如何在 Spring Boot 项目中集成 Hibernate,并实现基本的数据库操作,包括添加依赖、配置数据源、创建实体类和仓库接口,以及在服务层和控制器中处理 HTTP 请求。这种组合不仅简化了配置,还提供了一套强大的工具来快速开发现代 Java 应用程序。
62 0
|
2月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
49 0
|
2月前
|
Java 数据库连接 Spring
Struts 2 插件开发竟如魔法盛宴,为框架注入超能力,开启奇幻编程之旅!
【8月更文挑战第31天】在Web开发中,Struts 2插件开发允许我们在不改动框架核心代码的前提下,通过创建实现特定接口的Java类来扩展框架功能、调整其行为或促进与其他框架(如Spring、Hibernate)的集成,从而更好地满足特定业务需求。遵循良好的设计原则与实践,能够确保插件的高效稳定运行并提升整体项目的可维护性。具体步骤包括创建项目、定义插件类、实现初始化与销毁逻辑,并将插件部署至应用中。
46 0
|
2月前
|
开发者 前端开发 开发框架
JSF与移动应用,开启全新交互体验!让你的Web应用轻松征服移动设备,让用户爱不释手!
【8月更文挑战第31天】在现代Web应用开发中,移动设备的普及使得构建移动友好的应用变得至关重要。尽管JSF(JavaServer Faces)主要用于Web应用开发,但结合Bootstrap等前端框架,也能实现优秀的移动交互体验。本文探讨如何在JSF应用中实现移动友好性,并通过示例代码展示具体实现方法。使用Bootstrap的响应式布局和组件可以确保JSF页面在移动设备上自适应,并提供友好的表单输入和提交体验。尽管JSF存在组件库较小和学习成本较高等局限性,但合理利用其特性仍能显著提升用户体验。通过不断学习和实践,开发者可以更好地掌握JSF应用的移动友好性,为Web应用开发贡献力量。
39 0
|
2月前
|
API UED 开发者
如何在Uno Platform中轻松实现流畅动画效果——从基础到优化,全方位打造用户友好的动态交互体验!
【8月更文挑战第31天】在开发跨平台应用时,确保用户界面流畅且具吸引力至关重要。Uno Platform 作为多端统一的开发框架,不仅支持跨系统应用开发,还能通过优化实现流畅动画,增强用户体验。本文探讨了Uno Platform中实现流畅动画的多个方面,包括动画基础、性能优化、实践技巧及问题排查,帮助开发者掌握具体优化策略,提升应用质量与用户满意度。通过合理利用故事板、减少布局复杂性、使用硬件加速等技术,结合异步方法与预设缓存技巧,开发者能够创建美观且流畅的动画效果。
57 0
下一篇
无影云桌面