天天看点

Nagios安装配置及使用

1、工作原理图:

<a href="http://blog.51cto.com/attachment/201309/154033192.jpg" target="_blank"></a>

2、Nagios简述

Nagios主要监控服务/资源方面,适合多服务器上面的多服务监控,重点并不在图形化的监控,报警系统比cacti强大很多,nagios核心不做任何监控,所有监控都是由插件(脚本)来完成的。

Cacti是通过SNMP协议收集被监控服务器信息,而nagios有自己的agent收集信息(NRPE)。

3、Nagios插件说明

Nagios都是通过插件实现的,通常由一个主程序(nagios)、一个插件程序(nagios-plugins)

四个可选的附件(NRPE、NSCA工作客户端,NSclient 工作服务器和客户端、NDOUtils 工作服务端)

NRPE:监控linux/unix主机上执行脚本检测以实现对这些主机服务/资源的监控。

NSCA:让被监控的linux/unix主机主动将监控信息发送给nagios服务器。

NSClient++:用来监控windows主机时安装在windows主机上的组件(NSClient++ plugin)。

NDOUtils:将nagios的配置信息和事件产生的数据存入数据库,以实现这些数据的快速检索和处理,用于与Cacti整合。

Cacti与Nagios整合需要插件:

ndoutils下载:http://sourceforge.net/projects/nagios/files/ndoutils-2.x/ndoutils-2.0.0/ndoutils-2.0.0.tar.gz

npc下载:http://dl.cactifans.org/plugins/npc-2.0.4.tar.gz

4、Nagios插件下载

监控主机:

wget http://nchc.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.4.4/nagios-3.4.4.tar.gz

wget http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz

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

被监控 Linux 主机:

被监控 Windows 主机:

http://nsclient.org/nscp/downloads

http://files.nsclient.org/0.3.x/NSClient%2B%2B-0.3.9-Win32.zip

http://files.nsclient.org/0.3.x/NSClient%2B%2B-0.3.9-x64.zip

一、安装apache和php

1

2

3

<code>yum </code><code>install</code> <code>-y httpd httpd-devel php php-gd php-devel php-mysql php-pdo php-mbstring php-snmp net-snmp-* perl-DBD-MySQL glibc glibc-common libjpeg libjpeg-devel libpng libpng-devel zlib zlib-devel gd gd-devel</code>

<code>service httpd start</code>

<code>chkconfig httpd on</code>

二、安装nagios

4

5

6

7

8

9

10

11

12

13

14

15

16

<code>groupadd nagcmd</code>

<code>useradd</code> <code>-G nagcmd nagios</code>

<code>usermod</code> <code>-a -G nagcmd apache</code>

<code>tar</code> <code>zxvf nagios-3.4.1.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>nagios</code>

<code>.</code><code>/configure</code> <code>--with-nagios-group=nagios --</code><code>enable</code><code>-event-broker </code><code>#整合时间代理程序,默认安装/usr/local/nagios</code>

<code>make</code> <code>all</code>

<code>make</code> <code>install</code>             <code>#安装主要的程序、CGI及HTML文件</code>

<code>make</code> <code>install</code><code>-init        </code><code>#生成init启动脚本</code>

<code>make</code> <code>install</code><code>-config      </code><code>#安装示例配置文件</code>

<code>make</code> <code>install</code><code>-commandmode </code><code>#设置相应的目录权限</code>

<code>make</code> <code>install</code><code>-webconf     </code><code>#安装Apache配置文件,Nginx下不需要</code>

<code>chown</code> <code>nagios:nagios -R </code><code>/usr/local/nagios/</code>

<code>/usr/local/nagios/bin/nagios</code> <code>-</code><code>v</code> <code>/usr/local/nagios/etc/nagios</code><code>.cfg </code><code>#验证nagios配置文件</code>

<code>Service nagios start</code>

<code>chkconfig nagios on</code>

安装完成后,/usr/local/ngios下生成六个文件夹:

etc:Nagios配置文件位置

sbin:Nagios cgi文件所在目录,也就是执行外部命令所需文件所在的目录

Share:Nagios网页文件所在的目录

var:Nagios日志文件、spid 等文件所在的目录

var/archives:日志归档目录

var/rw:用来存放外部命令文件

创建nagiosweb登陆web页面用户和密码

<code>htpasswd -c </code><code>/usr/local/nagios/etc/htpasswd</code><code>.</code><code>users</code> <code>test</code>

<code>New password: 123456</code>

修改nagios默认登陆web页面用户

<code>vi</code> <code>/usr/local/nagios/etc/objects/contacts</code><code>.cfg</code>

<code>contact_name nagiosadmin </code><code>#把nagiosadmin修改为test</code>

访问nagios页面:http://ip/nagios

三、安装nagios-plugins插件

<code>tar</code> <code>zxvf nagios-plugins-1.4.16.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>nagios-plugins-1.4.16</code>

<code>.</code><code>/configure</code> <code>--with-nagios-user=nagios --with-nagios-group=nagios --with-mysql=</code><code>/usr/local/mysql</code> <code>#添加监控mysql支持</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

四、修改所有用户都有权限访问web页面

<code>vi</code> <code>nagios</code><code>/etc/cgi</code><code>.cfg </code><code>#默认授权的都是nagiosadmin,改为*所有用户</code>

<code>authorized_for_system_information=*</code>

<code>authorized_for_configuration_information=*</code>

<code>authorized_for_system_commands=*</code>

<code>authorized_for_all_services=*</code>

<code>authorized_for_all_hosts=*</code>

<code>authorized_for_all_service_commands=*</code>

<code>authorized_for_all_host_commands=*</code>

五、cfg配置文件介绍

<a href="http://blog.51cto.com/attachment/201309/120807901.jpg" target="_blank"></a>

监控Linux主机

一、nagios监控端安装nrpe

<code>tar</code> <code>zxvf nrpe-2.13.</code><code>tar</code><code>.gz </code><code>#基于nrpe检测,所以必须也要安装</code>

<code>cd</code> <code>nrpe-2.13</code>

<code>.</code><code>/configure</code> <code>--with-nrpe-user=nagios --with-nrpe-group=nagios --with-nagios-user=nagios --with-nagios-group=nagios</code>

<code>make</code> <code>install</code><code>-plugin</code>

2、编辑 commands.cfg 文件定义 nrpe 对nagios使用

<code>vi</code> <code>/usr/local/nagios/etc/objects/commands</code><code>.cfg 末尾添加:</code>

<code>define </code><code>command</code><code>{</code>

<code>command_name check_nrpe </code><code>#定义命令名称为check_nrpe,在services.cfg中要使用这个名称</code>

<code>command_line $USER1$</code><code>/check_nrpe</code> <code>-H $HOSTADDRESS$ -c $ARG1$</code>

<code>} </code><code>#这是定义实际运行的插件程序,-c后面带的$ARG1$参数是传给nrpe daemon执行的检测命令</code>

3、配置加载监控对象文件:

<code>vi</code> <code>/usr/local/nagios/etc/nagios</code><code>.cfg</code>

<code>在 cfg_file=</code><code>/usr/local/nagios/etc/objects/localhost</code><code>.cfg 下添加:</code>

<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/linux</code><code>.cfg</code>

4、设置要监控的内容:

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

<code>vi</code> <code>/usr/local/nagios/etc/objects/linux</code><code>.cfg</code>

<code>define host{</code>

<code> </code><code>use linux-server</code>

<code> </code><code>host_name squid.</code><code>test</code><code>.com</code>

<code> </code><code>alias</code> <code>my squid </code><code>#web页面显示的名字</code>

<code> </code><code>address 192.168.0.202 </code><code>#被监控主机ip</code>

<code>}</code>

<code>define service{</code>

<code> </code><code>use generic-service</code>

<code> </code><code>service_description check-swap</code>

<code> </code><code>check_command check_nrpe!check_swap</code>

<code> </code><code>service_description check-disk</code>

<code> </code><code>check_command check_nrpe!check_disk</code>

<code> </code><code>service_description check-</code><code>ssh</code>

<code> </code><code>check_command check_nrpe!check_ssh</code>

<code> </code><code>service_description check-http</code>

<code> </code><code>check_command check_nrpe!check_http</code>

<code>保存退出!</code>

<code>service nagios restart</code>

<code>设置开机启动:</code>

<code>echo</code> <code>"/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d"</code> <code>&gt;&gt; </code><code>/etc/rc</code><code>.</code><code>local</code>

二、Linux被监控端安装nagios-plugin和nrpe

1、安装nagios插件

<code>useradd</code> <code>-s </code><code>/sbin/nologin</code> <code>nagios</code>

<code>tar</code> <code>-zxvf nagios-plugins-1.4.14.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>nagios-plugins-1.4.14</code>

<code>.</code><code>/configure</code> <code>--with-nagios-user=nagios --with-nagios-group=naigos</code>

<code>make</code> <code>all &amp;&amp; </code><code>make</code> <code>install</code>

2、安装nrpe

<code>tar</code> <code>-zxvf nrpe-2.12.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>nrpe-2.12</code>

<code>make</code> <code>install</code><code>-daemon</code>

<code>make</code> <code>install</code><code>-daemon-config</code>

<code>make</code> <code>install</code><code>-xinetd </code><code>#nrpe安装为xinetd服务</code>

3、配置nrpe

<code>vi</code> <code>/etc/xinetd</code><code>.d</code><code>/nrpe</code>

<code>only_from = 127.0.0.1,192.168.0.204 </code><code>#添加监控主机地址</code>

<code>vi</code> <code>/usr/local/nagios/etc/nrpe</code><code>.cfg</code>

<code>allowed_hosts=127.0.0.1,192.168.0.204 </code><code>#允许监控主机对其监控</code>

<code>/usr/local/nagios/bin/nrpe</code> <code>-c </code><code>/usr/local/nagios/etc/nrpe</code><code>.cfg -d </code><code>#启动nrpe</code>

<code>netstat</code> <code>-tuplna | </code><code>grep</code> <code>5666 或 </code><code>ps</code> <code>-elf |</code><code>grep</code> <code>nrpe </code><code>#查看是否启动</code>

<code>/usr/local/nagios/libexec/check_nrpe</code> <code>-H 192.168.0.203 </code><code>#在监控端检测被监控端信息,显示版本则成功。</code>

登陆web页面查看被监控主机信息!

4、nagios-web界面提示:

It appears as though you do not have permission to view information for any of the services you requested...

解决:vi /usr/local/nagios/etc/cgi.cfg

use_authentication=0 #默认1,设置为0

service nagios restart

监控Windows主机

一、nagios监控端配置

1、配置加载监控对象文件

<code>cfg_file=</code><code>/usr/local/nagios/etc/objects/windows</code><code>.cfg </code><code>#去掉注释</code>

2、编辑 commands.cfg 文件定义check_nt对nagios使用(默认已经定义,不需要再配置)

<code> </code><code>command_name check_nt</code>

<code> </code><code>command_line $USER1$</code><code>/check_nt</code> <code>-H $HOSTADDRESS$ -p 12489 -</code><code>v</code> <code>$ARG1$ $ARG2$</code>

<code> </code><code>}</code>

3、设置要监控的内容(默认配置)

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

<code>vi</code> <code>/usr/local/nagios/etc/objects/windows</code><code>.cfg</code>

<code> </code><code>use windows-server</code>

<code> </code><code>host_name winserver</code>

<code> </code><code>alias</code> <code>My Windows Server</code>

<code>define hostgroup{</code>

<code> </code><code>hostgroup_name windows-servers</code>

<code> </code><code>alias</code> <code>Windows Servers</code>

<code> </code><code>service_description NSClient++ Version</code>

<code> </code><code>check_command check_nt!CLIENTVERSION</code>

<code> </code><code>service_description Uptime</code>

<code> </code><code>check_command check_nt!UPTIME</code>

<code> </code><code>service_description CPU Load</code>

<code> </code><code>check_command check_nt!CPULOAD!-l 5,80,90</code>

<code> </code><code>service_description Memory Usage</code>

<code> </code><code>check_command check_nt!MEMUSE!-w 80 -c 90</code>

<code> </code><code>service_description C:\ Drive Space</code>

<code> </code><code>check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90</code>

<code> </code><code>service_description W3SVC</code>

<code> </code><code>check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC</code>

<code> </code><code>service_description Explorer</code>

<code> </code><code>check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe</code>

二、Windows被监控端配置

NSClient++与 Nagios 服务器通信,使用的是Nagios 服务器的 check_nt 插件与nsclient连接

<a href="http://blog.51cto.com/attachment/201309/181951187.jpg" target="_blank"></a>

安装配置NSClient++

下载:http://nsclient.org/nscp/downloads,下面使用是不用安装的包,也可以使用安装包。

1、将NSClient++-0.3.9-Win32解压到C盘下NSClient++下

2、打开cmd切换到C盘NSClient++下,安装:"NSClient++.exe" /install,再"NSClient++.exe" SysTray

3、运行services.msc-&gt;右击属性NSClientpp-&gt;登陆-&gt;打钩允许服务与桌面交互

4、配置NSClient

打开nsc.ini去掉注释:CheckWMI.dll、RemoteConfiguration.dll和port=12489

allowed_hosts=127.0.0.1/32,192.168.0.204 #添加监控主机ip

5、启动NSClient++,进入NSClient++目录下,输入NSClient++ /start

6、监控端验证:/usr/local/nagios/libexec/check_nrpe -H 192.168.0.200

打开nagios web页面即可看到windows监控信息!

本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1297365,如需转载请自行联系原作者

继续阅读