CentOS原始碼安裝、配置Nagios(core)+Plugins

Kim本尊發表於2019-05-01

禁用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

相關文章