十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
打开上一章:nagios监控之(运行环境搭建)
创新互联是一家业务范围包括IDC托管业务,虚拟空间、主机租用、主机托管,四川、重庆、广东电信服务器租用,遂宁联通机房,成都网通服务器托管,成都服务器租用,业务范围遍及中国大陆、港澳台以及欧美等多个国家及地区的互联网数据服务公司。PS: 上一张已经把nagios的基本环境搭建完成,并能成功浏览nagios页面
现在讲下nagios配置文件
配置文件 放在nagios/etc下面
cgi.cfg 控制CGI访问的配置文件
nagios.cfg nagios主配置文件
resource.cfg 变量定义文件,这个一般不做修改。
/etc/objects/ 这是存放配置文件模板的目录,定义 要监控的对象和相关信息的配置文件
objects/commands.cfg 定义监控某个功能所使用的命令的配置文件。
objects/contacts.cfg 定义常用联系人和联系组的配置文件
objects/localhost.cfg 定义本地主机的配置文件
objects/templates.cfg 定义主机和服务的一个模板
objects/timeperiods.cfg 定义监控时间段的配置文件
还有printer.cfg switch.cfg windows.cfg 这几个默认不启动的配置文件,不做介绍了。
等了解了naigos 的配置文件之间的关系,自己就可以随意添加项要监控的内容了。
配置文件之间的关系
nagios 这些配置文件 之间存在很多相互引用,因为相互引用这样,使得nagios 的管理更加方便,但是 对于 刚刚接触nagios的朋友来说,反而显得 关系很混乱,但是只要把关系弄清楚,就算是熟练掌握了nagios了
配置nagios
(1)templates.cfg文件
define contact{
name generic-contact 定义联系人名称
service_notification_period 24
#定义出现服务异常时,发送通知的时间段,24在timeperiods.cfg定义的,这24参数也算引用
host_notification_period 24
#定义出现主机异常时,发送通知的时间段,24在timeperiods.cfg定义的
service_notification_options w,u,c,r
#定义通知可以被发错的情况,w表示警告warn,u表示不明unknown
#c表示紧急criticle,r表示恢复recover
host_notification_options d,u,r
#d:宕机 u:不可到达状态 r:恢复状态
service_notification_commands notify-service-by-email
#服务故障时,通过email方式进行通知,notify-service-by-email 在commands.cfg中定义的
host_notification_commands notify-host-by-email
#主机故障时,通过email方式进行通知,notify-host-by-email在commands.cfg中定义的
register 0
}
define host{
name generic-host 定义主机模板的名称,不是电脑的主机名,只针对这个define host模板
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1 开启数据传输功能,后面将用到
retain_status_information 1
retain_nonstatus_information 1
notification_period 24
register 0
}
define host{
name linux-server 定义这个主机模板的名称,每个模板 里面的属性不一样,不要闹混了。
use generic-host 引用generic-host这个主机的属性,到当前主机当中,use表示引用
check_period 24 表示检查主机的时间段
check_interval 5 表示检查主机的时间间隔 这里是5分钟
retry_interval 1 第一次检查失败时,重试检查间隔 这里是1分钟
max_check_attempts 10 主机出现异常时,会尝试10次检查,再最后判断是否真正的出现异常
check_command check-host-alive 指定检查主机状态的命令,在commands.cfg中定义的
notification_period 24 主机故障时,发送通知的时间范围,在timeperiods.cfg中定义的
notification_interval 120 表示异常后,间隔120分钟进行第二次通知,若为0 表示只进行1次通知
notification_options d,u,r 定义 主机在什么状态下会发送通知d:宕机 u:不可到达 r:恢复状态
contact_groups admins 指定联系人组 这个admin 在contacts.cfg文件中定义的
register 0
}
define service{
name generic-service 定义一个服务的名称
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24
max_check_attempts 3 指定了nagios对服务的大检查次数
normal_check_interval 10 设置服务检查时间间隔
retry_check_interval 2 重试检查时间间隔,这里是2分钟
contact_groups admins 指定联系人组
notification_options w,u,c,r
notification_interval 60
notification_period 24
register 0
}
define service{
name local-service
use generic-service
max_check_attempts 2
normal_check_interval 5
retry_check_interval 1
register 0
}
(2)resource.cfg 定义nagios的变量文件 文件内容 只用到了一行
$USER1$=/usr/local/nagios/libexec
不用解释相信大家也明白这句意思了。
(3)commands.cfg
以chkec_ping 为例:
define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -W $ARG1$ -C $ARG2$ -P 5
}
nagios服务运行后 就会检查ping 如果能ping通 代表机器运行正常,仅此而已
里面有很多命令 ,把自己不需要的注释掉,自定义项添加的 可以根据里面的格式自己编辑
(4)host.cfg文件,次文件默认不存在,需要自己创建。里面是被监控主机的属性。
define host{
use linux-server 引用linux-server的属性到当前主机里
host_name web 定义被监控的主机名
alias yanzhe-web 主机别名 nagios浏览器显示的就是主机别名
address 192.168.1.101 被监控的主机IP地址,也可以是域名
}
define host{
use linux-server
host_name mysql
alias yanzhe-mysql
address 192.168.1.102
}
define hostgroup{ 定义一个主机组
hostgroup_name sa-servers 主机组名称
alias sa servers 主机组的别名
members web,mysql 组包括的成员
}
(5)services.cfg文件 进行定义了都对主机进行 那些监控服务,用什么命令。
define service{
use local-service 引用local-service服务的属性。
host_name web 监控web主机上的服务 web在hosts.cfg中定义的。
service_description PING 监控服务的内容 。
check_command check_ping!100.0,20%!500.0,60% 指定检查的命令 check_ping在commands.cfg中进行的定义,后跟两个参数 命令与参数之间用!分割开。
}
define service{
use local-service
host_name web
service_description SSH
check_command check_ssh
}
define service{
use local-service
host_name web
service_description SSHD
check_command check_tcp!22
}
define service{
use local-service
host_name web
service_description http
check_command check_http
}
#******************************mysql*****************************
define service{
use local-service
host_name mysql
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use local-service
host_name mysql
service_description SSH
check_command check_ssh
}
define service{
use local-service
host_name mysql
service_description ftp
check_command check_ftp
}
define service{
use local-service
host_name mysql
service_description mysqlport
check_command check_tcp!3306
}
(6)contacts.cfg 文件 定义联系人和联系组的,出现故障后,通过email或者短信发送给谁。
define contact{
contact_name sasystem 定义联系人的名称
use generic-contact 引用generic-contact的属性
alias sa-system 联系人别名
email 13406351516@139.com 用139邮箱 手机也可以收到短信,但比直接用短信通知慢一些
}
define contactgroup{
contactgroup_name admins 定义联系人组名称
alias system administrator group 联系人组的描述
members sasystem 就是上面定义的联系人。
}
(7)timeperiods.cfg文件 定义监控时间段。
define timeperiod{
timeperiod_name 24
alias 24 Hours A Day, 7 Days 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
}
这里来设置时间段的控制 其他的设置不用修改
(8)cgi.cfg文件 添加 admin的权限
default_user_name=admin
authorized_for_system_information=nagiosadmin,admin
authorized_for_configuration_information=nagiosadmin,admin
authorized_for_system_commands=admin
authorized_fro_all_services=nagiosadmin,admin
authorized_fro_all_hosts=nagiosadmin,admin
authorized_fro_all_service_commands=nagiosadmin,admin
authorized_fro_all_host_commands=nagiosadmin,admin
(9)nagios.cfg文件
添加hosts.cfg 和 services.cfg 的 指引路径
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
注释localhost.cfg的指引路径 #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
修改:
command_check_interval=2
*******************nagios的配置已经完成了*******************
这几个配置文件之间的关系,刚刚接触可能感觉比较混乱,熟悉了就简单了。
打开下一章:nagios监控之(运行和维护)
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。