前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
Status: 已弃用
本文涵盖的 CentOS 版本已不再受支持。如果您目前正在运行 CentOS 6 服务器,我们强烈建议升级或迁移到受支持的 CentOS 版本。
原因: CentOS 6 已于2020年11月30日到达生命周期终点(EOL),不再接收安全补丁或更新。因此,本指南已不再维护。
请参阅替代方案:
本指南可能仍然作为参考有用,但可能不适用于其他 CentOS 版本。如果有的话,我们强烈建议使用针对您正在使用的 CentOS 版本编写的指南。
以下 DigitalOcean 教程可能会立即引起您的兴趣,因为它概述了在 CentOS 7 服务器上安装 Nagios:
- 如何在 CentOS 7 上安装 Nagios 4 并监视您的服务器
步骤 1 - 在监控服务器上安装软件包
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum -y install nagios nagios-plugins-all nagios-plugins-nrpe nrpe php httpd chkconfig httpd on && chkconfig nagios on service httpd start && service nagios start
我们还应该在此 droplet 上启用 SWAP 内存,至少为 2GB:
dd if=/dev/zero of=/swap bs=1024 count=2097152 mkswap /swap && chown root. /swap && chmod 0600 /swap && swapon /swap echo /swap swap swap defaults 0 0 >> /etc/fstab echo vm.swappiness = 0 >> /etc/sysctl.conf && sysctl -p
步骤 2 - 设置密码保护
设置 Nagios 管理面板密码:
htpasswd -c /etc/nagios/passwd nagiosadmin
确保将此用户名保持为 "nagiosadmin" - 否则您将不得不更改 /etc/nagios/cgi.cfg 并重新定义授权管理员。
现在您可以转到 droplet 的 IP 地址 http://IP/nagios 并登录。
您将被提示输入步骤 2 中设置的密码:
这就是 Nagios 管理面板的外观:
由于这是一个全新的安装,我们目前没有任何正在监视的主机。
现在我们应该添加将由 Nagios 监视的主机。例如,我们将使用 cloudmail.tk(198.211.107.218)和 emailocean.tk(198.211.112.99)。
从公共端口,我们可以监视 ping,任何开放的端口,如 web 服务器,电子邮件服务器等。
对于在本地主机上监听的内部服务,例如 MySQL、memcached、系统服务,我们需要使用 NRPE。
步骤 4 - 在客户端上安装 NRPE
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm yum -y install nagios nagios-plugins-all nrpe chkconfig nrpe on
下一步是您可以指定监控服务器可以通过 NRPE 发送的任何手动命令到这些客户端主机。
确保将 allowed_hosts 更改为您自己的值。
编辑 /etc/nagios/nrpe.cfg
log_facility=daemon pid_file=/var/run/nrpe/nrpe.pid server_port=5666 nrpe_user=nrpe nrpe_group=nrpe allowed_hosts=198.211.117.251 dont_blame_nrpe=1 debug=0 command_timeout=60 connection_timeout=300 include_dir=/etc/nrpe.d/ command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10 command[check_load]=/usr/lib64/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vda command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -s Z command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200 command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
注意:
在上面的 check_disk 中,正在检查的分区是 /dev/vda - 通过运行 df -h / 确保您的 droplet 具有相同的分区。 您还可以修改何时触发警告或严重警报 - 上面的配置设置剩余可用磁盘空间为 20% 时触发警告,并在剩余可用空间为 10% 时触发严重警报。
我们还应该设置防火墙规则,以允许来自我们的监控服务器到这些客户端的连接,并拒绝其他所有人:
iptables -N NRPE iptables -I INPUT -s 0/0 -p tcp --dport 5666 -j NRPE iptables -I NRPE -s 198.211.117.251 -j ACCEPT iptables -A NRPE -s 0/0 -j DROP /etc/init.d/iptables save
现在您可以在所有客户端主机上启动 NRPE:
service nrpe start
步骤 5 - 在监控服务器上添加服务器配置
回到我们的监控服务器,我们将不得不为每个客户端服务器创建配置文件:
echo "cfg_dir=/etc/nagios/servers" >> /etc/nagios/nagios.cfg cd /etc/nagios/servers touch cloudmail.tk.cfg touch emailocean.tk.cfg
编辑每个客户端的配置文件,并定义您想要监视的服务。
nano /etc/nagios/servers/cloudmail.tk.cfg
添加以下行:
define host {use linux-serverhost_name cloudmail.tkalias cloudmail.tkaddress 198.211.107.218}define service {use generic-servicehost_name cloudmail.tkservice_description PINGcheck_command check_ping!100.0,20%!500.0,60%}define service {use generic-servicehost_name cloudmail.tkservice_description SSHcheck_command check_sshnotifications_enabled 0}define service {use generic-servicehost_name cloudmail.tkservice_description Current Loadcheck_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0}
您可以根据需要添加更多要监视的服务。对于第二个客户端 emailocean.tk,应添加相同的配置,但 IP 地址和 host_name 不同:
这是 /etc/nagios/servers/emailocean.tk.cfg 的片段:
define host {use linux-serverhost_name emailocean.tkalias emailocean.tkaddress 198.211.112.99}...
您可以添加要监视的其他客户端,如 /etc/nagios/servers/AnotherHostName.cfg
最后,在添加所有客户端配置后,您应该正确设置文件夹权限,并在监控服务器上重新启动 Nagios:
chown -R nagios. /etc/nagios service nagios restart
步骤 6 - 在 Nagios 中监视主机
转到您的监控服务器的 IP 地址 http://IP/nagios 并输入步骤 2 中设置的密码。
现在您应该能够看到所有主机和服务:
至此,您已完成所有步骤!