温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux下Nagios的安装与配置<< 二 >>

发布时间:2020-06-25 15:45:43 来源:网络 阅读:586 作者:echo_zou 栏目:移动开发

篇幅所限,看“Linux下Nagios的安装与配置<< 二 >>”之前请先看“Linux下Nagios的安装与配置<< 一 >>”

未完,还有Linux下Nagios的安装与配置<< 三 >>



localhost.cfg


Definehost{

Use linux-server ; Name of host template to use

; This host definition will inherit all variables that are defined

; in (or inherited by) the linux-server host template definition.

Host_name Nagios-Server

Alias Nagios-Server

Address 127.0.0.1

}

definehostgroup{

hostgroup_name linux-servers ; The name of the hostgroup

Alias Linux Servers ; Long name of thegroup

members Nagios-Server ; Comma separated listof hosts that belong to this group

}

defineservice{

Use local-service ; Name of service template to use

Host_name Nagios-Server

service_description PING

check_command check_ping!100.0,20%!500.0,60%

}

Defineservice{

use local-service ; Name of service template to use

host_name Nagios-Server

service_description Root Partition

check_command check_local_disk!20%!10%!/

}

defineservice{

use local-service ; Name of service template to use

host_name Nagios-Server

service_description Current Users

check_command check_local_users!20!50

}

defineservice{

use local-service ; Name of service template to use

host_name Nagios-Server

service_description Total Processes

check_command check_local_procs!250!400!RSZDT

}

Defineservice{

Use local-service ; Name of service template to use

host_name Nagios-Server

service_description Current Load

check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

defineservice{

use local-service ; Name of service template to use

host_name Nagios-Server

service_description Swap Usage

check_command check_local_swap!20!10

}

defineservice{

Use local-service ; Name of service template to use

host_name Nagios-Server

service_description SSH

check_command check_ssh

notifications_enabled 0

}

defineservice{

Use local-service ; Name of service template to use

host_name Nagios-Server

service_description HTTP

check_command check_http

notifications_enabled 0

}


windows.cfg,本实验主要采用组进行配置,此文档不删掉不使,下面配置供参考。


definehost{

use windows-server ; Inherit default values from a template

host_name Nagios-Windows ; The name we're giving to this host

alias My Windows Server ; A longer name associated with the host

address 192.168.1.113 ; IP address of the host

}

definehostgroup{

hostgroup_name windows-servers ; The name of the hostgroup

alias Windows Servers ; Long name of thegroup

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description NSClient++ Version

check_command check_nt!CLIENTVERSION

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description Uptime

check_command check_nt!UPTIME

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description CPU Load

check_command check_nt!CPULOAD!-l 5,80,90

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description Memory Usage

check_command check_nt!MEMUSE!-w 80 -c 90

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description C:\ Drive Space

check_command check_nt!USEDDISKSPACE!-l c -w 80 -c90

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description W3SVC

check_command check_nt!SERVICESTATE!-d SHOWALL -lW3SVC

}

defineservice{

use generic-service

host_name Nagios-Windows

service_description Explorer

check_command check_nt!PROCSTATE!-d SHOWALL -lExplorer.exe

}


e. services.cfg文件

此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server Nagios-Windows 相关服务已在相应的配置文件中定义,所以这里只需要定义Nagios-Linux 相关服务即可,这里只定义一个检测是否存活的服务来验证配置文件的正确性,其他服务的定义将在后面讲到。

define service{

use local-service ; #引用local-service服务的属性值,local-servicetemplates.cfg文件中进行了定义。

host_name Nagios-Linux ; #指定要监控哪个主机上的服务,“Nagios-Server”在hosts.cfg文件中进行了定义。

service_description PING ; #对监控服务内容的描述,以供维护人员参考。

contact_groups linuxcontact

check_command check-host-alive ; #指定检查的命令。

}

define service{

use local-service

host_name Nagios-Linux

service_description CurrentLoad

contact_groups linuxcontact

check_command check_nrpe!check_load

}

define service{

use local-service

host_name Nagios-Linux

service_description TotalProcesses

contact_groups linuxcontact

check_command check_nrpe!check_total_procs

}

define service{

use local-service

host_name Nagios-Linux

service_description CurrentUsers

contact_groups linux contact

check_command check_nrpe!check_users

}

define service{

use local-service

host_name Nagios-Linux

service_description CheckZombie Procs

contact_groups linuxcontact

check_command check_nrpe!check_zombie_procs

}

define service{

use local-service

host_name Nagios-Linux

service_description Check Swap

contact_groups linux contact

check_command check_nrpe!check_swap

}

# SERVICE DEFINITIONS

#

###############################################################################

# Create a service for monitoring the versionof NSCLient++ that is installed

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description NSClient++Version

contact_groups windowscontact

check_command check_nt!CLIENTVERSION

}

