设为首页 收藏本站
查看: 883|回复: 0

nagios服务器搭建实现对Linux和windows主机监控及短信报警

[复制链接]

尚未签到

发表于 2019-1-14 08:23:43 | 显示全部楼层 |阅读模式
最近在搭建公司的nagios服务器以便对公司服务器进行监控。之前没有接触过nagios,折腾了这么久快把我搞的崩溃了。现在搭建好了,下面就是搭建方式:

搭建前的准备工作:

nagios服务器主控端: LAMP环境 其中对于(MySQL可以不安装因为nagios服务器对于Mysql不是必须的。)nagios主程序包,nagios-plugins 插件程序包,NRPE。

nagios被监控Linux端:nagios-plugins插件程序包,nrpe。

nagios被监控windows端:NSClient++

nagios主程序下载地址:

wget http://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.0.4/nagios-4.0.4.tar.gz

nagios插件程序下载地址:

wget http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.13.tar.gz

linux被控端nrpe下载地址:

wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz

windows被控端NSClient++下载地址

http://nsclient.org/nscp/downloads  (此安装包要具体看被监控的Windows主机是32位还是64位之后对应的进行下载)

下面我们开始具体的搭建:

一.准备LAMP环境:

1.首先部署LAMP环境并且安装nagios依赖的gcc,glibc,glibc-common,gd,gd-devel在此处我只安装Apache,PHP。(注:Mysql可以不安装)

对于Apache和PHP可以使用yum安装RPM包的,也可以使用源码包安装在此处我就使用yum进行安装了

