Icinga 2 是一個開源監控系統,具有高度的可擴展性和可擴展性。 它可以監控跨多個位置的大型複雜環境。 它檢查您的網絡資源的可用性,通知用戶中斷並生成性能數據以進行報告。 它是一個可以從Web配置的網絡監控應用程序,其功能主要基於PHP服務器端編程語言。
基本上,它監視網絡協議的狀態,例如 HTTP、FTP、SMTP、IMAP 或其他網絡服務、主機資源、物理傳感器、軟件安裝、CPU 負載、內存、磁盤空間以及幾乎所有通過 ICMP 互連的網絡設備或 ping 請求。 此外,它可以輕鬆配置為通過郵件、短信、聊天或其他類型的關於網絡、系統、服務或其他相關網絡中斷的警報通知系統或網絡管理員,還可以生成有關網絡停機或性能的圖形。
在本文中,我將解釋如何在我們最新的 Debian 9.3 服務器上安裝具有 Web 2 界面的 Icinga2 服務器。 讓我們逐步了解如何構建我們的監控系統。
先決條件
在繼續安裝之前,我們需要確保我們的系統滿足編譯和安裝應用程序的所有軟件要求。 第一步,通過發出以下命令更新您的系統存儲庫和軟件包。
# apt update
# apt upgrade
# apt install bash-completion
接下來,通過執行以下命令為您的服務器設置主機名。 我已經添加 icinga2
到我的主機名。
# hostnamectl set-hostname icinga2
# hostnamectl
Static hostname: icinga2
Icon name: computer-vm
Chassis: vm
Machine ID: 7f2b1120403449a3b27d2f40de770be2
Boot ID: 321481f419e94e6cb377ae804d9bab42
Virtualization: kvm
Operating System: Debian GNU/Linux 9 (stretch)
Kernel: Linux 4.9.0-4-amd64
Architecture: x86-64
# cat /etc/hostname
icinga2
最後,我們需要重新啟動 Debian 服務器,以便正確應用內核更新和主機名更改。
安裝 LAMP 堆棧
正如前面所討論的,Icinga 2 是一個用 C++ 編寫的網絡監控應用程序,而 Icinga Web 2 是一個強大的 PHP 框架,用於 Web 應用程序,採用簡潔和精簡的設計。 為了執行它的文件腳本,一個網絡服務器,例如 Apache 必須在服務器上安裝並運行 HTTP 服務器和 PHP 處理網關。 我已經安裝 Apache 使用以下命令,Web 服務器、MySQL 和 Icinga 所需的所有必需 PHP 模塊:
# apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curl php7.0-ldap php7.0-cli php7.0-gd php7.0-intl php7.0-readline php7.0-pgsql
# apt install mariadb-server mariadb-client php7.0-mysql
啟動/啟用 Apache/MySQL 服務。
# systemctl enable apache2 mariadb
# systemctl start apache2 mariadb
# systemctl status apache2 mariadb
後 Apache, MySQL 和 PHP 已安裝,您可以通過瀏覽服務器 IP 來測試 Web 服務器是否已啟動並運行,或者您甚至可以通過測試偵聽其相應端口的網絡連接或使用 root 在控制台中使用 netstat 命令的服務來確認特權如下:
# netstat -plan | grep :80
tcp6 0 0 :::80 :::* LISTEN 19097/apache2
tcp6 0 0 127.0.0.1:80 127.0.0.1:40780 TIME_WAIT -
# netstat -plan | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 14240/mysqld
unix 2 [ ACC ] STREAM LISTENING 52783 14240/mysqld /var/run/mysqld/mysqld.sock
為 Icinga2 創建 MySQL 數據庫
首先,我們需要登錄 MySQL 控制台並運行以下命令來保護 MariaDB 數據庫並設置 root 密碼:
# mysql_secure_installation
現在我們可以創建兩個可供 Icinga2 應用程序使用的數據庫和一個擁有密碼的用戶來管理這些數據庫。 我已經創建了數據庫 icingadb 和 icinga_users 並授予用戶權限 icinga_user 使用密碼訪問以下內容:
~# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 12
Server version: 10.1.26-MariaDB-0+deb9u1 Debian 9.1
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> create database icingadb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> create database icinga_users;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.01 sec)
數據庫 icingadb
為 icinga2 Web 應用程序和數據庫創建 icinga_users
創建用於存儲 Icinga2 Web 界面用戶、組和其他 Web 界面自定義數據。
安裝 Icinga2
完成所有系統要求的安裝後,我們可以繼續安裝 Icinga2 應用程序和 MySQL IDO 模塊。 我們使用 MySQL 作為外部數據庫。 因此,我們需要安裝用於 Icinga2 Web 界面的 MySQL IDO 模塊。 它用於將所有配置和狀態信息導出到其數據庫中。 Icinga 2 具有由 Debian 9.3 存儲庫提供的預編譯二進制包。 因此,安裝可以通過他們的 apt 包管理器執行,如下所示:
# apt install icinga2 icinga2-ido-mysql
安裝時,屏幕上會出現一系列提示。 首先,系統會詢問您是否要配置並啟用 Icinga 2 以使用 MySQL 模塊。 選擇 Yes
從提示並點擊 [enter]
鍵繼續,如下圖所示。
在下一個提示中,將詢問您是否要使用 dbconfig-common 選項為 icinga2-ido-mysql 配置數據庫。 選擇 No
從提示並按 [enter]
完成 Icinga 2 安裝的關鍵。
啟用此模塊並創建我們的數據庫後,我們需要重新啟動我們的 Icinga2 服務。
# systemctl start icinga2.service
# systemctl status icinga2.service
請確保使用正確的數據庫憑據正確設置了 IDO MySQL 配置文件。
# cat /etc/icinga2/features-enabled/ido-mysql.conf
/**
* The db_ido_mysql library implements IDO functionality
* for MySQL.
*/
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user = "icinga_user",
password = "password",
host = "localhost",
database = "icingadb"
}
啟用功能列表
默認情況下,Icinga2 啟用以下功能。 我們可以通過運行此命令為列表啟用任何附加功能 icinga2 feature enable <feature name>
. 我們可以通過運行此命令來確認啟用的設置,如下所示:
~# icinga2 feature list
Disabled features: api command compatlog debuglog gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker ido-mysql mainlog notification
The following features are enabled by default:
Checker: This feature enables the execution of checks.
Mainlog: This feature enables the logging.
Notification: This feature enables notification mechanism.
IDO-mysql: Provides IDO module for the database.
安裝 Icinga Web2 插件
我們的下一步是使用其包管理器從 Debian 9.3 存儲庫安裝 Icinga 2 Web 界面和命令行實用程序包。
#apt install icingaweb2 icingacli
安裝後,您可以重新啟動 Icinga 2 守護程序以獲取所有更改並驗證應用程序狀態,然後再繼續進行配置部分。
# systemctl restart icinga2.service
# systemctl status icinga2.service
# systemctl restart apache2
現在通過執行以下命令為 Icinga 數據庫安裝 MySQL 模式。 MySQL 數據庫架構位於 /usr/share/icinga2-ido-mysql/schema/ 目錄中。
mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql
最後,我們可以生成安裝令牌以通過 Web 界面完成 Icinga web 2 插件的安裝。
# icingacli setup token create
The newly generated setup token is: c25b22acfc9f9094
# icingacli setup token show
The current setup token is: c25b22acfc9f9094
配置 Icinga Web 2 插件
生成令牌後,我們可以通過打開此 URL 開始配置 Icinga Web 2 插件>> https://IP//icingaweb2/setup
在您的瀏覽器中。 您可以瀏覽這些屏幕截圖以更清楚地了解這一點。
第 1 步:設置令牌
作為第一步,它會要求您提供在開始安裝階段之前生成的令牌。 如果您尚未生成令牌,則可以按照上述屏幕截圖中提供的說明生成令牌並繼續下一步。
第 2 步:選擇 Icinga Web2 模塊
提供令牌後,它將轉到下一部分以選擇模塊。 我們可以選擇首選模塊進行下一步。
第 3 步:驗證 PHP 設置
要進一步進行,我們需要安裝缺少的 PHP 模塊並設置正確的時區。 我已經使用此命令安裝了缺少的 PHP 模塊 "apt install php7.0-pgsql"
並重新啟動 Apache 使這些改變生效。 另外,你可以在PHP配置文件中設置合適的時區 /etc/php/7.0/apache2/php.ini
. 滿足所需的設置後,您可以進行下一階段。
第 5 步:驗證方法
我們需要選擇首選的身份驗證方式來繼續安裝。 正如我之前討論過的,我更喜歡為此選擇數據庫類型。
第 6 步: Enter 數據庫詳細信息
在此階段添加 Icinga 2 Web MySQL 數據庫名稱和此數據庫的訪問憑據。 該數據庫將用於存儲 Icinga 2 Web 界面用戶和組。 使用之前創建的第二個數據庫的數據庫信息。 添加 icingaweb_db 作為該資源的名稱,並將主機、端口和字符集變量保留為默認值。 不要選中 Persistent 和 SSL 選項。 點擊驗證配置按鈕以驗證數據庫連接,如下圖所示。 當你完成點擊下一步按鈕移動到下一個安裝程序部分。
步驟 7:創建 Icinga Web 管理登錄
成功驗證我們的數據庫資源後,我們需要創建管理帳戶來管理 Icinga2 Web 界面。 為此帳戶選擇一個強密碼。 當你完成點擊下一步按鈕移動到下一個安裝屏幕。
步驟 8:選擇應用程序配置選項
接下來,我們需要使用以下設置來配置 Icinga 應用程序和日誌配置,就像屏幕截圖一樣。
- 檢查顯示堆棧跟踪
- 存儲類型 = 數據庫
- 日誌類型 = 文件
- 日誌級別 = 錯誤
- 文件路徑 = /var/log/icingaweb2/icingaweb2.log
我們需要從服務器後端創建這個日誌文件並設置適當的權限/所有權以確保 Icinga Web 2 日誌的正常工作。
第 9 步:查看所有選擇的設置。
此屏幕將通知您 Icinga Web2 已成功配置,詳細報告將顯示迄今為止所做的所有配置。 查看報告並點擊下一步按鈕繼續下一個安裝部分。
步驟 10:配置監控模塊
現在我們已經完成了認證部分,接下來是監控模塊的配置。
正如我們之前討論的,Icinga IDO 模塊將所有狀態信息和配置部分導出到 Icinga 主數據庫。 因此,我們需要選擇此模塊並正確配置它以使用信息更新數據庫。
這裡我們需要提供主要的數據庫信息才能繼續。 在此處填寫數據庫詳細信息。 確保為數據庫用戶設置適當的權限以進行任何修改。
使用以下設置配置 Icinga 命令傳輸並點擊下一步按鈕繼續。
- 傳輸名稱 = icinga2
- 傳輸類型 = 本地命令文件
- 命令文件 = /var/run/icinga2/cmd/icinga2.cmd
我們不需要在這個安全階段做任何修改。 我們可以通過單擊繼續進行默認設置 'Next".
步驟 11:查看監控模塊配置選項
此階段將向您簡要介紹您選擇的所有監控模塊配置部分。 您只需確認設置並繼續完成設置即可。
最後一步:登錄到 Web 界面
安裝過程成功完成後,會出現一條祝賀消息,通知您 Icinga Web 2 已成功安裝。 擊中 Login link
為了重定向到 Icinga2 登錄頁面。
使用在安裝過程中配置的憑據登錄到 Icinga Web 2,您將被定向到 Icinga Web 2 儀表板,
我們的主節點默認添加到這個系統中。 我們可以在這裡看到我們的主 Icinga 服務器的服務通知。 或者你可以只瀏覽這個 URL https://IP/icingaweb2/
訪問網絡界面。
我們可以向這個監控系統添加任意數量的節點。
包起來
我們已經在 Debian 9.3 服務器上成功安裝和配置了 Icinga 2 網絡監控應用程序。 有關自定義配置的更多詳細信息,您可以參考此 Icinga 文檔. 我希望這篇文章對你有用。 請就此發表您的寶貴意見和建議。