1、nagios特点:监控服务器状态; 报警功能强大; 绘图功能较弱需要借助其他插件实现或集成其他监控软件。
2、nagios的五种状态:OK WARNNING CRITICAL UNKNOWN PENDING
OK : 正常
WARNNING: 警告 (一般超过阈值)
CRITICAL:严重警告(主机或服务宕掉或超过规定阈值)
UNKNOWN:未知
PENDING: 待定(一般添加新服务初始状态)
3、监控页面:
nagios不仅监控和显示服务或主机的状态,还会显示相关信息,但不能绘图来显示趋势等
4、架构:
nagios服务器端主要的组件:nagios 和nagios plugins(需要apache或nginx以及php的支持,如果需要监控mysql则需要安装mysql等)
5、监控方式:
主动监控:被监控服务器提供对外服务,例如:WEB服务等,监控端可通过相应插件直接探测,根据返回信息进行状态判断,此种方式不需要被监控端安装任何插件或做任何特殊配置。
(半)被动监控方式:例如 被监控的硬件资源、温度等信息,监控端不能直接探测,只能通过在被监控端安装相关获取信息的插件来实现,例如:NRPE、snmp等,但由于探测动作是由监控端发起,所以属于半被动监控(以监控端审视),被动监控方式有NSCA等,监控端处于监控状态,监控信息完全由被监控端放主动发送。
NRPE:可监控linux/unix和windows,linux/unix需要安装nrpe和nagios plugins(nrpe依赖plugins)
windows需要安装nsclient+,此软件提供NRPE功能(还有其他,例如check_nt等)
使用方式:被监控端的nrpe默认监控tcp 5666端口,监控端使用插件check_nrpe指令直接远程调用被监控端已有的插件获取相关信息,因此,被监控端需要提前配置好检测信息的相关插件(指令)
snmp:主要用来监控交换机路由器等互连设备
6、安装
[[email protected] ~]# yum install -y httpd php php-devel php-mysql mysql-devel mysql-server
mysql相关组件选择性安装
创建相关用户和组:
[[email protected] ~]# groupadd nagcmd [[email protected] ~]# useradd -G nagcmd nagios [[email protected] ~]# passwd nagios [[email protected] ~]# usermod -a -G nagcmd apache #将运行apache的用户添加到nagcmd组中
编译安装nagios
[[email protected] ~]# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-event-broker [[email protected] ~]# [[email protected] ~]# make all [[email protected] ~]# make install [[email protected] ~]# make install-init [[email protected] ~]# make install-commandmode [[email protected] ~]# make install-config [[email protected] ~]# [[email protected] ~]# make install-webconf #生成nagios网页相关配置文件 /etc/httpd/conf.d/nagios.conf [[email protected] ~]#
创建访问nagios的用户名和密码:
[[email protected] ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin [[email protected] ~]#
注:验证文件和用户名最好使用此默认,如果修改了验证文件请在 /etc/httpd/conf.d/nagios.conf中修改相关项,如果想使用其他账户请修改 /usr/local/nagios/cgi.cfg相关选项, 如下:
[[email protected] etc]# cat cgi.cfg | grep nagiosadmin authorized_for_system_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin [[email protected] etc]#