(1. yum -y install httpd php glibc glibc-common gd gd-devel  (此命令就是用来安装apache,php以及gcc,glibc,glibc-common,gd,gd-devel)

(2.启动Apache服务:service  httpd  start

二.配置nagios主程序端(服务器端):

(3.创建一个名为nagios的帐号并给定登录口令:

useradd  nagios

passwd  nagios

创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中:

  
/usr/sbin/groupadd nagcmd

/usr/sbin/usermod -G nagcmd nagios  //其中-G选项表示将nagios用户的附加组指定为nagcmd

/usr/sbin/usermod -G nagcmd apache

(4.安装nagios的主程序:

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz 下载到/root目录

tar zxvf nagios-3.4.3.tar.gz

cd nagios-3.4.3

./configure --with-command-group=nagcmd //运行Nagios配置脚本并使用先前开设的用户及用户组如下图:


make all    //编译Nagios程序包源码  

(看到这个提示说明编译成功)

make install  //安装二进制运行程序


make install-init   //初始化脚本


make install-config //配置文件样本


make install-commandmode  //设置运行目录权限




+++++++++++++++现在还不能启动Nagios-还有一些要做的...+++++++++++++++

编辑/usr/local/nagios/etc/objects/contacts.cfg配置文件,更改email地址nagiosadmin的联系人定义信息中的EMail信息为你的EMail信息以接收报警内容。如下图:


  其中的13248274038@139.com为最终接受报警信息的邮箱地址。
  配置WEB接口安装Nagios的WEB配置文件到Apache的conf.d目录下:
  make install-webconf
  

  创建一个nagiosadmin的用户用于Nagios的WEB接口登录。记下你所设置的登录口令,一会儿你会用到它。
  htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
  重启Apache服务以使设置生效。
  service httpd restart
  (5.安装nagios的插件程序:
wget http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.13.tar.gz

tar xzf nagios-plugins-1.4.13.tar.gz

cd nagios-plugins-1.4.13

编译并安装插件:

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make && make install

把nagios添加为系统服务并将之加入到自动启动服务队列:

chkconfig --add nagios

chkconfig nagios on

检查其主配置文件的语法是否正确:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:

service nagios start


配置selinux
如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0
如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。
当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:




  chcon -R -t httpd_sys_content_t/usr/local/nagios/sbin
chcon -R -t httpd_sys_content_t /usr/local/nagios/share

通过web界面查看nagios:

http://your_nagios_IP/nagios
登录时需要指定前面设定的web认证帐号和密码。

(6.安装NRPE:(nagios服务器端的NRPE安装方式如下:)


三,配置被监控端Linux(nagios客户端):

useradd nagios

安装nagios插件如下图:


这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share

安装NRPE步骤如下:

第一步:(注意如果不使用xinetd守护进程来调用控制NRPE的话配置的时候在执行完make install-plugin之后后边的make install-daemon ,make install-daemon-config ,make install-xinetd就不用配置了包括后面的以及还有就可以不用配置,因为这些都是为了配合xinetd守护进程)下面因为我使用的是xinetd来调用的NRPE所以我的配置就如下:




第二步:


第三步:


第四步:


  

  (如果不在commands.cgf中定义check_nrpe命令那么此命令无法使用因为本身commands.cfg文件没有定义此命令的用法。所以如果在以后自己编写了一个插件那么也要将此插件的命令定义到此commands.cfg文件不然就会出错。)
  四.在nagios服务器上具体的配置定义监控那个服务和主机:
  {1.在/usr/local/nagios/etc目录创建两个目录hosts,services并修改nagios.cfg配置文件添加对hosts,services目录的识别分别如下图所示:
  
  
  其中hosts和services目录分别表示:hosts目录下面放置的是具体定义被监控主机的文件,services目录主要用于当两台主机上面所监控定义的服务相同时可以方便调用例如下图所示:
  
  可以看到上图中的关于host_name后面有定义3个ip地址这三个iP地址上关于定义监控服务Disk-vda1的
  配置相同所以就可以将它们配置在一块用逗号隔开。(对于在host_name后面的也不是必须为ip地址的我这里只是为了区分因为我定义时将配置文件名定义成了ip地址。比如42.62.3.170的配置文件中定义的host_name为AA且42.62.3.170主机在定义Disk-vda1服务时与118.26.238.249的Disk-vda1中定义的相同那么可以在118.26.238.249中的define-service里面的host_name定义为如下:

  {2在hosts目录定义要监控的Linux主机的文件比如我要定义的是42.62.66.41内容如下:

  
  其中define host里的use   linux-server表示引用的是templates.cfg里面的Linux-server模板define service里use generic-service引用的也是templates.cfg里面的generic-servies模板。
  另外注意:对于check_command后面的check_nrpe要提前在command.cfg里面定义此命令前面我已经定义过了不然无法使用报错。在check_command中!后面的check_load,check_disk等等也要提前在被控端Linux中的/usr/local/nagios/etc/nrpe.cfg文件定义如下图:
  注意上图中黄色部分的【check_load】以及【check_disk】要与nagios服务器端定义的check_command中的!后面的参数一致。做完以上的内容就可以分别在nagios服务器端重启nagios服务,nagios客户端重启nrpe的守护进程xinted服务。再次查看nagios的web监控图就可以看到监控的内容如下图:
  
  {3.写自定义脚本插件结合nagios服务监控Linux主机的DNS域名是否可以正常解析并实现报警:
  在被控端Linux的/usr/local/nagios/libexec目录编写脚本check_dns_lookup脚本内容如下图所示:

  注意下图解释:

  在nagios服务器/usr/local/nagios/etc/hosts目录下的42.62.66.41.cfg文件添加关于DNS的定义如下图:

  其中check_command命令后面的check_long_nrpe要提前在nagios服务器的command.cfg中定义。check_command后面的check_dns_lookup也要和被控端linux下的/usr/local/nagios/etc/libexec目录下的自定义脚本名称一致。并在被控Linux端的/usr/local/nagios/etc/nrpe.cfg文件添加此命令如下图所示:
  注意:黄色部分的[check_dns_lookup]也要和上述中的check_command命令后面定义的!号码的参数一致。
  做完以上的内容就可以分别在nagios服务器端重启nagios服务,nagios客户端重启nrpe的守护进程xinted服务。再次查看nagios的web监控图就可以看到监控的内容如下图:
  
  五:监控window服务器:
  {1.在window服务上下载NSClient++0.3.5.zip并安装步骤如下:
  将下载好的软件复制到C盘根目录并解压如下图所示:
  

  

  在nagios服务器上:vi /usr/local/nagios/etc/nagios.cfg #cfg_file=/usr/local/nagios/etc/objects/windows.cfg 去掉这句话的注释如下图所示:
  {2.在window服务上安装NSClient++步骤如下:
  到win服务器上,打开命令窗口,cd到刚才解压的目录在命令行界面执行 nsclient++ /install如图:

  此时在“服务”里面已经有了nsclient的服务如下图所示:


  编辑NES.ini文件(在NSClient++安装包的程序目录下)如下图所示:

  在 [modules] 选项里去掉所有的注释符号; 除了 CheckWMI.dll和RemoteConfiguration.dll
  修改成功后如下图所示:
  

  修改[Settings]选项里面的allowd_hosts选项修改完成如下图所示:注意要将allowed_hosts前面的分号去掉!
  在[NSClient] 里面,去掉port=12489的注释! 他靠端口12489侦听,所以防火墙要打开这个端口!如图所示:
  之后启动nsclient++如下图所示:

  使用netstat -an 查看12489端口是否开启如下图所示:

  接下来我们开始配置nagios服务器里面的内容vi /usr/local/nagios/etc/objects/windows.cfg =================================
  修改host_name和address选项修改完成如下图所示:
  (   然后下面的很多定义,都可以不用改)

  之后在nagios服务器端重启nagios即可。查看WEb监控图如下图所示:
  


  可以看到报错:NSClient - ERROR: PDH Collection thread not running. 由于操作系统语言的问题,好像NSClient 默认支持的语言并不多。
  查看NSClient的日志C:\NSClient++-0.2.7\nsclient.log,信息如下:
  
  
需要手动配置performance counters。
打开C:\NSClient++-0.2.7\counters.defs文件,复制文件里面"English US"那部分内容,粘贴到counters.defs 文件的最后,修改Description = "Chinese"。
  

  
修改完之后,在mmc中重启NSClient 服务。
然后查看日志,内容如下:说明在正常执行了
  

  打开Nagios Web监控页查看如下图所示:
  
  

  实验完成
  

  

  

  




附件:http://down.运维网.com/data/2364192


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662971-1-1.html 上篇帖子: 【1】nagios从零学习使用 下篇帖子: Linux下Nagios的安装与配置(一)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表