|NO.Z.00037|——————————|^^ 构建 ^^|——|Nagios构建.V3|——|3台server|
一、Nagion配置:http://10.10.10.11/nagios
1、登录界面:用户名:nagiosadmin 密码:123

2、nagios控制页面

3、host默认监控了本机的设置,service是监控的对象。
### --- host默认监控了本机的设置,service是监控的对象。
~~~ service——>HTTP:WARNING报错;监控的是httpd的默认目录/var/www/html/,
~~~ 默认是没有的,添加一个主页文件检查效果。
[root@server11 ~]# echo "this is nagios httpd warring" >> /var/www/html/index.html


二、添加监控主机
### --- nagios配置文件说明:不修改
### --- 在HA-server1下:10.10.10.11下查看配置文件说明
### --- 查看nagios的配置文件,只是解释说明;不作为配置方案!!!
[root@server11 ~]# ls /usr/local/nagios/
bin: // 存放命令目录
etc: // 存放的是一些配置文件
include: // 该目录目前为空
libexec: // check脚本文件位置
perl: // Perl文件的存放位置
sbin: // 管理员用到的命令
share: // 网页文件
var: // 动态数据包括日志都在这个目录下
[root@server11 ~]# ls /usr/local/nagios/etc/
cgi.cfg: // 跟一些命令监控有关的,用不到
htpasswd.users: // 之前构建的Apache认证的用户文件
nagios.cfg: // nagios的主配置文件
objects: // 对象的含义
resource.cfg: // 定义宏的配置文件
[root@server11 ~]# vim /usr/local/nagios/etc/nagios.cfg // 查看nagios的主配置文件
log_file=/usr/local/nagios/var/nagios.log // 指定了日志存放路径
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg // 定义了监控的一些配置文件,把它连接进来了
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg // 监控了一台主机,也就是通过这个配置文件监控了本机,以及监控了那些资源,也就是说要监控一台主机,需要先写一个配置文件,加到这个主配置文件所定义的目录下。然后去引用,才可以生效
#cfg_dir=/usr/local/nagios/etc/servers // 批量添加引用,也就是把需要监控的主机放入到这个配置文件下,所有的监控文件都会被引用。都会得到监控
#cfg_dir=/usr/local/nagios/etc/printers
#cfg_dir=/usr/local/nagios/etc/switches
#cfg_dir=/usr/local/nagios/etc/routers
object_cache_file=/usr/local/nagios/var/objects.cache // 缓存的目录,对于nagios来说并没有把数据写入数据库,而是通过缓存去获取数据,
precached_object_file=/usr/local/nagios/var/objects.precache // 动态的对象配置文件指定的目录
resource_file=/usr/local/nagios/etc/resource.cfg // 源配置文件
status_file=/usr/local/nagios/var/status.dat // 以及状态数据
status_update_interval=10 // 更新时常
nagios_user=nagios // 运行的身份
nagios_group=nagios // 运行的组
check_external_commands=1 // 检测的命令的调用返回值
command_check_interval=-1 // command命令的接口值
command_file=/usr/local/nagios/var/rw/nagios.cmd
external_command_buffer_slots=4096
[root@server11 ~]# ls /usr/local/nagios/etc/objects/
commands.cfg: // 定义的是这个命令是怎么去调用的
contacts.cfg: // 监控的时候需要指定的配置方式 ,定义了一个权限文件
localhost.cfg: // 监控本身组件的配置文件
printer.cfg : // 监控的是打印机的
switch.cfg: // 监控交换的
templates.cfg: // linux-server模板配置文件
timeperiods.cfg: // 定义监控时段的
windows.cfg: // Windows的监控模板
[root@server11 ~]# vim /usr/local/nagios/etc/objects/commands.cfg
define command{ // 定义了一个命令,命令的名称为check-host-alive;检测是否存活
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 //使用的命令为$USER1$:也就是当前提到宏,宏在哪里呢?脚本的存放目录/check_ping:使用check_ping来获取主机信息-H $HOSTADDRESS$:返回的是nagios赋予它的主机变量 -w:warnning级别 3000.0延时,80%:80的可用率 -c:严重警告级别 5000.0:,100% -p:操作次数 5
}
[root@server11 ~]# vim /usr/local/nagios/etc/resource.cfg // 定义宏的配置文件
# Nagios supports up to 32 $USERx$ macros ($USER1$ through $USER32$) // 允许最大定义32个$USERs$
$USER1$=/usr/local/nagios/libexec // 宏代表什么含义呢,相当于就是变量,只不过这个变量应用到nagios的所有配置文件中都是可以生效的。默认定义个第一个环境变量叫$USER1$,定义变量的文件在/usr/local/nagios/libexec
[root@server11 ~]# ls /usr/local/nagios/libexec // 查看定义宏的配置文件 //里面是一堆的check_xyz文件,脚本文件
check_apt check_dhcp check_dummy check_icmp check_ircd check_mrtgtraf check_ntp_peer check_ping check_sensors check_time negate
check_breeze check_dig check_file_age check_ide_smart check_load check_nagios check_ntp_time check_pop check_smtp check_udp urlize
check_by_ssh check_disk check_flexlm check_ifoperstatus check_log check_nntp check_nwstat check_procs check_ssh check_ups utils.pm
check_clamd check_disk_smb check_ftp check_ifstatus check_mailq check_nt check_oracle check_real check_swap check_users utils.sh
check_cluster check_dns check_http check_imap check_mrtg check_ntp check_overcr check_rpc check_tcp check_wave
[root@server11 ~]# vim /usr/local/nagios/etc/objects/contacts.cfg // 查看监控时指定配置方式的文件
define contact{
contact_name nagiosadmin // 定义了名称为nagiosadmin:管理员 ; Short name of user
use generic-contact // user使用的模板,也就是一般监控 ; Inherit default values from generic-contact template (defined above)
alias Nagios Admin // 别名:; Full name of user
email nagios@localhost // email邮件 ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}
define contactgroup{ // 定义了一个组
contactgroup_name admins // 组名admins组
alias Nagios Administrators // 别名
members nagiosadmin // 成员为nagiosadmin
}
[root@server11 ~]# vim /usr/local/nagios/etc/objects/localhost.cfg // 查看监控本身组件的配置文件
define host{ // 定义了一台主机
use linux-server // use使用了一个模板linux-server模板;模板位置在:/usr/local/nagios/etc/objects/templates.cfg必须要声明的
host_name localhost // 管理的主机名称;主机名称可以在nagios的web界面的hosts里面可以显示出来的
alias localhost // 别名:不具有任何含义,仅仅当别人打开这个配置文件是可以看到的名词而已。
address 127.0.0.1 // 目的,那台机器的
}
define hostgroup{ // 定义了hostgroup组;在linux里不定义组,定义主机也是可以的,在window下不定义组是后报错的。
hostgroup_name linux-servers
alias Linux Servers
members localhost
}
define service{ // 定义了不同的服务
use local-service // 使用的模板是local-service
host_name localhost // 主机名称localhost,与上面定义的名称相匹配
service_description PING
check_command check_ping!100.0,20%!500.0,60% // 描述信息,使用的命令是check_ping,当!100.0,20%时候警告!500.0,60%严重警告
}
define service{ // 又定义了一个服务
use local-service
host_name localhost
service_description Root Partition // root partition:root的根分区
check_command check_local_disk!20%!10%!/ // !20%:警告!10%!/:严重警告
}
define service{ // 以及定义了一个当前登录的用户数
use local-service
host_name localhost
service_description Current Users
check_command check_local_users!20!50 // !20:警告!50严重警告
}
define service{ // 定义了当前的主机地址
use local-service
host_name localhost
service_description Total Processes
check_command check_local_procs!250!400!RSZDT // !250!j警告400!RSZDT:严重警告
}
define service{ // 当前的三个平均负载
use local-service
host_name localhost
service_description Current Load
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 //!5.0,4.0,3.0!10.0,6.0,4.0
}
define service{ // 当前swap的剩余空间
use local-service
host_name localhost
service_description Swap Usage
check_command check_local_swap!20!10
}
[root@server11 ~]# vim /usr/local/nagios/etc/objects/templates.cfg // 上一条查看到模板配置的linux-server模板配置文件
define host{
name linux-server // 主机模板
use generic-host // 使用generic-host自末班去嵌套
check_period 24x7 // 7x24小时监控
check_interval 5 // 间隔时间为5分钟
retry_interval 1 // 1分钟后重新尝试
max_check_attempts 10 // 最大次数为10次
check_command check-host-alive // 使用的命令为check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}
[root@server11 ~]# vim /usr/local/nagios/etc/objects/timeperiods.cfg // 定义监控时段的
define timeperiod{
timeperiod_name 24x7 // 定义一个4x27的监控时段
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
}
[root@server11 ~]# ls /usr/local/nagios/include/ // 这个目录下为空,
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号