Nagios 简介 :
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios 可以监控的功能有:
- 1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
- 2、监控主机资源(处理器负荷、磁盘利用率等);
- 3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
- 4、并行服务检查机制;
- 5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
- 6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
- 7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
- 8、自动的日志滚动功能;
- 9、可以支持并实现对主机的冗余监控;
- 10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
- 11、可以通过手机查看系统监控信息;
- 12、可指定自定义的事件处理控制器
本案环境 :
主机 |
系统 |
IP地址 |
nagios |
CentOS 7.4 |
192.168.100.130 |
被监控 |
CentOS 7.4 |
192.168.100.131 |
部署 Nagios 监控系统
1.关闭防火墙 :
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
2.创建 nagios 用户 :
useradd -M -s /sbin/nologin nagios
mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios
3.安装环境 :
yum -y install gcc gcc-c++ make perl openssl-devel
4.编译安装 nagios :
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
tar zxvf nagios-4.3.1.tar.gz
cd nagios-4.3.1/
./configure --prefix=/usr/local/nagios
make all
make install
make install-init # 把nagios做成一个运行脚本,使nagios随系统开机启动
make install-commandmode # 给外部命令访问nagios配置文件的权限
make install-config # 把配置文件样例复制到nagios的安装目录
chkconfig --add /etc/rc.d/init.d/nagios
chkconfig --level 35 nagios on
chkconfig --list nagios
5.检验是否安装成功 :
[root@localhost nagios-4.3.1]# ls /usr/local/nagios/
bin etc libexec sbin share var #查看文件是否存在
6.安装 nagios-plugins 插件:
tar zxvf nagios-plugins-1.5.tar.gz -C /opt/
cd /opt/nagios-plugins-1.5
./configure --prefix=/usr/local/nagios
make && make install
7.安装 web 服务 :
yum -y install httpd php
8.修改 http 配置文件 :
vim /etc/httpd/conf/httpd.conf
User nagios #管理用户和组修改成nagios
Group nagios
DirectoryIndex index.html index.php #添加 index.php
AddType application/x-httpd-php .php #添加可识别 php
# 为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问
ScriptAlias /nagios/cgi-bin "/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
Require valid-user
Alias /nagios "/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
Require valid-user
9.创建访问认证文件 :
[root@localhost ]# htpasswd -c /usr/local/nagios/etc/htpasswd nagiosadm #用户名 nagiosadm
New password: #密码
Re-type new password:
Adding password for user nagiosadm
10.开启服务,访问 http://192.168.100.130/nagios :
systemctl start httpd.service
systemctl start nagios.service
11.修改 objects 配置文件模板 :
1. 修改 templates.cfg :
cd /usr/local/nagios/etc/objects
vim templates.cfg #定义主机和服务模板的配置文件
contact_groups test #5个全部修改 定义联系组的名称
2.添加 hosts.cfg :
vim hosts.cfg #hosts.cfg主要用来指定被监控的主机地址以及相关属性信息(不能有任何空格)
define host{
use linux-server #引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
host_name Nagios-Linux #主机名
alias Nagios-Linux #主机别名
address 192.168.100.131 #被监控的主机地址,这个地址可以是ip,也可以是域名。
}
#定义一个主机组
define hostgroup{
hostgroup_name bsmart-servers#主机组名称,可以随意指定。
alias bsmart servers#主机组别名
members Nagios-Linux#主机组成员,其中“Nagios-Linux”就是上面定义的主机。
}
3. localhost.cfg 文件 #用来监控本机 一般无需更改
4. windows.cfg #用来监控windows 这里无需使用
5.添加 services.cfg :
vim services.cfg #主要用于定义监控的服务和主机资源
define service{
use local-service #引用local-service服务的属性值,local-service在templates.cfg文件中进行了定义。
host_name Nagios-Linux #指定要监控哪个主机上的服务,“Nagios-Server”在hosts.cfg文件中进行了定义。
service_description check-host-alive #对监控服务内容的描述,以供维护人员参考。
check_command check-host-alive #指定检查的命令。
}
6.修改 contacts.cfg :
vim contacts.cfg #定义联系人和联系人组的配置文件(不能有空格)
define contact{
contact_name nagiosadm #联系人的名称,这个地方不要有空格
use generic-contact #引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
alias Nagios Admin
email [email protected] #邮箱
}
define contactgroup{
contactgroup_name test #联系人组的名称,同样不能空格
alias Technical Support #联系人组描述
members nagiosadm #联系人组成员,其中“nagiosadm”就是上面定义的联系人,如果有多个联系人则以逗号相隔
}
7. commands.cfg 文件 #此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可
12.修改 nagios 配置文件 :
1. resource.cfg文件 #是nagios的变量定义文件
2. 修改 cgi.cfg :
cd /usr/local/nagios/etc/
vim cgi.cfg #文件用来控制相关cgi脚本
#由于nagios的web监控界面验证用户为nagiosadm,所以只需在cgi.cfg文件中添加此用户的执行权限
#末尾添加
default_user_name=nagiosadm
authorized_for_system_information=nagiosadmin,nagiosadm
authorized_for_configuration_information=nagiosadmin,nagiosadm
authorized_for_system_commands=nagiosadm
authorized_for_all_services=nagiosadmin,nagiosadm
authorized_for_all_hosts=nagiosadmin,nagiosadm
authorized_for_all_service_commands=nagiosadmin,nagiosadm
authorized_for_all_host_commands=nagiosadmin,nagiosadm
3.修改 nagios.cfg :
vim nagios.cfg #将对象配置文件在Nagios.cfg文件中进行引用
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #添加
cfg_file=/usr/local/nagios/etc/objects/services.cfg #添加
command_check_interval=10s #该变量用于设置nagios对外部命令检测的时间间隔
13.检查配置文件语法 :
[root@localhost ]# /etc/init.d/nagios checkconfig
Running configuration check...
OK.
14. 访问 http://192.168.100.130/nagios :
systemctl restart nagios.service