nagios效果示例
http://192.168.0.236/nagios       用户名:hong     密码:123
 
一. 服务端安装准备
 
1. 更新源
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
 
2. 解决perl软件编译问题
echo 'export LC_ALL=C' >>/etc/profile
source /etc/profile
 
3. 关闭防火墙和selinux
/etc/init.d/iptables stop
chkconfig iptables off
 
sed -i 's/SELINUX=enforcing/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
 
4. 解决系统时间同步问题
crontab -e中添加
*/5 * * * * /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1
 
5. 安装服务器所需软件包
yum install -y gcc glibc glibc-common gd gd-devel mysql-server httpd php php-gd -y
 
6. 创建nagios服务器所需用户及组
useradd nagios
useradd apache -M -s /sbin/nologin
groupadd nagcmd
usermod -aG nagcmd nagios
usermod -aG nagcmd apache
 
7. 启动HTTP服务
/etc/init.d/httpd start
检查 lsof -i :80
 
 
二. 安装配置 nagios服务端
 
1. 下载nagios并编译
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.5.0.tar.gz(需FQ)
tar xf nagios-3.5.0.tar.gz
cd nagios
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-commandmode
make install-config
 
2. 安装nagios web配置文件及创建登陆用户
make install-webconf
htpasswd -bc /usr/local/nagios/etc/htpasswd.users hong 123    #设置nagios页面用户名和密码
/etc/init.d/httpd reload
 
3. 添加监控报警信息接收的email地址
vim /usr/local/nagios/etc/objects/contacts.cfg +35
修改原email地址为接收报警的邮箱地址
 
4. 安装第三方邮件服务
yum install mailx
修改/etc/mail.rc,添加如下配置
set smtp=smtp.163.com
set smtp-auth-user=pshyms
set smtp-auth-password=xxxx  #这里要写SMTP授权码,需要到邮箱设置中开通
set smtp-auth=login
 
使用mail命令发送邮件:
echo "邮件内容"|mail -s 标题 xxx@163.com
mail -s 标题 xxx@163.com < file
 
5. 配置启动Apache服务
/etc/init.d/httpd start
chkconfig httpd on
此时浏览器访问http://192.168.0.236/nagios(ip 为服务端地址)会出现用户名和密码提示窗口
 
6. 安装nagios插件软件包
yum install perl-devel openssl-devel -y
tar xf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --with-nagios-user=nagios \
--with-nagios-group=nagios \
--enable-perl-modules \
--with-mysql
make && make install
 
7. 安装nrpe软件
tar zxvf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
 
8. 配置并启动nagios服务
chkconfig nagios on
或者 echo "/etc/init.d/nagios start >> /etc/rc.local
验证nagios配置文件(检查语法) /etc/init.d/nagios checkconfig
使用命令检查报错 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
启动nagios服务 /etc/init.d/nagios start
 
 
 
三. 客户端安装
 
1. 安装初始化软件
yum install gcc glibc glibc-common mysql-server perl-devel perl-CPAN openssl-devel -y
 
2. 添加nagios用户
useradd nagios -M -s /sbin/nologin
 
3. 安装nagios-plugins插件
tar xf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --with-nagios-user=nagios \
--with-nagios-group=nagios \
--enable-perl-modules \
--with-mysql
make && make install
 
4. 安装nrpe软件
tar zxvf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
 
5. 配置nagios客户端nrpe服务
cd /usr/local/nagios/etc/
nrpe.cfg的79行添加监控端IP,例如allowed_hosts=127.0.0.1,192.168.0.236
在199-203行为监控内容,需要根据需求进行调整修改
例如command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 7% -p /
 
启动nrpe守护进程
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrep.cfg -d
需要注意的是每次修改nrpe.cfg文件都需要重启守护进程,可以pkill nrpe,再执行上面命令
 
可将上面命令加入/etc/rc.local中进行nrpe开机自启动
 
 
 
四.  nagios服务端监控
 
所有客户端本地服务的监控都是通过执行/usr/local/nagios/libexec目录下的插件来实现的
 
1. nagios服务端核心配置文件
主配置文件为/usr/local/nagios/etc/目录下的nagios.cfg文件,
这个目录下有个objects目录,里面放的是主配置文件nagios.cfg包含的其他nagios配置文件
 
