Icinga 2 เป็นระบบตรวจสอบทรัพยากรเครือข่ายแบบโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายและ Icinga Web 2 เป็นเว็บอินเตอร์เฟสอย่างเป็นทางการสำหรับ Icinga 2
ในบทช่วยสอนนี้ฉันจะอธิบายวิธีการติดตั้งทั้งสองอย่างนี้บนเซิร์ฟเวอร์ Ubuntu 16.04
ข้อกำหนดเบื้องต้น
- เซิร์ฟเวอร์ Vultr Ubuntu 16.04 ที่เพิ่งปรับใช้ใหม่
- ผู้ใช้ sudo ต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการสร้างผู้ใช้ sudo ในอูบุนตูโปรดดูคำแนะนำใน Debian อีกVultr กวดวิชา
ขั้นตอนที่ 1: อัปเดตระบบ
ล็อกอินจากเทอร์มินัล SSH ในฐานะผู้ใช้ sudo แล้วอัปเดตระบบเป็นสถานะที่เสถียรล่าสุดโดยใช้คำสั่งต่อไปนี้:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
หลังจากรีบูตเครื่องให้ใช้ผู้ใช้ sudo คนเดียวกันเพื่อเข้าสู่ระบบ
ขั้นตอนที่ 2: ติดตั้ง Apache
ติดตั้ง Apache โดยใช้คำสั่งต่อไปนี้:
sudo apt-get install apache2 -y
ลบหน้าต้อนรับ Ubuntu Apache เริ่มต้น:
sudo rm /var/www/html/index.html
เพื่อความปลอดภัยคุณควรห้าม Apache ไม่ให้เปิดเผยไฟล์และไดเรกทอรีภายในสารบบเว็บรูท/var/www/html
แก่ผู้เยี่ยมชม:
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf
เริ่มบริการ Apache และเริ่มต้นเมื่อบู๊ตเครื่อง:
sudo systemctl start apache2.service
sudo systemctl enable apache2.service
โดยค่าเริ่มต้นไฟร์วอลล์ UFW ถูกปิดใช้งานบนอินสแตนซ์เซิร์ฟเวอร์ Vultr Ubuntu 16.04 ที่เพิ่งปรับใช้ ใช้คำสั่งต่อไปนี้เพื่อเปิดใช้งานไฟร์วอลล์ UFW และอนุญาตการรับส่งข้อมูลขาเข้าของ SSH, HTTP และ HTTPS:
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw allow in "Apache Full"
sudo ufw enable
ขั้นตอนที่ 4: ติดตั้ง MariaDB
4.1) ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง MariaDB:
sudo apt-get install mariadb-client mariadb-server -y
4.2) เริ่มบริการ MariaDB:
sudo systemctl start mysql.service
sudo systemctl enable mysql.service
4.3) การติดตั้ง MariaDB ที่ปลอดภัย:
sudo /usr/bin/mysql_secure_installation
ในระหว่างกระบวนการโต้ตอบให้ตอบคำถามทีละข้อดังนี้:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: <your-password>
Re-enter new password: <your-password>
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
หมายเหตุ : แทนที่<your-password>
ด้วยรหัสผ่านรูท MySQL ของคุณเอง
4.4) แก้ไขปลั๊กอินการพิสูจน์ตัวตนของroot
ผู้ใช้MySQL :
sudo mysql -u root -p
ใช้รหัสผ่านรูท MariaDB ที่คุณตั้งไว้ก่อนหน้านี้เพื่อเข้าสู่ระบบ
ในเปลือก MySQL:
UPDATE mysql.user SET authentication_string=PASSWORD('<your-password>'), plugin='mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
หมายเหตุ : แทนที่<your-password>
ด้วยรหัสผ่านรูท MySQL ของคุณเอง
ขั้นตอนที่ 5: ติดตั้ง PHP
ติดตั้ง PHP 7.0 และส่วนขยายต่าง ๆ สำหรับ Icinga 2 และ Icinga Web 2:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-gd php7.0-intl php7.0-xml php7.0-ldap php7.0-mysql php7.0-pgsql php-imagick -y
ติดตั้ง Composer เวอร์ชันปัจจุบัน:
cd
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
หมายเหตุ : คำสั่งดังกล่าวข้างต้นอาจจะออกจากวันที่ในอนาคตดังนั้นคุณควรจะได้รับรุ่นล่าสุดจากเว็บไซต์อย่างเป็นทางการนักแต่งเพลง
ให้ย้ายสคริปต์นักแต่งเพลงcomposer.phar
ไปที่/usr/local/bin
และเปลี่ยนชื่อcomposer
:
sudo mv ~/composer.phar /usr/local/bin/composer
ติดตั้ง zip และ unzip:
sudo apt-get install zip unzip -y
ติดตั้งส่วนประกอบ ZendFramework Db โดยใช้ Composer:
composer require zendframework/zend-db
แล้วคุณจะต้องตั้งค่าเขตเวลาที่เหมาะสมสำหรับเครื่องของคุณซึ่งสามารถตรวจสอบได้จากเว็บไซต์อย่างเป็นทางการ PHP ตัวอย่างเช่นถ้าเช่นเซิร์ฟเวอร์ของคุณอยู่ใน Los Angeles Vultr America/Los_Angeles
ดาต้าเซ็นเตอร์แล้วค่าเขตเวลาของมันคือ
เปิดไฟล์การกำหนดค่า PHP ด้วยเครื่องมือแก้ไข vi:
sudo vi /etc/php/7.0/apache2/php.ini
ค้นหาบรรทัด:
;date.timezone =
เปลี่ยนเป็น:
date.timezone = America/Los_Angeles
บันทึกและออก:
:wq!
เริ่มบริการ Apache ใหม่เพื่อให้การตั้งค่าใหม่มีผลบังคับใช้:
sudo systemctl restart apache2.service
ขั้นตอนที่ 6: ติดตั้ง Icinga 2 และปลั๊กอิน
ตั้งค่า repo Icinga APT:
cd
wget -O - http://packages.icinga.org/icinga.key | sudo apt-key add -
sudo add-apt-repository 'deb http://packages.icinga.org/ubuntu icinga-xenial main'
sudo apt-get update
ติดตั้ง Icinga 2 และปลั๊กอินหลายอันโดยใช้ repo Icinga APT:
sudo apt-get install icinga2 nagios-plugins -y
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับปลั๊กอิน Icinga 2 โปรดเยี่ยมชมเว็บไซต์โครงการปลั๊กอินการตรวจสอบ
เริ่มบริการ Icinga 2:
sudo systemctl start icinga2.service
sudo systemctl enable icinga2.service
โดยค่าเริ่มต้นโปรแกรม Icinga 2 จะเปิดใช้งานคุณลักษณะสามอย่าง: ตัวตรวจสอบการฉีดยาและการแจ้งเตือน คุณสามารถยืนยันว่าใช้คำสั่งต่อไปนี้:
sudo icinga2 feature list
ขั้นตอนที่ 7: ตั้งค่าโมดูล Icinga 2 IDO
7.1) ติดตั้งโมดูล IDO (Icinga Data Output) สำหรับ MySQL
sudo apt-get install icinga2-ido-mysql
ในConfiguring icinga2-ido-mysql
ตัวช่วยสร้างเมื่อถูกถามว่าคุณต้องการเปิดใช้งานคุณลักษณะ ido-MySQL Icinga 2 <No>
เลือก เราจะเปิดใช้งานคุณลักษณะนี้ด้วยตนเองในภายหลัง
เมื่อถูกถามว่าคุณต้องการที่จะกำหนดค่าฐานข้อมูลสำหรับ icinga2-ido-MySQL <No>
ให้เลือก แต่คุณสามารถสร้างฐานข้อมูลด้วยตนเองตามที่อธิบายไว้ในขั้นตอนที่ 7.2
7.2) สร้างฐานข้อมูลสำหรับ Icinga 2
ล็อกอินเข้าสู่เชลล์ MySQL ในฐานะรูท:
sudo mysql -u root -p
ใช้รหัสผ่านรูท MariaDB ที่คุณตั้งไว้ในขั้นตอนที่ 4 เพื่อเข้าสู่ระบบ
ใน MySQL shell สร้างฐานข้อมูลชื่อicinga
และผู้ใช้ฐานข้อมูลที่ตั้งชื่อicinga
ด้วยรหัสผ่านicinga
จากนั้นให้สิทธิ์บนฐานข้อมูลนี้แก่ผู้ใช้ฐานข้อมูลนี้
CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
FLUSH PRIVILEGES;
EXIT;
7.3) นำเข้าสคีมาของ Icinga 2 IDO
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
เมื่อได้รับแจ้งให้ป้อนรหัสผ่านรูท MariaDB เพื่อให้งานเสร็จ
7.4) เปิดใช้งานโมดูล IDO MySQL
sudo vi /etc/icinga2/features-available/ido-mysql.conf
ค้นหาบรรทัดเหล่านี้:
user = "icinga2",
password = "",
host = "localhost",
database = "icinga2"
แก้ไขพวกเขาดังต่อไปนี้:
user = "icinga"
password = "icinga"
host = "localhost"
database = "icinga"
บันทึกและออก:
:wq!
เปิดใช้งานคุณสมบัติ ido-mysql:
sudo icinga2 feature enable ido-mysql
sudo systemctl restart icinga2.service
ขั้นตอนที่ 8: ติดตั้ง Icinga Web 2
8.1) ตั้งค่าไพพ์คำสั่งภายนอก
sudo icinga2 feature enable command
sudo systemctl restart icinga2.service
sudo icinga2 feature list
ก่อนที่คุณจะสามารถส่งคำสั่งไปยัง Icinga 2 โดยใช้เว็บอินเตอร์เฟสคุณต้องเพิ่มwww-data
ผู้ใช้ในicingacmd
กลุ่ม:
sudo groupadd icingacmd
sudo usermod -a -G icingacmd www-data
ใช้คำสั่งต่อไปนี้เพื่อยืนยันการตั้งค่าของคุณ:
id www-data
8.2) ติดตั้งแพ็คเกจ Icinga Web 2
sudo apt-get install icingaweb2 icingaweb2-module-monitoring icingaweb2-module-doc icingacli -y
ชี้ไดเรกทอรีรูทเว็บ Apache ไปยังตำแหน่งที่ระบุโดย Icinga Web 2:
sudo icingacli setup config webserver apache --document-root /usr/share/icingaweb2/public
sudo systemctl restart apache2.service
8.3) ตั้งค่าฐานข้อมูล Icinga Web 2
sudo mysql -u root -p
CREATE DATABASE icingaweb2;
EXIT;
8.4) โหลดสกีมาฐานข้อมูล Icinga Web 2
mysql -u root -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
8.5) สร้างโทเค็นการตั้งค่าสำหรับใช้ในภายหลังในวิซาร์ดการติดตั้งเว็บ Icinga Web 2
sudo icingacli setup token create
8.6) เริ่มต้นตัวช่วยสร้างการติดตั้ง Icinga 2 ในเว็บอินเตอร์เฟส
ชี้เว็บเบราว์เซอร์ของคุณไปที่ URL ต่อไปนี้:
http://<your-serve-ip>/icingaweb2/setup
8.7) ในหน้ายินดีต้อนรับป้อนโทเค็นการตั้งค่าที่คุณสร้างไว้ก่อนหน้านี้แล้วคลิกNext
ปุ่ม
8.8) ในหน้าโมดูลให้เลือกหนึ่งโมดูลหรือมากกว่าที่คุณต้องการเปิดใช้งาน (อย่างน้อยMonitoring
ต้องมีโมดูล) แล้วคลิกNext
ปุ่ม
8.9) ในหน้าข้อกำหนดตรวจสอบให้แน่ใจว่าทุกรายการที่ต้องการเป็นที่พอใจแล้วคลิกNext
ปุ่ม
8.10) ในหน้าการรับรองความถูกต้องคุณต้องเลือกวิธีการรับรองความถูกต้องเมื่อเข้าถึง Icinga Web 2 ที่นี่คุณสามารถเลือกDatabase
แล้วคลิกNext
ปุ่ม
8.11) ในหน้าฐานข้อมูลทรัพยากรให้กรอกข้อมูลในฟิลด์ที่จำเป็นทั้งหมดด้านล่างจากนั้นคลิกที่Next
ปุ่ม
- ชื่อทรัพยากร *: icingaweb_db
- ประเภทฐานข้อมูล *: MySQL
- โฮสต์ *: localhost
- ชื่อฐานข้อมูล *: icingaweb2
- ชื่อผู้ใช้ *: รูท
- รหัสผ่าน *: <MariaDB-root-password>
8.12) ในหน้าการรับรองความถูกต้องแบ็คเอนด์โดยใช้ชื่อแบ็กเอนด์เริ่มต้นicingaweb2
ให้คลิกNext
ปุ่มเพื่อดำเนินการต่อ
8.13) ในหน้าการจัดการให้ตั้งค่าบัญชีการดูแลระบบ Icinga Web 2 แรก (บอกว่าเป็นicingaweb2admin
) และรหัสผ่าน (บอกว่าเป็นicingaweb2pass
) จากนั้นคลิกที่Next
ปุ่ม
8.14) ในหน้าการกำหนดค่าแอปพลิเคชันคุณสามารถปรับตัวเลือกการกำหนดค่าแอปพลิเคชันและการบันทึกที่เกี่ยวข้องกับความต้องการของคุณ สำหรับตอนนี้คุณสามารถใช้ค่าเริ่มต้นที่แสดงด้านล่างและคลิกNext
ปุ่มเพื่อดำเนินการต่อ
- แสดง Stacktraces: ทำเครื่องหมาย
- ประเภทของที่เก็บข้อมูลผู้ใช้ *: ฐานข้อมูล
- ประเภทการบันทึก *: Syslog
- ระดับการบันทึก *: เกิดข้อผิดพลาด
- Application Prefix *: icingaweb2
8.15) ในหน้าตรวจทานให้ตรวจสอบการกำหนดค่าของคุณอีกครั้งแล้วคลิกNext
ปุ่ม
8.16) ในหน้ายินดีต้อนรับการกำหนดค่าโมดูลการตรวจสอบคลิกNext
ปุ่ม
8.17) ในหน้าการติดตามแบ็กเอนด์ให้ใช้ชื่อแบ็กเอนด์เริ่มต้นicinga
และประเภทแบ็กเอนด์IDO
จากนั้นคลิกที่Next
ปุ่ม
8.18) ในหน้าทรัพยากรการตรวจสอบ IDO ให้ป้อนรายละเอียดฐานข้อมูล IDO ที่คุณตั้งค่าไว้ก่อนหน้านี้แล้วคลิกNext
ปุ่ม
- ชื่อทรัพยากร *: icinga_ido
- ประเภทฐานข้อมูล *: MySQL
- โฮสต์ *: localhost
- ชื่อฐานข้อมูล *: icinga
- ชื่อผู้ใช้ *: icinga
- รหัสผ่าน *: icinga
8.19) ในหน้า Command Transport ยังคงใช้ค่าเริ่มต้นเหล่านี้ตามรายการด้านล่าง คลิกที่Next
ปุ่มเพื่อไปต่อ
- ชื่อการขนส่ง *: icinga2
- ประเภทการขนส่ง *: ไฟล์คำสั่งท้องถิ่น
- ไฟล์คำสั่ง *: /var/run/icinga2/cmd/icinga2.cmd
8.20) ในหน้าการตรวจสอบความปลอดภัยยังคงใช้ค่าเริ่มต้น:
- ตัวแปรที่กำหนดเองที่ได้รับการป้องกัน: * pw *, * pass *, community
คลิกที่Next
ปุ่มเพื่อไปที่หน้าถัดไป
8.21) ในหน้าตรวจทานให้ตรวจสอบการกำหนดค่าของคุณอีกครั้งแล้วคลิกFinish
ปุ่ม
8.22) ขอแสดงความยินดีด้วย! คลิกLogin to Icinga Web 2
ปุ่มเพื่อข้ามไปยังหน้าเข้าสู่ระบบ Icinga Web 2 ใช้บัญชีผู้ดูแลระบบและรหัสผ่าน Icinga Web 2 ที่คุณตั้งค่าไว้ก่อนหน้านี้เพื่อเข้าสู่ระบบคุณสามารถสำรวจแดชบอร์ด Icinga Web 2
สรุปบทเรียนของเรา ขอบคุณสำหรับการอ่าน.