监控对象
网络服务监控:主机存活检查,ftp,web等常见服务,数据库服务监控...
主机资源监控:系统负载,当前ip链接数,磁盘空间使用情况,当前进程数..
监控主要目的
监控对象发生故障或资源紧张时及时通知相关人员,以便问题得到迅速处理
监控效果的展现
web方式:通过浏览器观看被监控对象;
# 颜色代表严重级别如下所示
绿色 OK 正常
××× WARNING 警告
红色 CRITICAL 严重
深××× UNKOWN 未知错误
邮件通知:达到设定重试次数和探测间隔时间后发送邮件,说明问题的大致情况
手机短信:较为及时重要的功能
上班时间开着浏览器看页面,打开邮件程序查看,手机24小时开机.
详解配置文件
配置文件概括总结其作用
nagios.cfg : 主配置文件,nagios进程和CGIs读取定义和控制nagios行为,需要修改
cgi.cfg : cgi配置文件,浏览器执行诸如重启nagios服务等,需要修改
resource.cfg : 宏定义文件,定义插件路径,不需要修改
commands.cfg : 命令定义文件,定义怎么发送短信,邮件等,需要修改
contactgroups.cfg,contacts.cfg,hostgroups.cfg,hosts.cfg,services.cfg
:监控对象配置文件,如主机配置文件,联系人配置文件等
主配置文件包含,并需手动创建
配置文件详细其参数作用
————nagios.cfg
# 主配置文件,主要管理其他所有跟nagios有关的文件.
# 它定义了nagios的日志文件,缓冲文件,状态信息存放文件...
——nagios主要参数及含义
log_file=/var/spool/nagios/nagios.log
# 日志文件
#cfg_file=/usr/local/etc/nagios/objects/localhost.cfg
# 此处常注释,为方便维护,配置目标单独放
# 此处常注释,为方便维护,配置目标单独放
cfg_file=/usr/local/etc/nagios/objects/cgi.cfg
cfg_file=/usr/local/etc/nagios/objects/resource.cfg
cfg_file=/usr/local/etc/nagios/objects/commands.cfg
cfg_file=/usr/local/etc/nagios/objects/hosts.cfg
cfg_file=/usr/local/etc/nagios/objects/hostgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/services.cfg
cfg_file=/usr/local/etc/nagios/objects/servicegroups.cfg
cfg_file=/usr/local/etc/nagios/objects/contacts.cfg
cfg_file=/usr/local/etc/nagios/objects/contactgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/timeperiods.cfg
cfg_file=/usr/local/etc/nagios/objects/timeperiods.cfg
cfg_file=/usr/local/etc/nagios/objects/templates.cfg
# 配置文件模板
cfg_file=/usr/local/etc/nagios/objects/windows.cfg
cfg_file=/usr/local/etc/nagios/objects/switch.cfg
cfg_file=/usr/local/etc/nagios/objects/printer.cfg
check_extermal_commands=1
# web界面下重启nagios,停止主机/服务检查等操作,默认值为0
command_check_interval=10s
# 命令检查时间间隔.默认值是1秒
# 命令检查时间间隔.默认值是1秒
————cgi.cfg
# 只修改管理用户
authorized_for_system_information=nagiosadmin
# 开始头为authorized_for_的都要改为nagiosadmin
————resource.cfg
————hosts.cfg
define host {
host_name # 定义
主机名字,在hostgroups.cfg和services.cfg里关联.
# 一个主机能定义多个服务
# 当使用时,宏$HOSTNAME$里存放这一项的值
alias # 定义一个方便理解的一个主机名字或描述
# 当使用时,宏$HOSTALIAS$里存放这一项的值
address # 定义
主机地址,一般是IP
# 当使用时,宏$HOSTADDRESS$里存放这一值
max_check_attempt(尝试)
# 定义了
检测结果返回不是OK时,nagios重试检测的次数
# 设置值为1,不重试检测直接报警
check_period(期)
# 用time_period项的名字,定义在哪段时间内对主机主动检测
# time_period是定义在别的文件里的配置项,在这里用名字引用它
contact_groups(联系组)
# 定义联系组列表,用联系组的名字引用它们.多个组用","隔开
notification_interval(通知_间隔)
# 定义当一个服务
仍然down或unreachable
时
# 间隔多久重发一次通知给联系组
notification_period(通知时间段)
# 定义什么时间段内给联系组发通知
# 可以用
time_period定义的名字引用它
notification_options(通知时机)
# 定义发送通知的选项.选项有:
d=当有
down状态时发送通知
u=当有
unreachable状态时发送通知
r=当有服务
recoveries时发送通知
f=当
主机启动或停机时发送通知
n=
永远不发送通知
}
————hostgroups.cfg
define hostgroup {
hostgroup_name
# 主机组名称,通常定义得较短
alias # 主机组别名,通常定义得较长,方便理解
members # 主机组成员
}
————services.cfg
define service {
host_name # 主机名称
service_description
# 服务描述
check_command
# 执行命令
max_check_attempts
#
失败时尝试检测最大次数,值为1时只报警不重新检测
normal_check_interval
#
常规检测间隔时间,默认60分钟
# 常规指无论服务状态是否正常,检测次数达到"最大次数"时
retry_check_interval
#
失败尝试间隔时间,默认为60分钟
# 失败尝试指服务状态不正常,检查次数达到"最大次数"时
check_period
# 检测时间段
notification_interval
# 当
服务状态不正常时通知
,值为0时不通知联系人
notification_period
# 通知联系人时间段
notification_options
# 通知联系人选项:
#
w警告,u未知,c危机,f启动和停止,n不发送通知
nitification_groups
# 联系人组
}
————servicegroups.cfg
define servicegroup {
servicegroup_name
# 服务组名称,通常定义得较短
alias # 服务组别名,通常定义得较长
members # 服务组成员
}
————contacts.cfg
define contact {
contact_name
# 定义
联系人的简称,他与contactgroup关联
# 使用时,宏定义$CONTACTNAME$存放这个值
alias # 联系人的具体描述
# 使用时,宏定义$CONTACTALIAS$存放这个值
host_notification_period
# 定义通知
简称联系人关于主
机的问题或恢复正常状态的时间段
# 可以理解
为主机的在线时间
service_notification_period
# 通知
简称联系人关于服务的问题或恢复正常的时间段
host_notification_options
# 定义主机在什么状态下给联系人发通知.参数描述如下:
d=主机是
down,发通知
f=主机
stop时,发通知
r=主机
恢复up时,发通知
n=
啥状态都不发通知
service_notification_options
# 定义服务在什么状态时给联系人发通知
w=
警告状态时,发通知
u=
unknown状态时,发通知
f=
启动和停止时,发通知
c=
critival(关键,紧要)状态时,发通知
n=
什么状态下都
不发通知
host_notification_commands
(短信,邮箱)
# 定义一个通知联系人主机问题或恢复正常的联系方式的列表
# 多个列表用","隔开
service_notification_commands
(短信,邮箱)
# 定义一个通知联系人服务问题或恢复正常的联系方式的列表
# 多个列表用","隔开
email # 定义联系人的email地址.
# 取决于你是如何定义notification commands,给联系人发紧急邮件
# 使用时,宏$CONTACTEMAIL$存放这个值
}
————contactgroup.cfg
define contactgroup {
contactgroup_name
# 联系组名称,通常定义得较短
alias # 联系人别名,通常定义得较长
members # 联系组成员
}
————timeperiods.cfg
define timeperiod {
timeperiod_name
# 时间名称,通常定义得较短
alias # 时间段别名,通常定义的较长
sunday # 星期日时间段
monday # 星期一时间段
tuesday # 星期二时间段
wednesday # 星期三时间段
thursday # 星期四时间段
friday # 星期五时间段
saturday # 星期六时间段
}
————commands.cfg
define command {
command_name
# 定义命令的简称
command_line
# 定义当服务进行时nagios要执行的动作
# 在命令执行前,所有合法的宏都被他们的值代替
}
需要注意:
石头大哥([url]http://www.itnms.net/discuz/[/url])的翻译如下:
简单说一下,大概的内容,不是严格翻译。
1. 确认check_nrpe 和 nrpe daemon的版本一定要一致。
2. 确认 check_nrpe和nrpe deamon端同时启用或者禁用ssl支持。
3. 确认nrep.cfg可以被nrpe(或者nagios,反正是执行nrep或者xinetd/inetd程序的)用户正常读取。
4. 有关伪随机设备的问题。这个只会在solaris 8上出现,需要一个补丁Sun patch 112438。
5. 确定nagios主机在xinetd的 only_from中,如果没有使用xinetd,则要确认nrpe.cfg中的配置。
石头大哥([url]http://www.itnms.net/discuz/[/url])的翻译如下:
简单说一下,大概的内容,不是严格翻译。
1. 确认check_nrpe 和 nrpe daemon的版本一定要一致。
2. 确认 check_nrpe和nrpe deamon端同时启用或者禁用ssl支持。
3. 确认nrep.cfg可以被nrpe(或者nagios,反正是执行nrep或者xinetd/inetd程序的)用户正常读取。
4. 有关伪随机设备的问题。这个只会在solaris 8上出现,需要一个补丁Sun patch 112438。
5. 确定nagios主机在xinetd的 only_from中,如果没有使用xinetd,则要确认nrpe.cfg中的配置。
6. 检查一下你的Windows或者Linux自带的防火墙,是否把端口给filter掉了。
7. 把nrpe的的log打开,可以发现更多有用的信息。
7. 把nrpe的的log打开,可以发现更多有用的信息。
(Nagios飞信linux系统免费短信报警配置)
CACTI网络流量监控
1.什么是cacti和rrdtool
Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。是通过 snmpget来获取数据,使用 RRDtool绘画图形它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。界面友好。
Rrdtool是用来存储和处理通过SNMP收集到的数据的工具。