nagios的配置笔记

注意:下面的配置只是一个相当于模板一样,是基本配置
1. 预备知识 :
在Nagios 里面定义了一些基本的对象,一般用到的有:
联系人 contact 出了问题像谁报告?一般当然是系统管理员了
监控时间段 timeperiod 7X24 小时不间断还是周一至周五,或是自定义的其
他时间段
被监控主机 Host 所需要监控的服务器,当然可以是监控机自己
监控命令 command nagios 发出的哪个指令来执行某个监控,这也是自己
定义的
被监控的服

Service 例如主机是否存活,80 端口是否开,磁盘使用情况或
者自定义的服务等
另外,多个被监控主机可以定义为一个主机组,多个联系人可以被定义为一个联系
人组,多个服务还能定义成一个服务组呢.
2. 修改主配置文件
# cd /usr/local/nagios/etc/
(1)修改nagios 的主配置文件nagios.cfg
#vi nagios.cfg
注释行 #cfg_file=/usr/local/nagios/etc/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人配置文件路径
cfg_file=/usr/local/nagios/etc/objects/commands.cfg //命令配置文件路径
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //主机配置文件路径
cfg_file=/usr/local/nagios/etc/objects/templates.cfg //模板配置文件路径
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //监视时段配置文件路

cfg_file=/usr/local/nagios/etc/services.cfg //服务配置文件
cfg_file=/usr/local/nagios/etc/objects/contactgroups.cfg //联系人组配置文件
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg //监控主机配置文件
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg //监控主机组配置文件
cfg_file=/usr/local/nagios/etc/objects/services.cfg //监控的服务配置文件
其他配置文件以实际情况来进行配置
改check_external_commands=0 为check_external_commands=1 .这行的作用
是允许在web 界面下执行重启nagios、停止主机/服务检查等操作。
把command_check_interval 的值从默认的1 改成
command_check_interval=10s(根据自己的情况定这个命令检查时间间隔,不
要太长也不要太短)。
主配置文件要改的基本上就是这些,通过上面的修改,发现/usr/local/nagios/etc
并没有文件hosts.cfg 等一干文件,怎么办?稍后手动创建它们。
(2) 然后检查配置文件是否出错
/usr/local/nagios/bin/nagios �Cv /usr/local/nagios/etc/nagios.cfg
出现Total Warnings: 0
Total Errors: 0 //这样表示配置文件没有错误
(3) 修改CGI 脚本控制文件cgi.cfg
#vi cgi.cfg
第二个要修改的配置文件是cgi.cfg,它的作用是控制相关cgi 脚本。先确保
use_authentication=1。接下来修改default_user_name=qubaoquan(前面创建的
用户名) ,再后面的修改在下表列出:
authorized_for_system_information=nagiosadmin,qubaoquan //后面跟的都是
用户名
authorized_for_configuration_information=nagiosadmin,qubaoquan
authorized_for_system_commands=qubaoquan //多个用户之间用逗号隔开
authorized_for_all_services=nagiosadmin,qubaoquan
authorized_for_all_hosts=nagiosadmin,qubaoquan
authorized_for_all_service_commands=nagiosadmin,qubaoquan
authorized_for_all_host_commands=nagiosadmin,qubaoquan
那么上述用户名打那里来的呢?是执行命令 /usr/local/apache/bin/htpasswd �C
c /usr/local/nagios/etc/htpasswd qubaoquan(用户名qubaoquan) 所生成的
3. 配置资源文件
# cd /usr/local/nagios/etc/objects/
注意,下面的配置主要是解释个配置项的作用,不要直接粘贴复制,由于
windows 和linux 字符的差别直接粘贴要出问题,实际的文件见附件
(1) 定义监控时间段,创建配置文件timeperiods.cfg :
# vi timeperiods.cfg
define timeperiod{
timeperiod_name 24x7 //时间段的名称,这个地方不要有
空格
alias 24 Hours A Day,7Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}
定义了一个监控时间段,它的名称是24x7,监控的时间是每天全天24 小时:
(2) 定义联系人,创建配置文件contacts.cfg
# vi contacts.cfg
define contact{
contact_name qubaoquan //联系人的名称,这个
地方不要有空格
alias sys admin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-host-by-email
host_notification_commands notify-host-by-email
email [email protected]
pager 1391119xxxx
}
创建了一个名为test 的联系人,下面列出其中重要的几个选项做说明:
service_notification_period 24x7
服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg 中定义的.
host_notification_period 24x7
主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg 中定义的
service_notification_options w,u,c,r
当服务出现w―报警(warning),u―未知(unkown),c―严重(critical),或者r―从异
常情况恢复正常,在这四种情况下通知联系人.
host_notification_options d,u,r
当主机出现d―
当机(down),u―返回不可达(unreachable),r―从异常情况恢
复正常,在这3 种情况下通知联系人
service_notification_commands notify-by-email
服务出问题通知采用的命令notify-by-email,这个命令是在commands.cfg 中定
义的,作用是给联系人发邮件.至于commands.cfg 之后将专门介绍
host_notification_commands host-notify-by-email
同上,主机出问题时采用的也是发邮件的方式通知联系人
email [email protected]
很明显,联系的人email 地址
Pager
}
(3) 下面就可以将多个联系人组成一个联系人组,创建文件contactgroups.cfg :
# vi contactgroups.cfg
define contactgroup{
contactgroup_name sagroup //联系人组的名称,同样不能
空格
alias System Administrators //别名
members qubaoquan,test
//组的成员,来自于上面定义的contacts.cfg,如果有多个联系人则以逗号相隔
}
(4) 定义被监控主机,创建文件hosts.cfg :
# vi hosts.cfg
define host{
host_name localhost //被监控主机的名称,最好别带空格
alias localhost //别名
address 127.0.0.1 //被监控主机的IP 地址,我现在暂时先填
本机的IP
check_command check-host-alive
//监控的命令check-host-alive,这个命令来自commands.cfg,用来监控
主机是否存活
max_check_attempts 5 //检查失败后重试的次数
check_period 24x7
//检查的时间段24x7,同样来自于我们之前在timeperiods.cfg 中定义的
contact_groups sagroup
//联系人组,上面在contactgroups.cfg 中定义的sagroup
notification_interval 10
//提醒的间隔,每隔10 秒提醒一次
notification_period 24x7
//提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg 中定义的
notification_options d,u,r
//指定什么情况下提醒,具体含义见之前contacts.cfg 部分的介绍
}
通过简单的复制修改就可以定义多个主机了.我们在这加上另外两台机器:
名为dbpi 的linux 主机,ip 为192.168.18.81
名为yahoon 的xp 主机,ip 为192.168.18.73
与联系人可以组成联系人组一样,多个主机也可以组成主机组:
(5) 配置监控主机的组,创建文件hostgroups.cfg
# vi hostgroups.cfg
define hostgroup{
hostgroup_name linux-servers //主机组名称
alias linux-servers //别名
members localhost,linux81
//组的成员主机,多个主机以逗号相隔,必须是上面hosts.cfg 中定义的
}
下面是最关键的了,用nagios 主要是监控一台主机的各种信息,包括本机资源,对
外的服务等等.这些在nagios 里面都是被定义为一个个的项目(nagios 称之为服
务,为了与主机提供的服务相区别,我这里用项目这个词),而实现每个监控项目,则
需要通过commands.cfg 文件中定义的命令.
例如我们现在有一个监控项目是监控一台机器的web 服务是否正常, 我们需要
哪些元素呢?最重要的有下面三点:首先是监控哪台机,然后是这个监控要用什么
命令实现,最后就是出了问题的时候要通知哪个联系人?
(6) 定义监控的项目,也叫服务,创建services.cfg :
# vi services.cfg
define service{
host_name localhost
//被监控的主机,hosts.cfg 中定义的
service_description check-host-alive
//这个监控项目的描述(也可以说是这个项目的名称),可以空格,我们这
里定义的是监控这个主机是不是存活
check_command check-host-alive
//所用的命令,是commands.cfg 中定义的
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
//监控的时间段,是timeperiods.cfg 中定义的
notification_interval 10
notification_period 24x7
//通知的时间段
notification_options w,u,c,r
//在监控的结果是wucr 时通知联系人
contact_groups sagroup
//联系人组,是contactgroups.cfg 中定义的
}
可以看到基本上所有的成员都是已经定义的.同样的将上面的内容复制修改,就可
以加上另外两个监控项目:分别监控yahoon 和dbpi 是否存活
这样整个的配置过程就结束了.虽然功能很简单,但是已经为以后扩展打下了良好
的基础.可以放心的告诉大家,以后的工作基本都是复制粘贴啦!!!
(7) 编辑监控命令配置文件
#vi contactgroups.cfg
注意,该文件默认都不用更改,除非你加了里面没有的监控命令的时候才会
更改
(8) 在运行nagios 之前首先做测试
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
看到下面这些信息就说明没问题了
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight
check
(10) 现在基本的服务就ok 了重启服务
#service nagios restart

你可能感兴趣的:(职场,笔记,nagios,休闲)