2.监控利器nagios手把手企业级实战第一部
1. 什么是Nagios?
Nagios是一款开源的网络及服务的监控工具,功能强大,灵活性强,需要注意的是,其服务端只能在linux上面安装。
Nagios可以进行分布式监控。
这里主要解释一下什么叫分布式?什么是集群?什么是分布式计算?
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。
集群:同一个业务部署在多台机器上,提高系统可用性。
所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
打个比方,一个任务由5个子任务组成,暂且五个子任务都是独立的,异步的。一个子任务如果需要1个小时完成,那么我只需要将5个子任务分配到5个机器上,那么就是一小时完成了这个任务,这就是分布式,解决的是高并发。
那么集群,就是将一群机器集合起来,完成一个任务。如果一个任务的机器跨了,可以通过其他机器替代,讲究的是可用性。
在网上看到,现在讲的各种云计算,说白了就是集群和分布式的一些应用。
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。(也可以是分布式,比如你布置多个集群咯!)
举个例子:
饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群
nagios本身只做核心监控,其他功能通过插件(模块)完成,从感官上来说,给人的感觉很碎,不完整。
常用组件功能作用:
Nagios组成一个主程序Nagios和插件程序Nagios-plugins和一些可插的附加程序(NRPE、NSClient++、NSCA和NDOUtils)等。
Nagios本身是一个监控平台而已,其具体的监控工作都是通过插件Nagios-plugins来实现的,Nagios-plugins也要安装于被监控端。
这里解释下插件的概念?
插件是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。
好了,现在说一下几个附件插件功能:
1.NRPE:只能存在于linux不能存在windows系统中,安装于被监控端,执行脚本插件后,就会获取相关本地资源回传给服务端,实现对本地的监控。在本地中,它的存在是守护进程(agent)模式,开启端口是5666。是通过服务端调用,才会回传数据。
在linux或者unix操作系统中在系统引导的时候会开启很多服务,这些服务就叫做守护进程。
2.NSClients++:和NRPE一样,不同之处就是被监控端是windows系统。
3.NDoUtils:存在于Nagios服务端,用于将Nagios的配置信息和各event,比如agent端cpu实时状态等产生的数据存入数据库以实现对这些数据的检索处理;说白了就是一个Nagis的数据库接口。(不推荐,因为直接放到磁盘比数据库好,但数据库可检索)
4.NSCA:NSCA需要同时安装在客户端和服务器端。在分布式监控集群模式下会用到。是一种主动报告模式,不需要服务器请求的。(上千个服务器会用到)
监控的模式分为:
主动模式:服务器主动监控客户端
半被动模式:服务器发出请求后,客户端在进行汇报,例如nrpe
被动模式:客户端主动上报的
2. NRPE运行原理图(化繁为简是一个优秀运维师的能力)


