十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
nagios和nconf整合与使用
成都创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元西陵做网站,已为上家服务,为西陵各地企业和个人服务,联系电话:18980820575
一. nagios和nconf简介 3
1.nagios简介 3
2.nconf简介 3
二. 实验环境 3
1.安装MySQL 3
2.安装apache 4
3.安装php 4
4.配置防火墙和selinux 4
三. Nagios安装配置 4
1.安装基础支持套件 4
2.创建nagios用户和用户组 4
3.编译安装nagios 4
4.安装nagios插件 5
5.配置apache 5
6.创建apche目录验证文件 6
7.配置nagios 6
8.启动apache服务 7
9.nagios安装完成 7
四. nconf安装配置 7
1. 检查/etc/php.ini设置 7
2. 下载安装nconf 7
3. 创建nconf数据库以用户 8
4. 修改相关目录权限 8
5. 设置安全上下文 8
6. 在浏览器中访问 8
7. 安装完毕,整理nconf目录 12
8. 访问nconf: 12
五. nrpe安装配置 13
1.NRPE 工作原理 13
2. 在监控主机上安装check_nrpe插件 14
3. 在被监控主机安装nrpe deamon 14
3.1 新增用户 14
3.2 安装nagios插件 14
3.3修改目录权限 15
3.4 安装nrpe 15
3.5 测试nrpe是否正常工作 15
六. nconf的简单使用 16
1.添加监控设备流程 16
1.1 添加监控设备 16
1.2 添加监控服务 17
1.3 生成nagios配置文件 18
1.4 执行脚本使nagios配置生效 19
1.5 成功配置 19
2. 新增服务流程 19
2.1 上传监控脚本 19
2.2 添加Check命令 19
2.3 添加高级监控服务 20
2.4 使用刚添加的监控服务 22
3. 配置nagios自动部署 23
3.1 修改部署配置文件 23
3.2 修改/etc/sudoers 24
3.3 修改nagios的主配置 24
3.4 修改目录所有者 24
3.5 自动发布 24
3.6 重载nagios配置 25
3.7 成功进行自动部署 25
一.nagios和nconf简介
1.nagios简介
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。
启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。
Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。打开Nagios官方的文档,会发现Nagios基本上没有什么依赖包,只要求系统是Linux或者其他Nagios支持的系统。不过如果你没有安装apache(http服务),那么你就没有那么直观的界面来查看监控信息了,所以apache姑且算是一个前提条件。
2.nconf简介
NConf是一个用来配置Nagios监控软件的Web工具。它不同于类似的工具,它能够提供企业级功能,如模板、依赖、并能够配置一个大型分布式的Nagios服务器拓扑结构。它可以让你毫不费力地保持一个分布式的Nagios拓扑。具有一个用户友好的GUI,其特点是主机和服务的模板,图形依赖浏览器,多个身份验证模式,一个Nagios配置的提供者,一个CSV文件导入和Perl的数据库API,其数据架构是可定制和可扩展。
二.实验环境
LAMP环境部署
1.安装mysql
# yum install mysql perl mysql-server perl-DBI perl-DBD-MySQL
2.安装apache
# wget http://archive.apache.org/dist/httpd/httpd-2.4.6.tar.bz2
# tar -xvf httpd-2.4.6.tar.bz2
# cd httpd
# ./configure --prefix=/usr/local/apache2
# make&&make install
3.安装php
# wget http://cn2.php.net/distributions/php-5.5.3.tar.bz2
# tar -xvf php-5.5.3.tar.bz2
# cd php-5.5.3
#./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache2/bin/apxs --with-mysql
# make&&make install
4.配置防火墙和selinux
# iptables -F
# iptables -X
# iptables -Z
# iptables -P INPUT ACCEPT
# iptables -P OUTPUT ACCEPT
# iptables -P FORWARD ACCEPT
# setenforce 0
三.Nagios安装配置
1.安装基础支持套件
yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
2.创建nagios用户和用户组
# useradd -s /sbin/nologin nagios
# mkdir /usr/local/nagios
# chown -R nagios:nagios /usr/local/nagios
3.编译安装nagios
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.5.1.tar.gz
# tar -zxvf nagios-3.5.1.tar.gz
# cd nagios
# ./configure --prefix=/usr/local/nagios
# make all
# make install
# make instal-init
# make install-commandmode
# make install-config
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
4.安装nagios插件
#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
# tar --zxvf nagios-plugins-1.4.16.tar.gz
# cd nagios-plugins-1.4.16
# ./configure --prefix=/usr/local/nagios
# make&&make install
5.配置apache
修改/usr/local/apache2/conf/httpd.conf文件:
将User和Group修改如下:
User nagios
Group nagios
将DirectoryIndex修改如下:
DirectoryIndex index.html index.php
添加以下内容:
AddType application/x-httpd-php .php
为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在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
防止nagios页面乱码,在httpd.conf中新增如下:
AddDefaultCharset utf-8
同时将以下两行的注释去掉:
LoadModule cgid_module modules/mod_cgid.so
LoadModule actions_module modules/mod_actions.so
6.创建apche目录验证文件
在上面的配置中,指定了目录验证文件htpasswd,下面要创建这个文件(可根据实际情况新增,此处新增luyx这个账号):
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd luyx
这样就在/usr/local/nagios/etc 目录下创建了一个htpasswd 验证文件,当通过http://192.168.9.188/nagios/ 访问时就需要输入用户名和密码了。
7.配置nagios
修改/usr/local/nagios/etc/cgi.cfg文件,使得用户luyx具备相应的权限:
authorized_for_system_information=nagiosadmin,luyx
authorized_for_configuration_information=nagiosadmin,luyx
authorized_for_system_commands=nagiosadmin,luyx
authorized_for_all_services=nagiosadmin,luyx
authorized_for_all_hosts=nagiosadmin,luyx
#authorized_for_all_service_commands=nagiosadmin,luyx
#authorized_for_all_host_commands=nagiosadmin,luyx
8.启动apache服务
# /usr/local/apache2/bin/apachectl start
nagios的验证方法:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios的启动和停止:
# service nagios start
#service nagios stop
9.nagios安装完成
到此nagios的安装基本完成,可以通过web来访问了。
四.nconf安装配置
1.检查/etc/php.ini设置
该配置文件应该设置成如下:
short_open_tag = On
register_globals = Off
magic_quotes_gpc = Off
2.下载安装nconf
# wget http://file2.51cto.com/?mod=getCode&n=a1c4OzkJqDodjYyJUtT8qoXUQHDVx4Xn8la69BE+vme4/TcJWiteKExcBLbdVe/yfK0UaAaL1NDGHFyrL1Wm6wi2rxpOv95TdFEHryQQsp64mpf7+SU+Onn9mXx0ENS1d/1GBCjpotG0pag+a+QAA9+VABK6cEkv17n9SCKJiC6w2A
# tar -xvf nconf-1.3.0.0.tgz -C /usr/local/apache2/htdocs/
3.创建nconf数据库以用户
# mysql -u root -p (root初始密码为空,可自行更改)
mysql> create database nconf;
mysql> grant all privileges on nconf.* to nconf@localhost identified by '1q2w3e';
mysql> flush privileges;
# cd /usr/local/apache2/nconf
# mysql -u nconf -p nconf < INSTALL/create_database.sql
4.修改相关目录权限
# chown -R nagios:nagios config/ temp/ static_cfg/ output/
5.设置安全上下文
如果selinux打开了,需要设置安全上下文:
# chcon -R -t httpd_sys_content_t /usr/local/apache2/nconf/
# chcon -t httpd_sys_script_exec_t /usr/local/apache2/nconf/bin/nagios
6.在浏览器中访问
在浏览器中输入http://ip/nconf/,此例中地址为http://192.168.9.188/nconf/ 安装画面如下:
7.安装完毕,整理nconf目录
# cd /usr/local/apache2/htdocs/nconf
# rm -rf INSTALL* UPDATE*
# cp /usr/local/nagios/bin/nagios bin/nagios
# chown -R nagios:nagios bin
8.访问nconf:
此例为http://192.168.9.188/nconf/页面:
登录后界面如下,表示安装成功:
五.nrpe安装配置
要利用nagios来监控linux主机,需要在监控主机中安装check_nrpe,在被监控主机中安装nrpe deamon.
1.NRPE 工作原理
NRPE 总共由两部分组成:
1 check_nrpe 插件,位于监控主机上
2 NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)
按照上图,整个的监控过程如下:
当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
1 Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;
2 check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;
3 NRPE daemon 会运行相应的Nagios 插件来执行检查;
4 NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。
2.在监控主机上安装check_nrpe插件
此处以监控机192.168.8.188为例:
# wget http://download-vdisk.sina.com.cn/40070246/208595c175d726e8e377d565b21897f4de1648cc?ssig=xYr6eu70pI&Expires=1378279074&KID=sae,l30zoo1wmz&fn=nrpe-2.12.tar.gz
# tar -xvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure
# make install
# make-plugin
在commands.cfg中增加对check_nrpe的定义:
# vi /usr/local/nagios/etc/objects/commands.cfg
3.在被监控主机安装nrpe deamon
此处以被监控主机192.168.9.190为例:
3.1 新增用户
# useradd nagios
# passwd nagios
3.2 安装nagios插件
# tar -xvf nagios-plugins-1.4.16.tar.gz
# cd nagios-plugins-1.4.16
# ./configure --prefix=/usr/local/nagios
# make&&make install
3.3修改目录权限
# chown nagios.nagios /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios/libexec
3.4 安装nrpe
# Tar -xvf nrpe-2.12.tar.gz
# cd nrpe-2.12
# ./configure
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config
####将nrpe作为xinetd下的一个服务来管理
# make install-xinetd
####在配置文件中新增监控主机的IP地址
# vi /etc/xinetd.d/nrpe
####编辑/etc/services文件,增加nrpe服务
####重启xinetd服务
#service xinetd restart
3.5 测试nrpe是否正常工作
# /usr/local/nagios/libexec/check_nrpe -H localhost
####返回nrpe的版本,说明nrpe daemon正常。
####注意,若有开启防火墙,需要放行5666端口。
至此,nagios与nconf的整合完毕。
六.nconf的简单使用
1.添加监控设备流程
以linux系统192.168.9.190为例:
1.1 添加监控设备
1.2 添加监控服务
1.3 生成nagios配置文件
保存后设备添加完成,点【Generate Nagios config】生成nagios配置文件
1.4 执行脚本使nagios配置生效
如果生成Nagios配置文件没问题的话,就可以执行以下脚本使nagios配置生效:
# /usr/local/apache2/htdocs/nconf/ADD-ONS/deploy_local.sh
执行后看到以下结果说明正常:
#/usr/local/apache2/htdocs/nconf/ADD-ONS/deploy_local.sh
Running configuration check...done.
Reloading nagios configuration...done
注:可以将此脚本做成计划任务1分钟执行一次,这也是nconf官方推荐的,但是这里没有做成计划任务,因为个人觉得这没必要,这个配置不会天天修改,一分钟执行一次太频繁了,完全没这个必要。当然,想增加计划任务也是可以的,按个人需要,如果你想增加计划任务的话,执行此命令即可添加:
echo '* * * * * root /usr/local/apache2/htdocs/nconf/ADD-ONS/deploy_local.sh'>> /etc/crontab
1.5 成功配置
至此通过nconf来配置nagios完成,http://IP/nagios 进行查看刚添加的监控设备。
2.新增服务流程
2.1 上传监控脚本
编写好相关的监控脚本check_mem.sh,上传至Nagios的/usr/local/nagios/libexec/ 目录里,或者利用该目录内已有的check命令:
####修改权限:
chown nagios.nagios check_mem.sh
chmod 755 check_mem.sh
2.2 添加Check命令
2.3 添加高级监控服务
添加的服务可被多次利用,【Services】是针对单台设备监控添加的服务
在最尾部,添加参数值:
2.4 使用刚添加的监控服务
3.配置nagios自动部署
3.1 修改部署配置文件
#vim /usr/local/apache2/htdocs/nconf/config/deployment.ini
3.2 修改/etc/sudoers
允许nagios执行sudo:
#将Defaults requretty注释掉,同时新增nagios这个无密码的sudoers
3.3 修改nagios的主配置
# 将其中cfg_file=*******字段全部注释 ,并加入
cfg_dir=/usr/local/nagios/etc/Default_collector
cfg_dir=/usr/local/nagios/etc/global
3.4 修改目录所有者
chown nagios:nagios /usr/locasl/nagios/etc/Default_collector/
chown nagios:nagios /usr/locasl/nagios/etc/global/
3.5 自动发布
点击Deploy,完成自动部署。
3.6 重载nagios配置
重载nagios的配置,使用最新的配置文件:
# service nagios reload
3.7 成功进行自动部署
以下为个人新增的service和host: