Nagios安装配置.docx
- 文档编号:23248804
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:28
- 大小:29.70KB
Nagios安装配置.docx
《Nagios安装配置.docx》由会员分享,可在线阅读,更多相关《Nagios安装配置.docx(28页珍藏版)》请在冰豆网上搜索。
Nagios安装配置
Nagios安装配置
实验环境:
nagios监控服务器为192.168.1.240主机名为nagios
nagios被监控服务器为192.168.1.208主机名为apache
所需软件包如下:
(zlib-1.2.3.tar.gz,libpng-1.2.10.tar.bz2,jpegsrc.v6b.tar.gz,
freetype-2.1.10.tar.gzgd-2.0.35.tar.gz)
httpd-2.2.6.tar.gz、
imagepak-base.tar.gz
mysql-5.0.75.tar.gz
nagios-3.1.0.tar.gz
nagios-plugins-1.4.13.tar.gz
nrpe-2.12.tar.gz
在监控服务器上进行下面的操作:
首先保证上面括号括起的软件包都已经安装完成(默认安装即可)
1.安装nagios主程序
1)安装nagios:
#tar-zxvfnagios-3.10.tar.gz
#cdnagios-3.10
#./configure--prefix=/usr/local/nagios--with-gd-lib=/usr/local/lib
--with-gd-inc=/usr/local/include(必须指定gd库的安装位置否则nagios无法打开mapstatus)
2)创建用户并且设定权限:
groupaddnagios
useradd–gnagiosnagios
mkdir/usr/local/nagios
chown–Rnagios:
nagios/usr/local/nagios
makeall
makeinstall//来安装主程序,CGI和HTML文件
chown–Rnagios:
nagios/usr/local/nagios//把nagios文件夹给nagios用户
makeinstall-init//在/etc/rc.d/init.d安装启动脚本
makeinstall-commandmode//来配置目录权限
makeinstall-config//来安装示例配置文件,安装的路径是/usr/local/nagios/etc.
3)验证是否安装成功:
验证程序是否被正确安装。
切换目录到安装路径(这里是/usr/local/nagios),看是否存在
etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统
了。
后表是五个目录功能的简要说明:
BinNagios执行程序所在目录,nagios文件即为主程序
EtcNagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件
SbinNagiosCgi文件所在目录,也就是执行外部命令所需文件所在的目录
ShareNagios网页文件所在的目录
VarNagios日志文件、spid等文件所在的目录
var/archivesEmptydirectoryforthearchivedlogs
/var/rwEmptydirectoryfortheexternalcommandfile
2.安装插件
1)解压缩:
tar-zxvfnagios-plugins-1.4.13.tar.gz
cdnagios-plugins-1.4.13
./configure--prefix=/usr/local/nagios/--enable-redhat-pthread-workaround
(在redhat系统上面安装可能出现configure时,到这里checkingforredhatspopen
problem...就不动了,所以需要在configure时再--enable-redhat-pthread-workaround)
make
makeinstall//安装完成后在/usr/local/nagios下产生一个libexec目录
ls/usr/local/nagios/libexec/
会显示安装的插件文件,即所有的插件都安装在libexec这个目录下(该插件的用途就是扩
展commands.cfg)
注意:
要是没有这个插件目录需要用下面的命令把插件复制过来
cp/usr/local/nagios-plugins/libexec/usr/local/nagios/
安装Apache
#useraddapache–gdaemon–M
#vi/usr/local/apache/conf/httpd.conf
找到UserxxxUserapache
GroupxxxGroupapache
2)安装imagepak-base.tar.gz
tar–xvzfimagepak-base.tar.gz
mvbase//usr/local/nagios/share/images/logos/
3)将apache的运行用户加到nagios组里面:
从httpd.conf中过滤出当前的apache运行用户
Grep^User/usr/local/apache2/conf/httpd.conf
我的是daemon,下面将这个用户加入nagios组
Usermod–Gnagiosdaemon
4)修改apache配置:
修改apache的配置文件,增加nagios的目录,并且访问此目录需要进行身份验证
vi/usr/local/apache2/conf/httpd.conf
在最后增加如下内容:
ScriptAlias/nagios/cgi-bin/usr/local/nagios/sbin
OptionsExecCGI
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthTypeBasic
AuthUserFile/usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件
Requirevalid-user
Alias/nagios/usr/local/nagios/share
OptionsNone
AllowOverrideNone
Orderallow,deny
Allowfromall
AuthName"NagiosAccess"
AuthTypeBasic
AuthUserFile/usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件
Requirevalid-user
5)增加验证用户:
也就是通过web访问nagios的时候,必须要用这个用户登陆.在这里我们增加用户test:
密
码为123456
#/usr/local/apache2/bin/htpasswd-c/usr/local/nagios/etc/htpasswdtest//用户名
Newpassword:
//(输入123456)
Re-typenewpassword:
(再输入一次密码)
Addingpasswordforusertest
6)查看认证文件的内容:
[root@localhostconf]#less/usr/local/nagios/etc/htpasswd
test:
OmWGEsBnoGpIc//前半部分是用户名test,后面是加密后的密码
到这里nagios的安装也就基本完成了,你可以通过web来访问了.
http:
//192.168.1.240/nagios会弹出对话框要求输入用户名密码
输入test,密码123456,就可以进入nagios的主页面了
但是可以发现什么也点不开,因为nagios还没启动呢!
下面的工作就是修改配置文件,增加
要监控的主机和服务
3.典型配置
nagios要用起来,就必须修改配置文件,增加要监控的主机和服务才行.在具体做这个动作
之前,下面的概念必须要了解.
1)预备知识:
在Nagios里面定义了一些基本的对象,一般用到的有:
联系人contact出了问题向谁报告?
一般当然是系统管理员了
监控时间段timeperiod7X24小时不间断还是周一至周五,或是自定义的其他时间段
被监控主机Host所需要监控的服务器,当然可以是监控机自己
监控命令commandnagios发出的哪个指令来执行某个监控,这也是自己定义的
被监控的服务Service例如主机是否存活,80端口是否开,磁盘使用情况或者自定
义的服务等
注意:
多个被监控主机可以定义为一个主机组,多个联系人可以被定义为一个联系人组
2)将示例配置文件复制为真实配置文件名:
cd/usr/local/nagios/etc
把这里.cfg-sample文件配置文件模板,全部重命名为.cfg
3)修改配置文件:
修改nagios的主配置文件nagios.cfg
vinagios.cfg
cfg_file=/usr/local/nagios/etc/localhost.cfg//在前面加#
cfg_file=/usr/local/nagios/etc/contacts.cfg//联系人配置文件路径
cfg_file=/usr/local/nagios/etc/contactgroups.cfg//联系人组配置文件路径
cfg_file=/usr/local/nagios/etc/commands.cfg//命令配置文件路径
cfg_file=/usr/local/nagios/etc/host.cfg//主机配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg//服务器组配置文件
cfg_file=/usr/local/nagios/etc/templates.cfg//模板配置文件路径
cfg_file=/usr/local/nagios/etc/timeperiods.cfg//监视时段配置文件路径
cfg_file=/usr/local/nagios/etc/services.cfg//服务配置文件
其他配置文件以实际情况来进行配置(上面所有的.cfg文件现在etc目录下是没有的需要手
动建立,否则启动时会报错,另外一种方法就是把路径该为etc/objects该目录下有默认的
几个文件,视情况而定吧)
改check_external_commands=0为check_external_commands=1.这行的作用是允许在web
界面下执行重启nagios、停止主机/服务检查等操作。
把command_check_interval的值从默认的1改成command_check_interval=10s(根据自己
的情况定这个命令检查时间间隔,不要太长也不要太短)。
主配置文件要改的基本上就是这些,通过上面的修改,发现/usr/local/nagios/etc并没有
文件hosts.cfg等一干文件,怎么办?
稍后手动创建它们。
4)检查配置文件是否出错
/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg
出现TotalWarnings:
0
TotalErrors:
0//这样表示配置文件没有错误
5)修改CGI脚本控制文件cgi.cfg
#vicgi.cfg
第二个要修改的配置文件是cgi.cfg,它的作用是控制相关cgi脚本。
先确保
use_authentication=1。
接下来修改default_user_name=test(前面创建的用户名),再后面
的修改在下表列出:
authorized_for_system_information=nagiosadmin,mandahang,test//后面跟的都是用户
名
authorized_for_configuration_information=nagiosadmin,mandahang,test
authorized_for_system_commands=mandahang,test
authorized_for_all_services=nagiosadmin,mandahang,test
authorized_for_all_hosts=nagiosadmin,mandahang,test
authorized_for_all_service_commands=nagiosadmin,mandahang,test
authorized_for_all_host_commands=nagiosadmin,mandahang,test
注意:
在上面的配置文件里面加上新加的用户test
那么上述用户名打那里来的呢?
是执行命令/usr/local/apache2/bin/htpasswd–c
/usr/local/nagios/etc/htpasswdtest(用户名test)所生成的
6)配置各种配置文件
(1)定义监控时间段,创建配置文件timeperiods.cfg:
#vitimeperiods.cfg
Definetimeperiod{
timeperiod_name24x7//时间段的名称,这个地方不要有空格
alias24HoursADay,7DaysAWeek
sunday00:
00-24:
00
monday00:
00-24:
00
tuesday00:
00-24:
00
wednesday00:
00-24:
00
thursday00:
00-24:
00
friday00:
00-24:
00
saturday00:
00-24:
00
}
定义了一个监控时间段,它的名称是24x7,监控的时间是每天全天24小时:
(2)定义联系人,创建配置文件contacts.cfg
#vicontacts.cfg
Definecontact{
contact_nametest//联系人的名称,这个地方不要有空格
aliassysadmin
service_notification_period24x7
host_notification_period24x7
service_notification_optionsw,u,c,r
host_notification_optionsd,u,r
service_notification_commandsnotify-by-email,service-notify-by-sms
host_notification_commandshost-notify-by-email,host-notify-by-sms
emailqubaquan@
pager1391119xxxx
}
创建了一个名为test的联系人,下面列出其中重要的几个选项做说明:
service_notification_period24x7
服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的.
host_notification_period24x7
主机出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的
service_notification_optionsw,u,c,r
当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况
恢复正常,在这四种情况下通知联系人.
host_notification_optionsd,u,r
当主机出现d—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3
种情况下通知联系人
service_notification_commandsnotify-by-email,service-notify-by-sms,
服务出问题通知采用的命令notify-by-email,service-notify-by-sms命令是在
commands.cfg中定义的,作用是给联系人发邮件.发信息
host_notification_commandshost-notify-by-email,host-notify-by-sms
同上,主机出问题时采用的也是发邮件和发信息的方式通知联系人
qubaoquan@
很明显,联系的人email地址
Pager137xxxxxxxxxxxxxx//电话
(3)下面就可以将多个联系人组成一个联系人组,创建文件contactgroups.cfg:
#vicontactgroups.cfg
definecontactgroup{
contactgroup_namesagroup//联系人组的名称,同样不能空格
aliasSystemAdministrators//别名
memberstest//组的成员,来自于上面定义的
contacts.cfg,如果有多个联系人则以逗号相隔
}
(4)定义被监控主机,创建文件hosts.cfg:
#vihosts.cfg
definehost{
host_namenagios//被监控主机的名称,最好别带空格
aliasnagios//别名
address192.168.1.240//被监控主机的IP地址
check_commandcheck-host-alive//监控的命令check-host-alive,这个命令来自
commands.cfg,用来监控主机是否存活
max_check_attempts5//检查失败后重试的次数
check_period24x7//检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中
定义的
contact_groupssagroup//联系人组,上面在contactgroups.cfg中定义的sagroup
notification_interval10//提醒的间隔,每隔10秒提醒一次
notification_period24x7//提醒的周期,24x7,同样来自于我们之前在timeperiods.cfg
中定义的
notification_optionsd,u,r//指定什么情况下提醒
}
(5)通过简单的复制修改就可以定义多个主机了.我们在这加上另外一台机器与联系人可以
组成联系人组一样,多个主机也可以组成主机组:
主机名为:
apacheip:
192.168.1.208
创建文件hostgrops.cfg
#vihostgroups.cfg
definehostgroup{
hostgroup_namelinux-servers//主机组名称
aliaslinux-servers//别名
membersnagios,apache//组的成员主机,多个主机以逗号相隔,必须是上面
hosts.cfg中定义的
}
(6)下面是最关键的了,用nagios主要是监控一台主机的各种信息,包括本机资源,对外的服
务等等.这些在nagios里面都是被定义为一个个的项目(nagios称之为服务,为了与主机提
供的服务相区别,我这里用项目这个词),而实现每个监控项目,则需要通过commands.cfg文
件中定义的命令.
例如我们现在有一个监控项目是监控一台机器的web服务是否正常,我们需要哪些元素呢?
最重要的有下面三点:
首先是监控哪台机,然后是这个监控要用什么命令实现,最后就是出
了问题的时候要通知哪个联系人?
定义监控的项目,也叫服务,创建services.cfg:
#viservices.cfg
Defineservice{
host_namenagios//被监控的主机,hosts.cfg中定义的
service_descriptioncheck-host-alivecheck_commandcheck-host-alive//这个监控
项目的描述,这个会在web页面中出现
max_check_attempts5//重试的次数
normal_check_interval3//循环检查的间隔时间
retry_check_interval2
check_period24x7//监控的时间段,是timeperiods.cfg中定义的
notification_interval10
notification_period24x7//通知的时间段
notification_optionsw,u,c,r//在监控的结果是wucr时通知联系人
contact_groupssagroup//联系人组,是contactgroups.cfg中定义的
}
(7)定义上面配置文件中指定的命令
vicommands.cfg
#host-notify-by-sms//发送短信报警
definecommand{
command_namehost-notify-by-sms
command_line/usr/local/bin/sms_send"Host$HOSTSTATE$alertfor$HOSTNAME$!
on'$DATETIME$'"$CONTACTPAGER$
}
#servicenotifybysms//发送短信报警
definecommand{
command_nameservice-notify-by-sms
command_line/usr/local/bin/sms_send
"'$HOSTADDRESS$'$HOSTALIAS$/$SERVICEDESC$is$SERVICESTATE$"$CONTACTPAGER$
}
其他命令已经在文件中,不须更改只有短信报警需要定义
(8)这样整个的配置过程就结束了.虽然功能很简单,但是已经为以后扩展打下了良好的基
础.
在运行nagios之前首先做测试
/usr/local/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Nagios 安装 配置