iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 23
0
Software Development

基於付費公有雲與開源機房自建私有雲之雲端應用服務測試兼叢集與機房託管服務實戰之勇者崎嶇波折且劍還掉在路上的試煉之路系列 第 23

Day 23 開源機房主機監控軟體 - Icinga2 + Icinga web 2 建置與使用

Day 23 開源機房主機監控軟體 - Icinga2 + Icinga web 2 建置與使用

本日重點與方向 (TAG): Icinga、Icinga2、Icingaweb
在之前我們有先搞過了一下節省哥的 SNMP 監控軟體 LibreNMS,在進入 LibreNMS 之前,我們其實也有搞過另外一套的主機管理系統,那就是 Icinga2 配上 Icingaweb 這套東西,這東西主要是面向主機端為主,配上古老的 Nagios Plugin 進行系統性監控,所以對於網管的 Router / Switch 還是交給 LibreNMS 為主,基本上 Icinga2 就是一個 Deamon 綁在主機上面,交給 Icingaweb 做抓取的行為,所以主機端才有支援,而對於服務檢查、告警設定等,還是交給 Nagios Plugin 去處理為主,Icinga2 還有一些群組化管理、商業邏輯設定(多機器設定)、外部設定的一些檢查功能等可以配置,因為光是安裝就已經夠難搞的了,加上整個邏輯架構蠻大的,所以後需多轉移到 LibreNMS 為主,今天就把先前部署的方式寫一寫,希望大家可以組建回來吧,對應到多機器同步管理的部分我還沒搞定,所以就先弄到可以登入的狀態吧。

本次使用設備資訊

Network Switch

  • 數量: 1
  • 型號: D-Link 1210-28 (L2 Switch)

Bare Metal

Master Node

  • 數量: 1
  • Ubuntu: 16.04 / 18.04
  • Docker Version: 19.03
  • CPU: E3-1230_V3 ^ 1
  • RAM: 16GB
  • OS_Disk: 250 GB (HDD)
  • Network: 1Gbps

Icinga2 Master 安裝

https://icinga.com/docs/icinga2/latest/doc/02-installation/

apt-get update
apt-get -y install apt-transport-https wget gnupg
wget -O - https://packages.icinga.com/icinga.key | apt-key add -
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
 /etc/apt/sources.list.d/${DIST}-icinga.list
apt-get update
apt-get install icinga2 -y
apt-get install monitoring-plugins
service icinga2 status

Icinga Web 2 安裝

Icinga Web 2 的資料庫配置

  • Mysql Database 安裝一下
apt-get install mysql-server mysql-client -y
DB Admin User ⇒ root
Password ⇒ root
mysql_secure_installation
  • 使用 icinga2-ido-mysql 套件

你如果要用 icinga2-ido-mysql 的話,他會幫你安裝好所有需要的 DB 資料庫資料表的配置。

apt-get install icinga2-ido-mysql -y
DB Name ⇒ icinga2 
User ⇒ icinga2 
Password ⇒ icinga2
  • 不使用 icinga2-ido-mysql 套件則使用這個設置

你如果不要用 icinga2-ido-mysql 的話,就先登入你的 Mysql 去建資料庫、使用者、對應權限,之後再交付給 Icinga web 2 那邊去跑一些設定。

mysql -u root -p
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
quit

Icinga2 Web 的 功能開通配置

這邊就是去配置一下 icinga2 web 的相關對應到 Icinga2 的 backed server 功能,還有搞一下 PHP 的套件設定,提供 icinga2 web 啟動使用。

icinga2 feature enable ido-mysql
service icinga2 restart
apt-get install apache2 -y
apt-get install php7.0-gd -y
service apache2 restart
icinga2 api setup

Icinga2 Web 的介面配置前置作業

  • 提取 Icinga2 的 API 使用者資訊

這邊是要去拿到 Icinga2 所配置的提取資料的 API 使用者,後面 Icinga2 Web 才可以向 Icinga2 跟他要東西。

nano /etc/icinga2/conf.d/api-users.conf
Default User ⇒  root
Default Password ⇒ hash

安裝 Icinga2 Web

這邊就是去安裝一下 Icinga web2,然後設定一下 Icinga2 setup 的鑰匙,提供給 Icinga web 2 使用。
Docker add-apt-respository 問題: apt-get install software-properties-common

wget -O - https://packages.icinga.com/icinga.key | apt-key add -
add-apt-repository 'deb http://packages.icinga.com/ubuntu icinga-xenial main'
apt-get update
apt-get install icingaweb2 libapache2-mod-php icingacli -y
icingacli setup token create
service apache2 restart
  • 配置一下資料庫

這邊的資料庫是給 icingaweb2 的部分,讓他去設定相關的網頁端的設定還有規則。

mysql -u root -p
CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'icingaweb2';
flush privileges;

IcingaWeb2 Web UI 初始頁面配置

Web UI: ${Target-IP}/icingaweb2/setup

  • Steup Token Key In (CLI: Show Token:icingacli setup token show)

  • IcingaWeb User Module Enable

  • IcingaWeb Backend Service Checker (Mysql / Posgresql choose one)

  • Login Authorization DataBase Setup

  • Setup Authorization Backend Name

  • Setup For Adminstration User Name / Password

  • Setup the Icingaweb2 Plugin

  • IcingaWeb2 Setup Overview

  • Setup IcingaWeb2 & Icinga2 Link

  • Add Icinga2 Data ReSource Type

  • Add Icinga2 Data ReSource (Icinga2 Linked DataBase)

  • Setup Icinga2 API Link & Auth

  • Hint (cat /etc/icinga2/conf.d/api-users.conf)

  • Protect Setting Setup (Click Next)

  • Icinga2 Setup Overview

  • IcingaWeb2 Successfully Info

回到登入頁面 (http://${Target-ip}/icingaweb2)

  • Login Info


上一篇
Day 22 基於事件消息傳遞服務拓展實戰 - KEDA 組建測試之路 GCP Pub/Sub 篇
下一篇
Day 24 開源機房主機視覺化軟體 - Grafana Dashboard 建置與使用
系列文
基於付費公有雲與開源機房自建私有雲之雲端應用服務測試兼叢集與機房託管服務實戰之勇者崎嶇波折且劍還掉在路上的試煉之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言