LinuxService- Nagios监控

1  Nagios

      Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

2  Nagios监控项目

1)监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);

2)监控主机资源(处理器负荷、磁盘利用率等);

3)简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4)并行服务检查机制;

5)具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;父主机就是本地主机,子主机是远程主机

6)当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

7)可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;

8)自动的日志滚动功能;

9)可以支持并实现对主机的冗余监控;

10)可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

11)可以通过手机查看系统监控信息;

12)可指定自定义的事件处理控制器;

3  使用Nagios监控本机

配置Nagios服务器端

3.1 准备源文件

先连接内网服务器172.19.0.254——给虚拟机添加一个网卡,并为其选择桥接模式,然后打开虚拟编辑器,点击更改设置会自动识别并添加一个Vmnet0,然后给Vmnet0也选成桥接模式,设置为桥接到Intel(R) Centrino(R) …… 6205 (这个是无线连接的名字)。如果遇到问题可以还原默认网络设置,并且设置真实机的Vmnet0、Vmnet8为自动获取IP。不能选NAT模式,因为NAT模式是单向的通信。

#wget   http://172.19.0.254/conf2repos/centos.txt

#wget   http://172.19.0.254/conf2repos/epel.txt

//wget命令用于下载,文件名区分大小写;只能下载到用户家目录下。还要看一下下载的源文件中的源服务器IP是否正确,不正确的话要改过来

#cd    /etc/yum.repos.d/

#mv   /root/centos.txt    ./CentOS-Base.repo

#mv   /root/epel.txt      ./epel.repo

注:此时/etc/yum.repos下有三个文件:my.repo、CentOSBase.repo、epel.repo

3.2 使HTTP支持PHP页面

1)安装http及php:#yum  install   httpd   php   php-mbstring   php-pear  -y

2)删除test页面:  #rm   -rf   /etc/httpd/conf.d/welcome.conf

注:该界面即当/var/www/html下没有index.html文件时,使用浏览器访问时显示的是“TESTING 123”界面

3)配置apache:   #vim   /etc/httpd/conf/httpd.conf  里面内容可以写

条目1:ServerTokens 指令,这个指令可以隐藏Apache的一些敏感信息,如:

ServerTokens Prod——写了这个,服务器会发送,比如Server: Apache

ServerTokens Major——写了这个,服务器会发送,比如 Server: Apache/2

ServerTokens Minor——写了这个,服务器会发送,比如)Server: Apache/2.0

ServerTokens Min——写了这个,服务器会发送,比如 Server: Apache/2.0.41

ServerTokens OS——写了这个,服务器会发送,比如Server: Apache/2.0.41(Unix)

ServerTokens Full (或未指定)——写了这个,服务器会发送,比如 Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2

//也就是说,从上至下隐藏的信息会越来越少。

条目2:KeepAlive  。

对于HTTP/1.1服务器的客户端来说,将会尽量的保持客户的HTTP连接,通过一个连接传送多份HTTP请求响应。浏览器默认是保持连接的,当你打开100 个图片的网站时,浏览器有可能只打开2个连接,通过这两个 连接传送数据,而不是开100个连接。

注:也可以不用对该配置文件做更改。

4)配置php:      #vim   /etc/php.ini  将date.timezone=这行取消注释,并改成

date.timezone="Asia/Shanghai"

#echo   "<?php phpinfo()?>"   >   /var/www/html/index.php

#systemctl   restart   httpd

//<?php phpinfo()?>是调用了PHP的某一个模块

5)启动apache,在真实主机使用浏览器访问:http://172.16.33.28(本虚拟机IP);如果访问成功说明已经支持PHP页面,那么我们就可以继续搭建Nagios了。测试页面可以保留也可以删除:

#rm   -rf   /var/www/html/index.php

3.3 使用web页面管理nagios服务器

1)安装nagios:

#yum  --enablerepo=epel   install   nagios  nagios-plugins-{ping,disk,users,procs,load,swap,ssh,http}    -y

//--enablerepo=epel是临时启用epel源,有时候源里面设置enablde=1的话,多个源会产生冲突,所以一般都是设置为enabled=0,然后等使用的时候再启用。本命令安装了Nagios服务与Nagios的监控插件(procs内存监控插件,load负载监控插件,swap虚拟内存监控插件等等)

2)编辑nagios配置文件:#vim    /etc/httpd/conf.d/nagios.conf

    把第16行添加注释   #Require   all   granted   

在22行下面添加:Require   ip  127.0.0.1   172.16.0.0/16(包含自己IP的网络段)

//在require valid-user下面添加

在47行      # Require   all   granted

在53行下面添加:Require   ip   127.0.0.1   172.16.0.0/16(同上)

//在require valid-user下面添加

注:把require valid-user 取消注释,这样才会让输入用户名和密码登录Nagios

3)生成Nagios管理员账号及密码:#htpasswd   /etc/nagios/passwd   nagiosadmin

New password: admin

      Re-type new password:admin

      Updating password for user nagiosadmin

4)启动Nagios:       #systemctl   start   nagios

设置开机自启动:  #systemctl   enable  nagios

重启HTTP服务:   #systemctl   restart   httpd

5)用真实机使用浏览器访问:http://172.16.33.28/nagios

//这样就能用web页面管理Nagios服务器了

  Unreachable 网络不可达      up正在运行   

panding 待定                unknown 未知(就是没连上)

3.4  安装邮件服务器,用于Nagios通知

可以用 #mail 查看当前用户的邮件,邮件都保存在 /var/spool/mail 下。

1)安装软件      #yum   install   postfix   mailx   -y

2)编辑配置文件  #vim   /etc/postfix/main.cf