# Create a service for monitoring the uptimeof the server

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description Uptime

contact_groups windowscontact

check_command check_nt!UPTIME

}


# Create a service for monitoring CPU load

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description CPU Load

contact_groups windowscontact

check_command check_nt!CPULOAD!-l 5,80,90

}


# Create a service for monitoring memoryusage

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description MemoryUsage

contact_groups windowscontact

check_command check_nt!MEMUSE!-w 80 -c 90

}


# Create a service for monitoring C:\ diskusage

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description C:\ DriveSpace

contact_groups windowscontact

check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

}


# Create a service for monitoring the W3SVCservice

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description W3SVC

contact_groups windowscontact

check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

}


# Create a service for monitoring theExplorer.exe process

# Change the host_name to match the name ofthe host you defined above


define service{

use generic-service

host_name Nagios-Windows

service_description Explorer

contact_groups windowscontact

check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

}

f. contacts.cfgcontactgroup.cfg文件,默认不存在,需手动创建!

contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。contactgroup.cfg定义联系人组的配置文件,注意:members选项里面的联系人在contacts.cfg里面要要定义,多个联系从之间用逗号隔开。

contacts.cfg下面的配置文档

definecontact{

contact_name echo ; Short name of user

use generic-contact ; Inheritdefault values from generic-contact template (defined above)

alias linux contact ; Full name of user


email test1@163.com ; <<***** CHANGE THIS TO YOUREMAIL ADDRESS ******

}


definecontact{

contact_name jason ; Short name of user

use generic-contact ; Inheritdefault values from generic-contact template (defined above)

alias windows contact ; Full name of user


email test2@qq.com ; <<***** CHANGE THIS TO YOUREMAIL ADDRESS ******

}


definecontact{

contact_name johnson ; Short name of user

use generic-contact ; Inheritdefault values from generic-contact template (defined above)

alias windows and linuxcontact ; Full name of user


email test3@qq.com ; <<***** CHANGE THIS TOYOUR EMAIL ADDRESS ******

}

contactgroup.cfg下面的配置文档

# We only have one contact in this simpleconfiguration file, so there is

# no need to create more than one contactgroup.


define contactgroup{

contactgroup_name linuxcontact

alias linuxserver contact

members echo,johnson

}


define contactgroup{

contactgroup_name windows contact

alias windowsserver contact

members jason,johnson

}


define contactgroup{

contactgroup_name allcontact

alias linux andwindows server contact

members jason,echo,johnson

}


g. timeperiods.cfg文件

此文件只要用于定义监控的时间段,下面是一个配置好的实例:也可以根据自己需求监控情况进行配置。


#下面是定义一个名为24x7的时间段,即监控所有时间段

definetimeperiod{

timeperiod_name 24x7 #时间段的名称,这个地方不要有空格

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

}

#下面是定义一个名为workhours的时间段,即工作时间段。

definetimeperiod{

timeperiod_name workhours

alias Normal Work Hours

monday 09:00-17:00

tuesday 09:00-17:00

wednesday 09:00-17:00

thursday 09:00-17:00

friday 09:00-17:00

}


h. cgi.cfg文件

此文件用来控制相关cgi脚本,如果想在nagiosweb监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。
由于nagiosweb监控界面验证用户为david,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了,需要修改的配置信息如下:


default_user_name=david

authorized_for_system_information=nagiosadmin,david

authorized_for_configuration_information=nagiosadmin,david

authorized_for_system_commands=david

authorized_for_all_services=nagiosadmin,david

authorized_for_all_hosts=nagiosadmin,david

authorized_for_all_service_commands=nagiosadmin,david

authorized_for_all_host_commands=nagiosadmin,david


i. nagios.cfg文件

nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的对象配置文件都必须在这个文件中进行定义才能发挥其作用,这里只需将对象配置文件在Nagios.cfg文件中进行引用即可。


log_file=/usr/local/nagios/var/nagios.log # 定义nagios日志文件的路径

