Cacti+nagios整合安装.docx

上传人:b****5 文档编号:4707846 上传时间:2022-12-07 格式:DOCX 页数:19 大小:2.21MB
下载 相关 举报
Cacti+nagios整合安装.docx_第1页
第1页 / 共19页
Cacti+nagios整合安装.docx_第2页
第2页 / 共19页
Cacti+nagios整合安装.docx_第3页
第3页 / 共19页
Cacti+nagios整合安装.docx_第4页
第4页 / 共19页
Cacti+nagios整合安装.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Cacti+nagios整合安装.docx

《Cacti+nagios整合安装.docx》由会员分享,可在线阅读,更多相关《Cacti+nagios整合安装.docx(19页珍藏版)》请在冰豆网上搜索。

Cacti+nagios整合安装.docx

Cacti+nagios整合安装

Nagios的安装部署

Nagios是一款开源的免费网络监视工具,其功能强大,灵活性强。

能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。

本文档主要实现nagios监控windows主机,nagios监控windows系统有三种实现方式:

SNMP、NSClient++、NRPE,后面两种方式都需要在windows上安装agent,因目前服务器上都开启了SNMP,所以本文档只介绍使用SNMP方式来监控Windows。

文档版本:

V1.0

系统环境:

监控服务器:

centos5.5,被监控机:

windowsserver2008R2

一.Nagios的安装

1.安装基础支持套件

nagios需要apache,gcc,glibc,gd库等套件才能运行.

yuminstallhttpd(默认Linux已经安装此服务,所以无需重新安装)

yuminstallgcc

yuminstallglibcglibc-common

yuminstallgdgd-devel

2.创建帐号及组

useradd-mnagios

passwdnagios

groupaddnagcmd

usermod-a-Gnagcmdnagios

usermod-a-Gnagcmddaemon#daemon为运行apache的账号。

3.安装nagios

tar-zxvfnagios-3.0.5.tar.gz

cdnagios-3.0.5

./configure--prefix=/usr/local/nagios--with-command-group=nagcmd--with-gd-lib=/usr/lib/--with-gd-inc=/usr/include/

makeall

makeinstall

makeinstall-init#在/etc/rc.d/init.d安装启动脚本

makeinstall-config#在/usr/local/nagios/etc安装示例配置文件

makeinstall-commandmode#配置目录权限

4.配置apache(/etc/httpd/conf/httpd.conf)

在alias模块添加如下行

ScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin"

#SSLRequireSSL

OptionsExecCGI

AllowOverrideNone

Orderallow,deny

Allowfromall

#Orderdeny,allow

#Denyfromall

#Allowfrom127.0.0.1

AuthName"NagiosAccess"

AuthTypeBasic

AuthUserFile/usr/local/nagios/etc/htpasswd.users

Requirevalid-user

Alias/nagios"/usr/local/nagios/share"

#SSLRequireSSL

OptionsNone

AllowOverrideNone

Orderallow,deny

Allowfromall

#Orderdeny,allow

#Denyfromall

#Allowfrom127.0.0.1

AuthName"NagiosAccess"

AuthTypeBasic

AuthUserFile/usr/local/nagios/etc/htpasswd.users

Requirevalid-user

创建apache目录验证文件并得启apache

htpasswd-c/usr/local/nagios/etc/htpasswd.usersnagiosadmin(如果不成功,用htpasswd绝对路径)

Newpassword:

Re-typenewpassword:

Addingpasswordforusernagiosadmin

servicehttpdrestart#重启apache

5.安装nagios-plugins

nagios-plugins是nagios官方提供的一套插件程序,nagios监控主机的功能其实都是通过执行插件程序来实现的.

tarzxvfnagios-plugins-1.4.11.tar.gz

cdnagios-plugins-1.4.11

./configure--with-nagios-user=nagios--with=-nagios-group=nagios--enable-redhat-pthread-workaround

make

makeinstall

6.其它设置

chkconfig--addnagios#配置机器启动时自动启动Nagios

chkconfignagioson

/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg#检查Nagios配置文件

vi/etc/selinux/config#关闭SELinux

SELINUX=disabled

serviceiptablesstop#关闭SELinux,或打开80,5666端口

7.启动并访问

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

servicenagiosstart

8.现在就可以访问nagios服务了(http:

//ip/nagios)

由此可见nagios服务能运行了,现在它只监控了服务器本身.下面配置如何监控windows服务器.

二.监控Windows服务器

nagios监控windows系统有三种实现方式:

SNMP,NSClient++,NRPE,后面两种方式都需要在windows上安装agent,本文档只介绍使用NSClient++方式来监控Windows

1.windows设置

把nsclient++0.3.3.zip解压到C盘

双击安装即可,之间有一步需要输入nagios服务器ip地址,密码可以不输入,勾选第一项,第三项,最后一项。

编辑NES.ini

[modules]#去掉注释符号”;”除了CheckWMI.dll和RemoteConfiguration.dll

FileLogger.dll

CheckSystem.dll

CheckDisk.dll

NSClientListener.dll

[Settings]

allowd_host=192.168.0.xx#些处为nagios服务的IP

[NSClient]

port=12489#去掉注释就可以了!

启动nsclient服务并确认端口是否打开

C:

\NSClient++-Win32-0.3.5>netstat-an|more

ActiveConnections

ProtoLocalAddressForeignAddressState

TCP0.0.0.0:

4450.0.0.0:

0LISTENING

TCP0.0.0.0:

56660.0.0.0:

0LISTENING

TCP0.0.0.0:

124890.0.0.0:

0LISTENING

2.nagios设置

接下来我们开始配置nagios服务器里面的内容

因为nagios是模块化调用,先到配置文件打开windows相关模块

vim/usr/local/nagios/etc/nagios.cfg

#Definitionsformonitoringthelocal(Linux)host

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

#DefinitionsformonitoringaWindowsmachine

cfg_file=/usr/local/nagios/etc/objects/windows.cfg#去掉这句话的注释

打开模块后配置windows.cfg

vim/usr/local/nagios/etc/objects/windows.cfg

definehost{

usewindows-server

host_namewinserver#被监控主机名

aliasMyWindowsServer

address192.168.0.8;被监控的windows地址

#把下面的host_name都改成winserver

defineservice{

usegeneric-service

host_namewinserver

service_descriptionCPULoad

check_commandcheck_nt!

CPULOAD!

-l5,80,90#监控CPU使用

}

defineservice{

usegeneric-service

host_namewinserver

service_descriptionMemoryUsage

check_commandcheck_nt!

MEMUSE!

-w80-c90#监控内存

}

打开windows模块,设置windows.cfg中相关被监控主机与监控内容后nagios服务器就配置完了,下面重启nagios然后看一下监控结果.

可以监控,表示现在windows运行一切正常。

3.Nagios监控相关内容

1).nagios目录功能的简要说明

bin

Nagios执行程序所在目录,nagios文件即为主程序

etc

Nagios配置文件位置

sbin

NagiosCgi文件所在目录,也就是执行外部命令所需文件所在的目录

Share

Nagios网页文件所在的目录

Var

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

var/archives

日志归档目录

var/rw

用来存放外部命令文件

libexec

存放nagios插件

Nagios报警设置

Nagios发警告邮件默认是采用本机的smtp服务,可以查看commands.cfg中关于发邮件的命令的定义,使用本机的mail命令,这就需要开启本机的smtp服务,为了安全可以在防火墙上设置拒绝其他的机器连本机的25号端口.假如网络里面有一个邮件服务器(比如公司自己的邮件服务器),则可以直接使用这台现有的邮件服务器,不用开启本机的smtp服务,只需要重新定义命令使用第三方软件sendEmail.

sendEmail官方地址:

以利用一现有的,假如为encle@,SMTP邮件服务器地址为(如果没有DNS,则直接使用其IP,假如为28.4.15.18),SMTP验证的用户名密码(如果该邮件服务不需要SMTP验证则无需本用户名密码)为encle/iamencle

1.安装sendMail

#cd/u01/software/nagios

#wget

#tar-zxvfsendEmail-v1.56.tar.gz&&cdsendEmail-v1.56

#cpsendEmail/usr/local/bin

#chmod0755/usr/local/bin/sendEmail

2.发送邮件测试

#sendEmail-h(查看sendMail帮助)

#sendEmail-fdba@-tencle@-s28.4.15.18-u"nagios测试"-m"nagiostest测试"

注意:

这里有可能发送不成功,需要安装sendmail-cf并且需要修改sendmail.mc将DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl注释掉,并且需要m4sendmail.mc>sendmail.cf即可

或者将一个文件的内容作为附件发出,并且是gb2312或utf8编码的html格式文件(可以显示中文):

#sendEmail-fdba@-tencle@-s28.4.15.18-u"nagios测试"-m"plsseetheattachement附件"-a/var/log/messages-omessage-content-type=html-omessage-charset=gb2312

各参数含义如下:

-f表示发送者的邮箱,可随意设置

-t表示接收者的邮箱

-s表示SMTP服务器的域名或者IP

-u表示邮件的主题

-m表示邮件的内容

-xu表示SMTP验证的用户名,如果SMTP服务器需要验证的话就加上该参数,一般发给外网用户则需要

-xp表示SMTP验证的密码,如果SMTP服务器需要验证的话就加上该参数,一般发给外网用户则需要

-aFILE[FILE...]fileattachment(s)

-ccADDRESS[ADDR...]ccemailaddress(es)

-bccADDRESS[ADDR...]bccemailaddress(es)

如果使用Foxmail接受邮件,为了正确显示中文,需设置邮件显示编码为UTF-8,设置方法:

右键邮件文本-编码-选择"UTF-8"

3.配置接收nagios告警的邮件地址(多个联系人)

#vim/usr/local/nagios/etc/objects/contacts.cfg

-------------------------------------------------------------------------

definecontact{

contact_namenagiosadmin;Shortnameofuser

usegeneric-contact;Inheritdefaultvaluesfromgeneric-contacttemplate(definedabove)

aliasNagiosAdmin;Fullnameofuser

service_notification_period24x7

host_notification_period24x7

service_notification_optionsw,u,c,r,f,s

host_notification_optionsd,u,r,f,s

service_notification_commandsnotify-service-by-email,service-notify-by-sms(这里设置服务报警机制,本机为邮件(email)和短信报(sms)警)

host_notification_commandsnotify-host-by-email,host-notify-by-sms(这里设置主机报警机制,本机为邮件(email)和短信报(sms)警)

emailnagiosadmin@;<<*****CHANGETHISTOYOUREMAILADDRESS******(输入报警发送到的邮箱)

pager151XXXXXXXX(报警短信发送的手机号码)

}

definecontact{

contact_namemikky;Shortnameofuser

usegeneric-contact;Inheritdefaultvaluesfromgeneric-contacttemplate(definedabove)

aliasNagiosAdmin;Fullnameofuser

service_notification_period24x7

host_notification_period24x7

service_notification_optionsw,u,c,r,f,s

host_notification_optionsd,u,r,f,s

service_notification_commandsnotify-service-by-email

host_notification_commandsnotify-host-by-email

emailmikky@;<<*****CHANGETHISTOYOUREMAILADDRESS******

pager186XXXXXXXX

}

最后将两个用户都添加到联系人组里面

definecontactgroup{

contactgroup_nameadmins

aliasNagiosAdministrators

membersnagiosadmin,mikky(此处写入上面定义的联系人)

}

通过上面的配置只能实现邮件报警,并不能实现短信报警,设置短信报警必须要有短信接口,这里必须有公司提供,下面为有短信接口的设置短信报警的方法:

首先需要编写脚本如下:

(/usr/local/nagios/bin/phone.sh)

#!

/bin/bash

ms=$2

curl"http:

//ip:

端口号/MWGate/wmgw.asmx/MongateCsSpSendSmsNew?

userId=用户名&password=密码&pszMobis=$1&pszMsg=$ms&iMobiCount=1&pszSubPort=*"

echo"http:

//ip:

端口号/MWGate/wmgw.asmx/MongateCsSpSendSmsNew?

userId=用户名&password=密码&pszMobis=$1&pszMisg=$2&iMobiCount=1&pszSubPort=*"

$1为获取手机号码

$ms为获取报警内容

不要忘记给予phone.sh执行权限chmod+x/usr/local/nagios/bin/phone.sh

一般情况下,短信接口样式为curl后面的部分,设置完成之后仍需修改配置文件如下:

修改命令配置文件

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

#'notify-host-by-email'commanddefinition

definecommand{

command_namenotify-host-by-email(此处定义主机邮件报警,与contacts.cfg中的host_notification_commandsnotify-host-by-email,host-notify-by-sms相对应)

command_line/usr/bin/printf"%b""*****Nagios*****\n\nNotificationType:

$NOTIFICATIONTYPE$\nHost:

$HOSTNAME$\nState:

$HOSTSTATE$\nAddress:

$HOSTADDRESS$\nInfo:

$LONGHOSTOUTPUT$\n\nDate/Time:

$LONGDATETIME$\n"|/bin/mail-s"**$NOTIFICATIONTYPE$HostAlert:

$HOSTNAME$is$HOSTSTATE$**"$CONTACTEMAIL$

}

#'notify-service-by-email'commanddefinitiondefinecommand{

command_namenotify-service-by-email(此处定义服务邮件报警,与contacts.cfg中的service_notification_commandsnotify-service-by-email,service-notify-by-sms相对应)

(注意与上面的区别,标注颜色的部分,即为不同的地方)

command_line/usr/bin/printf"%b""*****Nagios*****\n\nNotificationType:

$NOTIFICATIONTYPE$\n\nService:

$SERVICEDESC$\nHost:

$HOSTALIAS$\nAddress:

$HOSTADDRESS$\nState:

$SERVICESTATE$\n\nDate/Time:

$LONGDATETIME$\n\nAdditionalInfo:

\n\n$LONGSERVICEOUTPUT$"|/bin/mail-s"**$NOTIFICATIONTYPE$ServiceAlert:

$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$**"$CONTACTEMAIL$

}

上面内容均为设置邮件报警设置,短信报警设置如下:

#'notify-host-by-sms'commanddefinition

definecommand{

command_namehost-notify-by-sms(此处定义主机短信报警,与contacts.cfg中的host_notification_commandsnotify-host-by-email,host-notify-by-sms相对应)

command_line/usr/local/nagios/bin/phone.sh$CONTACTPAGER$"***$NOTIFICATIONTYPE$HostAlert:

$HOSTNAME$IP:

$HOSTADDRESS$is$HOSTSTATE$***"

}

#'notify-service-by-sms'commanddefinition

definecommand{

command_nameservice-notify-by-sms此处定义服务短信报警,与contacts.cfg中的service_notification_comman

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1