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. Cassandra读写性能测试

    1. 测试目的 测试Cassandra集群读写TPS的极值,确定Cassandra读写性能. 2. 测试环境 2.1 硬件信息 CPU 8核 Intel(R) Xeon(R) CPU E5-2650 ...

  2. malloc realloc calloc free

    自上次发现自己对这几个C函数不熟悉,就打算抽空整理一下,也就现在吧.这几个函数都是跟堆内存打交道的,还有一个好玩的函数--alloca,它是跟栈内存打交道的,我想留在以后研究出好玩点的来,再专门为其写 ...

  3. WebPack 从安装到闲置

    序言:各种技术在研究过程中常常会出现在实际工作中难以实施的情况,于是就慢慢闲置,但学毕竟还是必须要学学的,就看能用到多少,至少开拓了眼界,谨以此安慰下那些学完又闲置的技术~ 跑题结束,以下开始正式配置 ...

  4. 关于iOS URL缓存机制原理解析

    关于URL缓存机制中   利用request对象判断是否缓存   其实request是否相等的判断依据是URLString是否相等

  5. jquery简单ajax示例_读取json文件数据

    来自于<jquery权威指南> -------------------------------------- 点击button后,获取到json文件数据,显示如下: Json文件: [ { ...

  6. 常用的 Python 调试工具,Python开发必读-乾颐堂

    以下是我做调试或分析时用过的工具的一个概览.如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍. 日志 没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容 ...

  7. go语言的特殊变量 iota

    iota,是go语言的特殊常量,可以认为是一个可以被编译器修改的常量. 在每一个const关键字出现时,被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1. 来 ...

  8. [SHELL]:let 命令详解

    [SHELL]:let 命令详解 摘自:https://blog.csdn.net/happygongzhuo/article/details/6819099 let :简单的计算器  语 法let[ ...

  9. windows10个性化设置

    任务栏DIY 日期显示样式 字体

  10. Rose如何由模型生成代码(正向工程)

    原创 正向工程: 选中要转换的模型. 单击 tools>Java/J2EE > Syntax Check 来检查目标代码是否符合规范,比如命名错误. 察看rose log窗口(下方)察看检 ...