2. 配置nagios.cfg
在文件中找到cfg_file部分,添加如下设置
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg  #存放具体被监控的主机相关配置内容
cfg_file=/usr/local/nagios/etc/objects/services.cfg #存放具体被监控的服务相关配置内容
注释掉localhost.cfg这一行,它表示监控nagios服务端本地服务的配置文件
 
3. 生成一个新的hosts.cfg主机文件,以及services.cfg服务文件
cd /usr/local/nagios/etc/objects
head -51 localhost.cfg > hosts.cfg
chown nagios:nagios /usr/local/nagios/etc/objects/hosts.cfg
touch services.cfg
chown nagios:nagios services.cfg
 
 
文件结构如下
 
|-- cgi.cfg
|-- htpasswd.users
|-- nagios.cfg
|-- nrpe.cfg
|-- objects
|   |-- commands.cfg
|   |-- contacts.cfg
|   |-- hosts.cfg
|   |-- hosts.cfg1
|   |-- localhost.cfg
|   |-- printer.cfg
|   |-- services.cfg
|   |-- switch.cfg
|   |-- templates.cfg
|   |-- timeperiods.cfg
|   `-- windows.cfg
`-- resource.cfg
 
 
4. 配置hosts.cfg
 
define host{        use                     linux-server            
        host_name               web01
        alias                   web01
        address                 192.168.0.239  #第一个被监控主机,可定义多个,都按这个格式写
        }
      
define host{        use                     linux-server            
        host_name               web02  #不需要和真实主机名一样
        alias                   web02
        address                 192.168.0.240  #第二个被监控主机
        }
 
#下面的可选
define hostgroup{
        hostgroup_name  linux-servers
        alias           Linux Servers
        members         web01,web02  #把2个主机当作一组进行监控,可选
        }
 
 
5. 配置service .cfg文件
 
这里只简单写个3个监控,ping,负载值,硬盘空间。他们会显示在监控网页上,可任意加入监控项
 
define service {
use     generic-service
host_name       web01
service_description     Disk Partition
check_command   check_nrpe!check_disk
}
 
define service {
use     generic-service
host_name       web01
service_description     current load
check_command   check_nrpe!check_load
}
 
define service {
use     generic-service
host_name       web01
service_description     ping
check_command   check_ping!100.0,20%!500.0,60%
}
 
 
6. 定义check_nrpe插件
/usr/local/nagios/etc/objects/目录下的commands.cfg文件中加入如下内容
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
 
 
7. 调试host.cfg和service.cfg
检查命令为:/etc/init.d/nagios checkconfig
 
 
8. 增加nagios用户权限
cd /usr/local/nagios/etc/
修改cgi.cfg文件,把注册用户加入 sed -i 's#nagiosadmin#hong#g' cgi.cfg
 
 
9. 启动nagios服务
/etc/init.d/nagios/start 或者/etc/init.d/nagios reload
 
10. 服务端调试命令例子
检查硬盘监控
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.239 -c check_disk
 
 
 
 
几个注意:
 
一. CENTOS为服务器,做nagios的问题
参照书中的实验,发现网页中监控内存和硬盘iostat的脚本有问题,网上找了2个shell写的脚本,如下
 
1)nagios参考文档
 
2)内存监控脚本,即书中的check_memory.pl
 
3)硬盘iostat监控脚本,即书中的check_iostat
 
第3个链接提及了在commands.cfg中添加check_iostat,我加了这个配置,测试成功。下次试试不加行不行
在监控机/usr/local/nagios/etc/objects/commands.cfg里面添加
define command{
        command_name    check_iostat
        command_line    $USER1$/check_iostat -d $ARG1$ -w $ARG2$ -c $ARG3$
        }
 
 
 
二. Ubuntu为服务端,上面做nagios的问题
 
ubuntu上编译安装nagios-plugins插件make失败的问题
./stdio.h:456:1: error: 'gets' undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 
在ubuntu上配置nagios客户端nrpe服务和nagios-plugins插件
 
 
 
 
 

