centos 6.5 nagios部署

一、Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经安装:

# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

也可以安装简化的

[root@ecs-4082 ~]# yum -y install httpd php mysql-devel php-mysql
说明:以上软件包也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照你的源代码安装时的配置逐一修改。此外,你还得按需启动必要的服务,如httpd等。


二、nagios编辑需要用户和组,所以先添加nagios运行所需要的用户和组:

[root@ecs-4082 ~]# groupadd nagcmd
[root@ecs-4082 ~]# useradd -G nagcmd nagios
[root@ecs-4082 ~]# passwd nagios 
Changing password for user nagios.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:

[root@ecs-4082 ~]# usermod -a -G nagcmd apache

三、编译安装nagios:

1、先安装所需环境
[root@ecs-4082 ~]# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
2、下载:
[root@ecs-4082 ~]# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
3、解压,切换到目录编辑安装,默认安装路径为:/user/local/nagios/
[root@ecs-4082 ~]# tar zxf nagios-4.3.1.tar.gz
[root@ecs-4082 ~]# cd nagios-4.3.1
[root@ecs-4082 nagios-4.3.1]# ./configure --with-command-group=nagcmd --enable-event-broker
#make all
#make install
#make install-init
#make install-commandmode
#make install-config

为email指定你想用来接收nagios告警信息的邮件地址,默认是本机的nagios用户:
#vi /usr/local/nagios/ect/objects/contacts.cfg
email nagios@localhost #这个是默认设置

4、在httpd的配置文件目录(conf.d)中创建nagios的web程序配置文件:
[root@ecs-4082 nagios-4.3.1]# make install-webconf
5、创建一个登陆nagios web程序的用户,这个用户账号在以后通过web登陆nagios认证时所用:
[root@ecs-4082 nagios-4.3.1]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password: 
Re-type new password: 
Adding password for user nagiosadmin
6、以上过程配置结束以后需要重新启动httpd:
[root@ecs-4082 nagios-4.3.1]# service httpd restart

四、编译,安装nagios-plugins

1、下载:
[root@ecs-4082 nagios-4.3.1]# wget https://nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz
2、解压,切换到目录编译安装
[root@ecs-4082 nagios-4.3.1]# tar zxf nagios-plugins-2.1.4.tar.gz 
[root@ecs-4082 nagios-4.3.1]# cd nagios-plugins-2.1.4
[root@ecs-4082 nagios-plugins-2.1.4]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install

五、配置并启动nagios

1、把nagios添加为系统服务并将之加入到自动启动服务队列:
[root@ecs-4082 nagios-plugins-2.1.4]# chkconfig --add nagios
[root@ecs-4082 nagios-plugins-2.1.4]# chkconfig nagios on
2、检查其主配置文件的语法是否正确:
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

3、如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了;
#service nagios start/restart 

4、配置selinux
如果你的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。你可以通过下面的命令来检查你的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinu服务,你可以通过下面的命令暂时性的将其关闭:
#setenforce 0

如果你想在以后完全关闭selinu,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。

当然,你也可以通过下面方式将nagios的CGI程序运行于selinux/targeted模式而不用关闭selinux:
#chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
#chron -R -t httpd_sys_content_t /usr/local/nagios/share

5、通过web界面查看nagios:
http://your_nagios_IP/nagios
登录时需要指定前面设定的web认证账号和密码:nagiosadmin/123456

注意:为了nagios系统的安全,建议你使用信息摘要强认证模式(如MD5),强制使用web的TSL/SSL安全通讯模式,并且通过访问控制
列表设定能访问nagios的web界面的客户端地址

配置nagios
1、nagios的主要配置文件

nagios的主要配置文件为nagios.cfg,其语法非常简洁,通常#开头的行为注释行,而参数的设置格式为<parameter>=<value>;
其中,有些参数是可以重复出现的,其中常用的参数说明如下:

log_file:设定nagios的日志文件;
cfg_file:nagios对象定义的相关文件,此参数可以重复使用多次以指定多个文件;
cfg_dir:设定nagios对象定义的相关文件所在目录,此目录中的所有文件都会被作为对象定义的文件;此参数可重复使用多次以指定多个目录;
resource_file:设定nagios附加的宏定义的相关文件;
status_file:设定nagios存储所有主机和服务当前信息的文件;
status_update_interval:设定status_file指定的文件中状态信息的更新频率;
service_check_timeout:设定服务检测的超时时间,默认为60秒;
host_check_timeout:设定主机检测的超时时间,默认为30秒;
notification_timeout:设定通知信息发送尝试的超时时间,默认为30秒;

2、resource_file和宏定义
在主配置文件中,参数resource_file用于定义所有用户变量(即“宏”)的存储文件,它用于存储对象定义中的可以访问的额外信息,如访问某服务的密码等;
因此,这些信息通常都是些敏感数据,一般不允许通过web接口来访问。此文件中可以定义的宏可多大32个,它们分别为$USER1$,$USER2$..$USER32$,这些宏
一般在check命令中引用,通常情况下$USER$用于引用nagios插件所在目录这个路径信息,因此,一般不建议修改其值。

nagios事先定义了许多宏,它们的值通常依赖于其上下文。如下:
HOSTNAME:用于引用host_name指定所定义的主机的主机名;每个主机的主机名都是唯一的;
HOSTADDRESS:用于引用host对象中address指令的值,它通常可以为IP地址或主机名;
HOSTDISPLAYNAME:用于引用host对象中alias指令的值,用于描述当前主机,即主机的显示名称;
HOSTSTATE:某主机的当前状态,为UP,DOWN,UNREACHABLE三者之一;
HOSTGROUPNAMES:用于引用某主机所属的所有主机组的简名,主机组名称之间以逗号分隔;
LASTHOSTCHECK:用于引用某主机上次检测的时间和日期,Unix时间戳格式;
LISTHOSTSTATE:用于引用某主机前一次检测时的状态,为UP,DOWN或UNREACHABLE三者之一;
SERVICEDESC:用于引用对应的service对象中的desccription指定的值;
SERVICESTATE:用于引用某服务的当前状态,为OK,WARNING,UNKOWN或CRITICAL四者之一;




猜你喜欢

转载自blog.csdn.net/tladagio/article/details/80662910