75行  myhostname = www.server.com                //指定主机名

83行  mydomain = server.com                       //指定域名

99行  myorigin = $mydoamin                        //指定源

116行 inte_interfaces = all                           //指定端口

164行 mydestination = $myhostname,loaclhost.$mydomain,localhost,$mydomain

264行 mynetwork = 172.16.0.0/16,127.0.0.0/8

419行 home_mailbox = Maildir/

574行 smtpd_banner = $myhostname  ESMTP         //指定协议

并添加:

smtpd_sasl_type = dovecot

smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain = $myhostname

smtpd_recipient_restrictions=permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

3)启动postfix服务    # systemctl start postfix

   设置开机自启       # systemctl enable postfix

4)配置DNS正解区域,zj.db里面写:

@    NS    www.server.com.

www  A     192.168.1.1

5)设置Nagios收件人,编辑配置文件 # vim  /etc/nagios/objects/contacts.cfg

34行  email root@localhost

6)重启服务   # systemctl restart nagios

7)在真实机用IE浏览  http://172.16.33.28/nagios 。在web管理界面中开启通知Service->找到右侧带有红色”\”标记->点击->找到右侧->Enable notifications for this service->Commit

4 在Nagios中添加本机监控项目

1)查询nagios监控插件都有哪些

#yum  --enablerepo=epel   search   nagios-plugins-

2)添加nagios监控插件

#yum    --enablerepo=epel     install     nagios-plugins- {ping,disk,users,procs,load,swap,ssh,http}   -y

注:安装插件实际上是在/usr/lib64/nagios/plugins

3)查看nagios监控插件使用方法  #/usr/lib64/nagios/plugins/check_disk   -h

注:实际上是/usr/lib64/nagios/plugins下命令的使用方法

4)配置commands.cfg定义插件调用方法

#vim   /etc/nagios/objects/commands.cfg

define   command{

command_name    check_sda1

command_line  $USER1$/check_disk  -w   $ARG1$  -c  $ARG2$  -p  $ARG3$

}

5)配置nagios插件检测指定分区

#vim    /etc/nagios/objects/localhost.cfg

define   service{

use   local-service

host_name   localhost

service_description   Boot Partition

check_command    check_sda1!80%!90%!/dev/sda1

}

6)重启Nagios服务  # systemctl restart nagios

7)在真实机用IE浏览   #http://172.16.33.28/nagios       //Nagios服务器IP

5 使用Nagios远程监控其他Linux主机

      生产环境中,其实就是2个客户端,一个客户端配置的是监控机制,另一个配置的是被监控机制。所以实验环境只需要2个虚拟机能够相互通信且都能与真实机通信即可。

      远程监控原理:Nagios服务器会找到本地npre插件,npre插件会找到被监控主机上的npre程序,npre程序会自行找到本机的监控插件,如disk插件,disk插件会检查本机的disk状况然后返回检查结果给npre程序,npre程序再讲本机disk情况返回给Nagios服务器的npre插件,从而Nagios server就能得知被监控主机的情况。

5.1 配置被监控主机

1)安装nagios软件

#yum   --enablerepo=epel    install    nrpe    nagios-plugins- {ping,disk,users,procs,load,swap,ssh}   -y

注:NRPE(Nagios Remote Plugin Execution)插件一起安装。NRPE插件 可以使用类似代理的方式在远程系统上做检查。

2)配置nrpe.cfg ,编辑配置文件 #vim /etc/nagios/nrpe.cfg

81行  allowed_hosts=127.0.0.1,192.168.1.2    //192.168.1.2为nagios服务器IP地址

97行 dont_blame_nrpe=1                   //允许由nagios服务器传递监控参数

注释210-214行的本地检测 /*

210 # command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10

211 # command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

212 # command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1

213 # command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z

214 #command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200   */

开启223-226行,由服务器传递检测参数 :/*

223 command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$

224 command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$

225 command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

226 command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$   */

3) 开启nrpe:          #systemctl   start    nrpe

设置nrpe开机自启    #systemctl   enable   nrpe

5.2 配置Nagios服务器

1)安装nagios插件: #yum   --enablerepo=epel   install   nagios-plugins-nrpe   -y

2)设定服务器监控配置文件所在目录 ,#vim   /etc/nagios/nagios.cfg

取消第51行注释:cfg_dir=/etc/nagios/servers       //监控远程主机信息存放的目录

创建目录:       #mkdir   -v   /etc/nagios/servers

更改属主属组     #chgrp    nagios   /etc/nagios/servers

更改权限         #chmod   750   /etc/nagios/servers

3)配置监控哪台主机  #vim   /etc/nagios/servers/noc.cfg     //noc这个名字是可以改的

define   host{

use    linux-server

hostname   client

alias   client

address    192.168.32.253  (***client_ip***即被监控的Linux客户端的IP)

}

4)控制监控使用的命令,编辑配置文件# vim /etc/nagios/objects/commands.cfg

define   command{

command_name   check_nrpe

command_line   $USER1$/check_nrpe   -H   $HOSTADDRESS$   -c   $ARG1$

}

5)添加监控项目,编辑配置文件 # vim /etc/nagios/servers/noc.cfg

define service{

use   generic-service

host_name   client

service_description   Root Partition

check_command    check_nrpe!check_disk\!20%\!10%\!/

}                                                  // 转义符 \ ,! 表示取反

6)重启Nagios服务 # systemctl restart nagios

如果重启服务失败,可以使用命令 #/usr/sbin/nagios  -v  /etc/nagios/nagios.cfg来查看具体配置文件的具体错误

7)在真实机上使用浏览器查看http://192.168.32.252/nagios


转载请注明出处,谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值