CentOS源码安装、配置Nagios(core)+Plugins

671 阅读3分钟

禁用SELinux

根据官方的指导文件需要禁用SELinux,首先我们获取SELinux状态,如果处于启用状态,切换为宽容模式permissive。

# 获取SELinux状态
getenforce
# 修改为宽容模式
sudo vi /etc/selinux/config
# 修改enforing为permissive

安装Nagios

  1. 安装依赖程序
    sudo yum install gcc glibc glibc-common wget unzip httpd php gd gd-devel perl postfix -y
  2. 下载Nagios core源码文件
    cd ~/ && wget https://github.com/NagiosEnterprises/nagioscore/archive/nagios-4.4.3.tar.gz
  3. 解压源码文件
    cd ~/ && tar -xzvf nagios-4.4.3.tar.gz
  4. 编译源文件
# 切换到源码文件根目录
cd ~/nagios-4.4.3
# 配置
./configure
# 编译文件
sudo make all
  1. 创建nagios用户和组,并修改apache用户的默认组
    sudo make install-groups-users && sudo usermod -a -G nagios apache
  2. 安装 sudo make install
  3. 将nagios安装为服务
    sudo make install-daemoninit && sudo systemctl enable httpd.service
  4. 安装命令行模式
    sudo make install-commandmode
  5. 安装配置文件
    sudo make install-config
  6. 安装Apache配置文件
    sudo make install-webconf
  7. 配置防火墙
# 切换到root用户
su root
# 添加80端口到public,防蚊源根据实际情况,选择单一ip地址或ip地址范围
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.90" port port="80" protocol=tcp" accept' --permanent
firewall-cmd --reload
# 切换到管理员用户
su kim
  1. 创建Nagios管理员用户 na_admin

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users na_admin
需要输入管理员密码,再重新输入一次密码。
创建系统管理员后,如果还需要额外创建其他用户,使用命令sudo htpasswd /usr/local/nagios/etc/htpasswd.users na_user,主要不要使用参数-c否则会替换原来的系统管理员。

  1. 启动Apache服务和Nagios服务
# 启动Apache
sudo systemctl start httpd.service
# 启动Nagios
sudo systemctl start nagios.service
  1. 测试Nagios
    打开本地浏览器,输入Nagios服务器的域名或ip地址,http://ip/nagios
    nagios_web

安装Nagios-plugins

Nagios插件的安装目录是 /usr/local/nagios/libexec/

  1. 安装依赖
    sudo yum install gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release -y sudo yum install perl-Net-SNMP -y
  2. 下载plugin源码
cd ~/
wget -O nagios-plugins-release-2.2.1.tar.gz https://github.com/nagios-plugins/nagios-plugins/archive/release-2.2.1.tar.gz
tar -xzvf nagios-plugins-release-2.2.1.tar.gz
  1. 编译安装
cd ~/nagios-plugins-release-2.2.1
# 配置
sudo ./tools/setup
./configure
# 使用多线程编译
sudo make -j10
# 安装
sudo make install

配置Nagios

基本信息

Nagios的配置文件位于/usr/local/nagios/etc,配置文件以.cfg结尾,主要的文件是nagios.cfg
check_external_comands参数控制是否直接通过web接口运行Nagios,参数为1为启用。
Nagios的主机、服务等相关的配置文件位于/usr/local/nagios/etc/object目录中,关于本机的相关配置位于文件localhost.cfg中。
对于Nagios配置文件进行检查可以通过sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
cgi.cfg文件中还需要设定允许哪些用户运行外部命令。
将新添加的Nagios管理员用户添加到cgi.cfg文件中,否则Nagios Web会提示用户权限的错误。

添加远程监控主机

  1. 使用localhost主机的模板文件,添加1个Linux服务器:
# 复制localhost模板
cd /usr/local/nagios/etc/object
sudo cp localhost.cfg v-centos.cfg
# 编辑复制的配置文件
sudo vi v-centos.cfg
# 按照实际情况修改文件
# 模板,根据需要从template.cfg中选择或添加
use 		linux-server
hostname 	v-centos
address		192.168.0.91
# hostgroup和service根据实际情况修改
  1. 将新增的配置文件添加到nagios.cfg文件中
    echo "cfg_file=/usr/local/nagios/etc/objects/v-centos.cfg" > /usr/local/nagios/etc/nagios.cfg
  2. 检查Nagios配置文件
    sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  3. 配置文件无错误,重启Nagios服务
    sudo systemctl restart nagios
  4. 在远程主机中开启5666端口
su root
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.92" port port="5666" protocol="tcp" accept' --permanent
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.92" port port="5666" protocol="udp" accept' --permanent
firewall-cmd -reload
  1. 打开Nagios Web界面查看新增的主机
    remote_host
  2. 修改检查ssh的默认端口
    在我们新增的主机上,ssh的端口被修改为9022,在Nagios默认的命令中,是使用默认的22端口来检查。
    修改的方法是在命令后添加!-p 9022即可。
# 修改v-centos.cfg文件
# 定位到检查ssh的service
define service {

    use                     local-service          
    host_name               v-centos
    service_description     SSH
    check_command           check_ssh!-p 9022
    notifications_enabled   0
}
# 重启Nagios服务
sudo systemctl restart nagios

ssh_status

参考

  1. Install Nagios on CentOS7
  2. Nagiso remote monitor