Centos 6.4 nagios搭建(一)之简单环境搭建
nagios是一款大众熟知的监控软件,可以根据我们自己的需求编写监控策略,可以不同形式的报警,像nagios的介绍,网上很多,这里的主旨是演示安装过程,不是优化和详解就不多做介绍了。
一、环境规划
nagios server:
操作系统:Centos 6.4 IP地址:192.168.1.101
nagios client:
操作系统:Centos 6.4 IP地址:192.168.1.204
操作系统:Centos 6.4 IP地址:192.168.1.205
操作系统:Win7 IP地址:192.168.1.120
二、服务器端环境搭建
注:服务器端的软件安装和客户端的软件有很多相似之处,我服务端写详细点,客户端就简单点了。我很多地方就用汉字代替了,我其他博客里面都有讲,这里就不写的那么详细了。
1. 解决perl编译问题
[root@nagios-server ~]# echo 'export LC_ALL=C' >>/etc/profile#添加环境变量
[root@nagios-server ~]# source /etc/profile #使环境变量生效
[root@nagios-server ~]# echo $LC_ALL #查看下环境十分生效
C
2. 暂时先关闭防火墙和彻底关闭selinux
3. 进行时间同步并添加定时任务
4. 安装nagios的基础软件包
yum install gcc glibc-common -y #安装编译软件
yum install gd gd-devel perl-CPAN -y #用户php出图
yum install httpd php mysql* php-gd -y #这里就yum安装lamp环境了,也可以选择编译安装,apache加nagios还是比较好的
5.创建用户与用户组
useradd apache
useradd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache
6.安装nagios主程序
mkdir /tools
cd /tools
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-3.5.1.tar.gz
#其他的版本在:https://www.nagios.org/downloads/nagios-core/thanks/?t=1482057733 找
tar zxf nagios-3.5.1.tar.gz
cd nagios
./configure --with-command-group=nagcmd
make all #编译所有内容
make install #编译安装nagios
make install-init #初始化脚本
make install-commandmode #生成一些命令工具
make install-config #安装生成模板配置文件
make install-webconf #安装web接口
7. 修改配置文件
[root@nagios-server nagios]# ls -l /etc/httpd/conf.d/nagios.conf
-rw-r–r–. 1 root root 1010 4月 22 23:32 /etc/httpd/conf.d/nagios.conf
#就是生成了这个配置文件,这样我们在IE的IP后面输入nagios就能访问我们的nagios的web页面了
8. 创建登录的账号密码
htpasswd -cb /usr/local/nagios/etc/htpasswd.user chaishao 123456 #创建登录nagios页面的用户名和密码(这是非交互式的)
[root@nagios-server nagios]# cat /usr/local/nagios/etc/htpasswd.user #看密码是加密的
chaishao:5MsSzXC5J1SbY
9. 更改邮件报警联系人
vi /usr/local/nagios/etc/objects/contacts.cfg +35
email siling23001@163.com #将报警发送的邮件箱修改成自己的
[root@nagios-server nagios]# yum install sendmail -y
[root@nagios-server nagios]# /etc/init.d/sendmail start #启动邮件服务器(如果启动慢就去看看/etc/hosts文件里面的主机名是否设置的对不对)
正在启动 sendmail: [确定]
启动 sm-client: [确定]
10. 给apahce制定密码文件位置
vi /etc/httpd/conf/httpd.conf #将下面的话追加到尾部
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd.user
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd.user
Require valid-user
</Directory>
11. 检测nagios的语法
[root@nagios-server nagios]#/etc/init.d/nagios checkconfig
Running configuration check… OK.
12.安装nagios-plugins插件
cd /tools
wget https://www.nagios-plugins.org/download/nagios-plugins-1.4.16.tar.gz
其他版本在: https://nagios-plugins.org/download/ 这里下载
tar zxf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules
make && make install
13.安装nrce软件
cd /tools
wget https://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz --no-check-certificate
tar zxf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure --with-command-group=nagios --prefix=/usr/local/nagios
make all
make install-plugin
make install-daemon
make install-daemon-config
#注:但是nrpe的3版本默认不会把nrpe.cfg文件放到/usr/local/nagios/etc/下面,所以我们要加一步操作:
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
三、客户端上面的操作(windows机器先放一边)
1. 解决perl编译问题
[root@nagios-server ~]# echo ‘export LC_ALL=C’>> /etc/profile #添加环境变量
[root@nagios-server ~]# source /etc/profile #使环境变量生效
[root@nagios-server ~]# echo $LC_ALL #查看下环境十分生效
C
2. 暂时先关闭防火墙和彻底关闭selinux
3. 进行时间同步并添加定时任务
4. 创建用户
/usr/sbin/adduser nagios -M -s /sbin/nologin
5. 安装nagios-plugins和nrpe插件
yum install -y perl-devel perl-CPAN #安装之前执行这步操作
6. 配置客户端nrpe文件
vi /usr/local/nagios/etc/nrpe.cfg +79
allowed_hosts=192.168.1.101,192.168.1.102 #这是是允许哪个ip进行nrpe访问,这里我们101是服务器端,加逗号呢可以加多个IP,我们可以再搞一个备用的nagios服务器
7. 启动nrpe
#chown nagios:nagios -R /usr/local/nagios #一定要授权
[root@test7 nrpe-2.12]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d #最好切换到nagios再启动
#这是启动命令,-c指定配置文件,-d为后台启动
[root@test7 nrpe-2.12]# ps -ef|grep nrpe
nagios 38516 1 0 00:04 ? 00:00:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
root 38518 1903 0 00:04 pts/0 00:00:00 grep nrpe
[root@test7 nrpe-2.12]# netstat -lnt|grep 5666 #nrpe默认启用5666端口进行通信
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
# lsof -i :5666 #因为配置文件里面已经制定了用户和用户组为nagios
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nrpe 18792 nagios 4u IPv4 129854 0t0 TCP *:5666 (LISTEN)
nrpe 18792 nagios 5u IPv6 129855 0t0 TCP *:5666 (LISTEN)
四、服务器端配置
1. vi /usr/local/nagios/etc/nagios.cfg +34 增加下面两行,这里先搞简单的
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #加载主机文件
cfg_file=/usr/local/nagios/etc/objects/services.cfg #加载服务配置文件
如果想监控一个目录:#cfg_dir=/usr/local/nagios/etc/servers
# chmod 644 /usr/local/nagios/var/nagios.log #不然web端加载不了,默认600
2. 配置hosts主机文件
cd /usr/local/nagios/etc/objects
[root@nagios-server objects]# vi hosts.cfg
define host{
use linux-server #这是使用的模板
host_name 192.168.1.204 #定义主机名
alias linux-204 #定义被监控主机别名
address 192.168.1.204 #被监控主机IP
}
define host{
use linux-server
host_name 192.168.1.205
alias linux-205
address 192.168.1.205
}
define hostgroup{
hostgroup_name Centos #监控组名称
alias linux #监控组别名
members 192.168.1.204,192.168.1.205 #监控组中包含哪些被监控主机
}
3. 配置services.cfg文件
[root@nagios-server objects]# vi services.cfg
define service {
use generic-service
host_name 192.168.1.204,192.168.1.205
service_description Check Swap
check_command check_nrpe!check_swap
max_check_attempts 2
normal_check_interval 4
retry_check_interval 4
check_period 24x7
notification_interval 1440
notification_period 24x7
notification_options w,u,c,r
contact_groups admins
process_perf_data 1
}
4.配置commands.cfg #将下面这段话加到结尾,不然你是没法check_nrpe的
# ‘check_nrpe’ command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
5.修改查看nagios的权限
sed -i "s#nagiosadmin#chaishao#g" /usr/local/nagios/etc/cgi.cfg #nagios默认是nagiosadmin的用户具有权限,如果你不把配置文件中的用户改成我们之前设置好的那个,你们有权限查看任何东西的
6.登录查看
[root@nagios-server libexec]# /etc/init.d/nagios start #要启动不然看不到什么东西
#为什么会有localhost呢,是因为有个配置文件我们没有注释
7. 在服务端和客户端的nrpe.cfg配置文件里都要加上下面一句话然后重启nrpe
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
8. 再次查看结果