3. Nagios服务端安装
| 管理IP地址 | 角色 | 备注 |
| CentOS 64 位 | nagios监控服务器 | |
| JHRZ-CentOS-20(2) | LAMP服务器 | 被监控的客户端服务器 |
| JHRZ-CentOS-21 | LNMP服务器 | 被监控的客户端服务器 |
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
echo 'export LC_ALL=C'>> /etc/profile
source /etc/profile
/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
if [ -f /etc/selinux/config ]; then
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
fi
4)
/usr/sbin/ntpdate pool.ntp.org
echo '#time sync by oldboy at 2010-2-1'>>/var/spool/cron/root
echo '*/10 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1'>>/var/spool/cron/root
crontab -l
yum install gcc glibc glibc-common -y
yum install gd gd-devel -y
yum install httpd php php-gd -y
yum install mysql* -y
/usr/sbin/useradd -m nagios
#/usr/sbin/useradd apache
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod -a -G nagcmd nagios
/usr/sbin/usermod -a -G nagcmd apache
[ ! -f oldboy_training_nagios_soft.zip ] && exit 1
unzip oldboy_training_nagios_soft.zip
tar xzf nagios-3.5.1.tar.gz
cd nagios
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
yum -y install perl-devel
tar zxf 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
make && make install
cd ../
ls /usr/local/nagios/libexec/|wc -l
tar zxvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
cd ..
/etc/init.d/nagios start
/etc/init.d/httpd start
echo -----------
lsof -i tcp:80
echo ----------
ps -ef|grep nagios
echo "NAGIOS is successfully installed."
echo ok
4.客户端安装配置
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
echo 'export LC_ALL=C'>> /etc/profile
source /etc/profile
/etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off
setenforce 0
if [ -f /etc/selinux/config ]; then
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
fi
4)
/usr/sbin/ntpdate pool.ntp.org
echo '#time sync by oldboy at 2010-2-1'>>/var/spool/cron/root
echo '*/10 * * * * /usr/sbin/ntpdate pool.ntporg >/dev/null 2>&1'>>/var/spool/cron/root
crontab -l
mkdir -p /home/oldboy/tools/
cd /home/oldboy/tools/
[ ! -f ./oldboy_training_nagios_soft.zip ] &&{
echo "nagios soft is not exist."
exit 1
}
/bin/cp oldboy_training_nagios_soft.zip /home/oldboy/tools/
cd /home/oldboy/tools/
7)install nagios-plugins
yum -y install perl-devel
tar zxf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --enable-perl-modules --enable-redhat-pthread-workaround
make && make install
cd ../
ls /usr/local/nagios/libexec/|wc -l
8)install nrpe
cd /home/oldboy/tools/
tar zxf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
cd ..
9)install soft for iostat------" --监控磁盘io需要
cd /home/oldboy/tools/
tar zxvf Params-Validate-0.91.tar.gz
cd Params-Validate-0.91
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /home/oldboy/tools/
tar zxvf Class-Accessor-0.31.tar.gz
cd Class-Accessor-0.31
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /home/oldboy/tools/
tar zxvf Config-Tiny-2.12.tar.gz
cd Config-Tiny-2.12
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /home/oldboy/tools/
tar zxvf Math-Calc-Units-1.07.tar.gz
cd Math-Calc-Units-1.07
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /home/oldboy/tools/
tar zxvf Regexp-Common-2010010201.tar.gz
cd Regexp-Common-2010010201
perl Makefile.PL
make
make install
cd ..
#----------------------------------------
cd /home/oldboy/tools/
tar zxvf Nagios-Plugin-0.34.tar.gz
cd Nagios-Plugin-0.34
perl Makefile.PL
make
make install
cd ..
yum install sysstat -y --性能监控的监控工具
/bin/cp /home/oldboy/tools/check_iostat /usr/local/nagios/libexec
chmod 755 /usr/local/nagios/libexec/check_iostat
dos2unix /usr/local/nagios/libexec/check_iostat
9)修改nrpe.cfg
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1 修改添加服务端主机
删除系统定义的变量名:
#delete 199--203
cp /usr/local/nagios/etc/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg.ori
sed -i '199,203d' /usr/local/nagios/etc/nrpe.cfg
添加变量
echo "command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,6 -c 30,25,20">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_mem]=/usr/local/nagios/libexec/check_memory.pl -w 6% -c 3%">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 8% -p /">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%">>/usr/local/nagios/etc/nrpe.cfg
echo "command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 6 -c 10">>/usr/local/nagios/etc/nrpe.cfg
10)启动客户端
pkill nrpe
sleep 2
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo "#nagios nrpe process cmd by oldboy 2012-6-7" >> /etc/rc.local
echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d">>/etc/rc.local
netstat -lnt|grep 5666 && echo "nagios client is ok"
5.Nagios服务端目录及配置文件介绍及安装初步

bin/sbin : nagios中存在的命令
etc :配置文件
include:包含文件
share:web的程序,站点目录
var:nagios的数据,日志都在这里面
libexec:一些插件文件

nagios.cfg是主配置文件;其中resource.cfg、objects下文件、cgi.cfg都是包含在主配置文件中的
nrpe.cfg如果服务器不当成客户端,没必要配置
htpasswd.users:web的密码验证文件

localhost.cfg对本机的监控(当成模板)、switch.cfg、windows.cfg、printer.cfg(我们监控服务器,不用这个)

配置主配置文件 nagios.cfg
[root@djw etc]# vi nagios.cfg +34
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/service.cfg
head -50 localhost.cfg >hosts.cfg
2.监控利器nagios手把手企业级实战第一部的更多相关文章
- 4. 监控利器nagios手把手企业级实战第三部
1.nagios图形监控显示和管理服务器 虽然能显示,能报警.但是我们企业工作中需要一个历史趋势图. nagios只开放核心,插件是单独的形式,图像也一样,是插件或者整合的方式.所以可能看起来很多,这 ...
- 3. 监控利器nagios手把手企业级实战第二部
1. 编辑hosts.cfg增加被监控的主机[root@nagios etc]# cat objects/hosts.cfg define host{ use ...
- 运维监控利器Nagios之:nagios配置详解
http://ixdba.blog.51cto.com/2895551/752870 一.nagios配置过程详解 1.nagios默认配置文件介绍 nagios安装完毕后,默认的配置文件在/usr ...
- 《大数据Spark企业级实战 》
基本信息 作者: Spark亚太研究院 王家林 丛书名:决胜大数据时代Spark全系列书籍 出版社:电子工业出版社 ISBN:9787121247446 上架时间:2015-1-6 出版日期:20 ...
- 【Todo】【读书笔记】大数据Spark企业级实战版 & Scala学习
下了这本<大数据Spark企业级实战版>, 另外还有一本<Spark大数据处理:技术.应用与性能优化(全)> 先看前一篇. 根据书里的前言里面,对于阅读顺序的建议.先看最后的S ...
- 关于《ASP.NET MVC企业级实战》
大家好,我的书<ASP.NET MVC企业级实战>已经出版啦,感谢大家过去的关注与支持!前言部分,出版的时候漏了部分内容,我这里将其贴出来. 本书提供源码和教学PPT课件!(源码在书中第3 ...
- 测者的性能测试手册:JVM的监控利器
测者的性能测试手册:JVM的监控利器 每次聊起性能测试,最后的终结话题就是怎么做优化.其实在Java的复杂项目中都会有内存不足问题.内存泄露问题.线程死锁问题.CPU问题.这些问题工程测试或者是小压力 ...
- Linux 服务器运行健康状况监控利器 Spotlight on Unix 的安装与使用
1.本文背景 1.1.Linux 服务器情况 # cat /etc/issueRed Hat Enterprise Linux Server release 6.1 (Santiago)Kernel ...
- 监控系统-nagios
Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,打印机等.在系统或服务状态异常发出邮件或短信报警第一 ...
随机推荐
- python基础【2】——python数据类型之字符串
python数据类型-字符串 一. 字符串的表示方法(str) 作用: 记录文本信息 表示方法:' ' 单引号 " "双引号 ''' '''三单引号 ""&qu ...
- 实验吧web-易-上传绕过
随便上传一个png文件,出现提示 我们再上传一个php文件,却出现提示 上传遇到问题是肯定的,题目就是上传绕过,所以我们下面要做的就是绕过检测. 这里使用00截断. 首先在提交时抓包 我们将图中upl ...
- 2、用优化器使loss最小
2.tf.train.AdamOptimizer()函数是Adam优化算法:是一个寻找全局最优点的优化算法,引入了二次方梯度校正. tf.train.AdamOptimizer.__init__( l ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 存储类
存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期.这些说明符放置在它们所修饰的类型之前.下面列出 C++ 程序中可用的存储类: auto register static extern m ...
- vue移动端点击一个元素缩小,松手的时候元素恢复正常
active伪类解决 HTML代码 <div class='box'> </div> CSS代码 .box { width: 100px; height: 100px; bac ...
- 2020/1/31 PHP代码审计之目录穿越漏洞
0x00 目录穿越 目录穿越(Directory Traversal)攻击是黑客能够在Web应用程序所在的根目录以外的文件夹上,任意的存取被限制的文件夹,执行命令或查找数据.目录穿越攻击,也与人称为P ...
- promise核心 为什么用promise
为什么要用promise 1.使用纯回调函数 先指定回调函数,再启动异步任务 答 1.指定回调函数的方式更加灵活 可以在执行任务前,中,后 2.支持链式调用,解决回调地狱问题 什么是回调地狱:回调函数 ...
- [APIO2018]铁人两项(圆方树)
过了14个月再重新看这题,发现圆方树从来就没有写过.然后写了这题发现自己APIO2018打铁的原因竟然是没开long long,将树的部分的O(n)写挂了(爆int),毕竟去年APIO时我啥都不会,连 ...
- git本地仓库连接同步修改远程仓库
如何使用GIT BASH同步远程仓库 1. 新建一个目录 2. 右键GIT BASH 3. git clone git@github.com:purity12138/221701117.git (SS ...
- Jshint 安装方法
首先在编辑器中搜索扩展程序 "Jshint" 并安装,安装成功后 打开Javascript文件会出现报错提示: "Failed to load jshint librar ...