#cfg_file=/usr/local/nagios/etc/objects/commands.cfg # “cfg_file”变量用来引用对象配置文件,如果有更多的对象配置文件,在这里依次添加即可。
#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
# 默认开启,需注销
#cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
# 默认开启,需注销
#cfg_file=/usr/local/nagios/etc/objects/services.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_file=/usr/local/nagios/etc/objects/windows.cfg # windows
主机配置文件默认开启,需注销

cfg_dir=/usr/local/nagios/etc/servers #servers文件默认不存在,需手动创建

#object_cache_file=/usr/local/nagios/var/objects.cache # 该变量用于指定一个所有对象配置文件的副本文件,或者叫对象缓冲文件

precached_object_file=/usr/local/nagios/var/objects.precache
resource_file=/usr/local/nagios/etc/resource.cfg #
该变量用于指定nagios资源文件的路径,可以在nagios.cfg中定义多个资源文件。

status_file=/usr/local/nagios/var/status.dat # 该变量用于定义一个状态文件,此文件用于保存nagios的当前状态、注释和宕机信息等。

status_update_interval=10 # 该变量用于定义状态文件(即status.dat)的更新时间间隔,单位是秒,最小更新间隔是1秒。

nagios_user=nagios # 该变量指定了Nagios进程使用哪个用户运行。
nagios_group=nagios #
该变量用于指定Nagios使用哪个用户组运行。

check_external_commands=1 # 该变量用于设置是否允许nagiosweb监控界面运行cgi命令;
#
也就是是否允许nagiosweb界面下执行重启nagios、停止主机/服务检查等操作;
# “1”
为运行,“0”为不允许。

command_check_interval=10s # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(10s);
#
那么外部检测命令的间隔是这个数值以秒为单位的时间间隔;
#
如果没有用"s",那么外部检测命令的间隔是以这个数值的时间单位的时间间隔。
interval_length=60 #
该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟;
#
即在nagios配置中所有的时间单位都是分钟。


6.4 验证Nagios 配置文件的正确性

Nagios 在验证配置文件方面做的非常到位,只需通过一个命令即可完成:

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Linux下Nagios的安装与配置<< 二 >>


Nagios提供的这个验证功能非常有用,在错误信息中通常会打印出错误的配置文件以及文件中的哪一行,这使得nagios的配置变得非常容易,报警信息通常是可以忽略的,因为一般那些只是建议性的。

看到上面这些信息就说明没问题了,然后启动Nagios 服务。

七、Nagios的启动与停止

7.1 启动Nagios

a. 通过初始化脚本启动nagios

#/etc/init.d/nagios start
or
# service nagios start

b. 手工方式启动nagios

通过nagios命令的“-d”参数来启动nagios守护进程:

#/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

7.2 重启Nagios

当修改了配置文件让其生效时,需要重启/重载Nagios服务。

a. 通过初始化脚本来重启nagios

#/etc/init.d/nagios reload
or
# /etc/init.d/nagios restart
or
# service nagios restart

b. 通过web监控页重启nagios

可以通过web监控页的 "ProcessInfo" -> "Restart the Nagios process"来重启nagios

Linux下Nagios的安装与配置<< 二 >>

c. 手工方式平滑重启

#kill -HUP <nagios_pid>

7.3 停止Nagios

a. 通过初始化脚本关闭nagios服务

#/etc/init.d/nagios stop
or
# service nagios stop

b. 通过web监控页停止nagios

可以通过web监控页的 "ProcessInfo" -> "Shutdown the Nagios process"来停止nagios

Linux下Nagios的安装与配置<< 二 >>

c. 手工方式停止Nagios

#kill <nagios_pid>

八、查看初步配置情况

8.1 启动完成之后,登录Nagios Web监控页http://192.168.1.108/nagios/查看相关信息。

8.2 点击左面的Current Status -> Hosts 可以看到所定义的三台主机已经全部UP了。

Linux下Nagios的安装与配置<< 二 >>

8.3 点击Current Status -> Services 查看服务监控情况。

Linux下Nagios的安装与配置<< 二 >>

看到Nagios-LinuxNagios-Server的服务状态已经OK了,但是Nagios-Windows的服务状态为CRITICALStatusInformation 提示Connection refused。因为Nagios-Windows上还未安装插件,内部服务还无法查看,所以出现这种情况。将在下面具体讲解。




向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI