nagios+cacti安装与部署新Word下载.docx
《nagios+cacti安装与部署新Word下载.docx》由会员分享,可在线阅读,更多相关《nagios+cacti安装与部署新Word下载.docx(24页珍藏版)》请在冰豆网上搜索。
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模块<
IfModulealias_module>
添加如下行
ScriptAlias/nagios/cgi-bin"
/usr/local/nagios/sbin"
<
Directory"
>
#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
/Directory>
Alias/nagios"
/usr/local/nagios/share"
OptionsNone
创建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
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
56660.0.0.0:
124890.0.0.0:
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使用
}
service_descriptionMemoryUsage
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格式文件(可以显示中文):
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(报警短信发送的手机号码)
}
contact_namemikky;
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"
pszMisg=$2&
$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相对应)
(注意与上面的区别,标注颜色的部分,即为不同的地方)
$NOTIFICATIONTYPE$\n\nService:
$SERVICEDESC$\nHost:
$HOSTALIAS$\nAddress:
$HOSTADDRESS$\nState:
$SERVICESTATE$\n\nDate/Time:
$LONGDATETIME$\n\nAdditionalInfo:
\n\n$LONGSERVICEOUTPUT$"
**$NOTIFICATIONTYPE$ServiceAlert:
$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$**"
上面内容均为设置邮件报警设置,短信报警设置如下:
notify-host-by-sms'
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'
command_nameservice-notify-by-sms此处定义服务短信报警,与contacts.cfg中的s