参照跟老男孩学linux运维搭建nagios实验小结的更多相关文章

  1. 《跟老男孩学Linux运维:Web集群实战》读书笔记

    Linux 介绍 Linux 安装 Linux 调优 Web 基础 Nginx 应用 LNMP 应用 PHP 缓存加速 Nginx 调优 MySQL 应用 NFS 网络文件共享 Nginx 反向代理与 ...

  2. 教老婆学Linux运维(二)Linux常用命令指南【上】

    目录 教老婆学Linux(二)Linux常用命令指南[上] 一.概述 二.常用命令 教老婆学Linux(二)Linux常用命令指南[上] 作者:姚毛毛的博客 tips:文章太长,分两篇发出,本篇发前三 ...

  3. 教老婆学Linux运维(一)初识Linux

    零.前言 之一 为什么写这个系列?为什么是Linux? 老婆自从怀孕以后,辞职在家待了好几年了,现在时常感觉与社会脱节.所以想找个工作. 做了多年程序员,有点人脉也都基本是在IT圈子里,只能帮忙找找I ...

  4. linux下网络配置小节[from 老男孩的linux运维笔记]

    对于linux高手看似简单的网络配置问题,也许要说出所以然来也并不轻松,因此仍然有太多的初学者徘徊在门外就不奇怪了, 这里,老男孩老师花了一些时间总结了这个文档小结,也还不够完善,欢迎大家补充,交流. ...

  5. 教老婆学Linux运维(二)Linux常用命令指南【下】

    目录 tips:紧接上一篇,Linux常用命令指南[上] 2.4 文件解压缩 2.4.1 官宣的linux压缩工具:tar tar的基本命令格式为 tar [参数选项] [文件或目录] 我们前面学的命 ...

  6. 跟老男孩学Linx运维---web集群实战笔记

    2018/01/05 2018/01/04 安装:PHP扩展插件PDO_MYSQL-1.0.2报错 In file included from /home/wasadmin/PDO_MYSQL-1.0 ...

  7. 【Linux 运维】linux系统关机、重启、注销命令

    linux 关机.重启.注销命令: 关机命令: shutdown -h now 立刻关机(生产常用) shutdown -h  +1  一分钟后关机      (    shutdown -c 可以将 ...

  8. 合格linux运维人员必会的30道shell编程面试题及讲解

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/1632876 超深度 ...

  9. Linux运维基础命令笔试题--看看你会多少?

    老男孩教育linux运维就业班第一周课后学习效果能力上机大考察 (每题10分共130分,过100即可,请给出详细步骤) 1.创建目录/data/oldboy ,并且在该目录下创建文件oldboy.tx ...

随机推荐

  1. string.Empty与null与""

    (1)NULLnull 关键字是表示不引用任何对象的空引用的文字值.null 是引用类型变量的默认值.那么也只有引用型的变量可以为NULL,如果int i=null,的话,是不可以的,因为Int是值类 ...

  2. 嵌套列表的加权和 · Nested List Weight Sum

    [抄题]: Given a nested list of integers, return the sum of all integers in the list weighted by their ...

  3. centos6.5系统hadoop2.7安装sqoop

    一.sqoop简介 Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ...

  4. 架构之路:nginx与IIS服务器搭建集群实现负载均衡

    http://blog.csdn.net/zhanghan18333611647/article/details/50811980

  5. Jenkins一天中构建多次

    Build after other projects are built:在其他项目触发的时候触发,里面有分为三种情况,也就是其他项目构建成功.失败.或者不稳定的时候触发项目: Poll SCM:定时 ...

  6. scp 的时候提示WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

    摘自:https://blog.csdn.net/haokele/article/details/72824847   @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ...

  7. 关于HBase的memstoreFlushSize。

    memstoreFlushSize是什么呢? memstoreFlushSize为HRegion上设定的一个阈值,当MemStore的大小超过这个阈值时,将会发起flush请求. 它的计算首先是由Ta ...

  8. Linux虚拟机安装配置手册(版本:7.3)

    一.准备 ①.安装VMWare 安装步骤省略.我这里使用的版本如下: ②.Linux系统镜像文件: 建议使用最新版本的Linux系统.有些组件对系统内核版本要求比较高,有可能会产生错误. 我这里使用的 ...

  9. DapperExtensions 使用教程

    最近搭建一个框架,使用dapper来做数据库访问,数据是sql server2012,支持多个数据库.事务.orm.ado.net原生操作方式,非常方便. 使用dapper的原因网上有很多文章说明,这 ...

  10. yii2 定义友好404

    1.frontend->config->main.php添加如下: 'errorHandler' => [ 'errorAction' => 'site/error', ], ...