首先 nagios 需要 PHP 的环境才能进行安装工作
可以构建 LAMP 环境 我这里用简单的配置进行 PHP 的搭建
我的已经装上了此服务 不再进行安装了
(只要有Apache 服务即可,用源代码要建额外文件链接)
1. 我们需要安装 php-devel 用光盘装找到对应的包安装即可
我们看一下需要的软件包 用到的软件包:
这里我少截了一个 pnp-0.4.14.tar.gz 步骤跟着走就行了
便于管理我先创建 PHP 目录 用于安装 JSON 模块
字很小 有四个命令要执行 进行 JSON的安装
添加 PHP 对 JSON的支持
上面为添加行 创建 PHP 的信息网页 查看对 JSON的支持
有上面的页即
明 JSON 已经被支持
2 我们正式安装 nagios 先创建一个组 nagcmd 是有必要的 为的是将 nagios 和Apache
用户进入组里 增加Apache 对 nagios 的支持
下面是安装 nagios 的步骤
我就截里具体步骤 这些命令一个也不要少 里面用了 htpasswd 设置 nagiosadmin 的密码
用户要为 nagiosadmin 之后也可增加用户 这里先略过
验证 nagios 是否安装 只要看目录即可
做到这里 nagios 的网页已经可以打开了 http://ip 地址/nagios
这是因为 nagios 服务每启动 或者没权限 接下来开始配置 nagios 了
安装 nagios 的不要插件 里面有 nagios 的执行命令
以上就是服务器上必须要进行的步骤了
接下来我们正式配置 nagios 的监控
在服务器上安装 nrpe 的主控端 (在服务器上进行)
服务端不用进行完全安装 即不用make install 需要的是
../configure "--enable-ssl" "--enable-command-args" (和图上有区别,默认是相同的)
make all
make install-plugin
查看是否成功看/usr/local/nagios/libexes 有没有 check_nrpe 即可 我不查看了
安装插件后腰编辑 nagios 的配置文件 commands.cfg 里面是 nagios 的执行脚本
vi /usr/local/nagios/etc/objects/commands.cfg
在最后面增加如下内容 用 table 建代替空格
进入配置文件目录 我们查看一下 nagios 的执行权限的用户
需要添加用户的可以进行增加#多个用户之间用逗号隔开 例如
authorized_for_system_information=nagiosadmin,test
authorized_for_configuration_information=nagiosadmin,test
authorized_for_system_commands=test
authorized_for_all_services=nagiosadmin,test
authorized_for_all_hosts=nagiosadmin,test
authorized_for_all_service_commands=nagiosadmin,test
authorized_for_all_host_commands=nagiosadmin,test
在看下下 cfg 配置文件
上面的文件只要定义了的就必须存在
查看 nagios 的读取路径 默认都注释了 我们要进行更改
我们的首要任务是创建日志文件 (非常重要)nagios 的日志非常简单 而且还能帮我们找到
细节上的错误 默认是没有的 我们要手工创建 而且更改权限
NagiosNagiosNagiosNagios下找到相关行我们添加配置
vi /usr/local/nagios/etc/nagios.cfg(这里的配置都是对应后面的各类定义的,理解了对应
关系才就容易设置了)#添加或修改下面的配置
在 nagios 的时间定义里面定义了一个名为 24x7 的时间规则
我们需要了解即可 24x7 代表只是一个名 真正的时间被定义在 ./objects/timeperiod.cfg
代表的是每星期的每时每分
我们进入 objects 目录 查看 contact.cfg 有如下的配置
为了好看我就去掉注释了
我们创建联系人组
因为在 nagio.cfg里面有生效的行
cfg_file=/usr/local/nagios/etc/objects/contactgroup.cfg
vi /usr/local/nagios/etc/objects/contactgroup.cfg
#以下的配置只能用 tab 键来相隔,不能用空格
alias 是自己定义名称 不是命令 的可以使用空格
service_notification_options w,u,c,r 当服务出现 w—报警 (warning),u—未 知
(unkown),c—严重(critical),或者 r—从异常情况恢复正常,在这四种情况下
联系人.
host_notification_options d,u,r 当主机出现 d—当机(down),u—返回不可达
(unreachable),r—从异常情况恢复正常,在这 3 种情况下通知联系人
service_notification_commands notify-service-by-sendmsg 服务出问题通知采用的命
令 notify-service-by-sendmsg,这个命令是在 commands.cfg 中定义的,作用是使用飞信通知.
host_notification_commands notify-host-by-sendmsg 主机出问题时采用的也是
发飞信的方式通知 联系人
里面的 24x7 我已经解释了就不在重复了
我们监控本地的服务状态 所有的要监控的主机
我们都在 cfg_dir=/usr/local/nagios/etc/servers 添加 cfg 文件
监控本地主机 我们添加 localhost.cfg(nagios本身对自己的服务器有监控配置)
做如下配置
host_name 被监控的主机,由 define host 定义的 contact_groups 联系人 最好是对你认为重
要的服务进行联系通知 不定义 不通知 只在 nagios 的网页里面显示信息
service_description 这个项目的名称 check-host-alive所用的命令,是 commands.cfg中 定
义 (监控主机的存活状态)check_tcp 是 commands.cfg 中 定义( !后面接的的是命令的参数)
检测tcp的22 端口
所有的 check_服务 的脚本命令都保存在 nagios-plugins插件安装产生的工具所在目录里
为 /usr/local/nagios/libexec/
而向先前用的 notify-service-by-sendmsg notify-host-by-sendmsg 命令需要我们自己定义
这个命令的含义是要调用飞信来通知我们
接下来整合飞信 安装飞信
tar zxvf fetion20091117-linux.tar.gz -C /usr/local/
mv /usr/local/fx /usr/local/fetion
chmod -R 755 /usr/local/fetion
chown -R nagios:nagios /usr/local/fetion
vi /etc/ld.so.conf.d/fetion.conf
加入一行:
/usr/local/fetion/
更新:ldconfig
使用一下飞信
正式定义 notify-service-by-sendmsg notify-host-by-sendmsg 命令命令
使用检测命令 检测一下 看有没有错 错的话可能细节方面出错 了
重新启动服务 nagios 和Apache
在浏览器中就可以看到相关信息了 被控端配置
安装 nrpe 创建 nagios 账户
编辑 nrpe 服务 修改主控端地址
在被控制端添加 nrpe 服务
安装 nagios 插件 装完后要修改属主 和 属组
重新启动 xinetd 服务 查看 nrpe的服务状态 正常应该入下图所示
查看主机是否可以被连接以下情况说明主机自己连接没问题
查看被监控端可以监控的项找到下列行
我们添加一个 check_swp监控项
我们进行主控端的连接 如果用命令连接地址成功则表示连接没问题
在主控端上为被控端建立配置文件
名字是随便启的 主要是在 nagios.cfg 定义了 servers目录
把被控端可用的选项敲进去像我那样进行添加就行了
在主控端重启 nagios 服务 连接成功后在map 页里即可看到增加的 yum-server主机