웹사이트 검색

Ubuntu 20.04/22.04에 Icinga2 모니터링 도구를 설치하는 방법


Icinga2는 네트워크 리소스를 감시하고 장애나 중단이 발생할 경우 경고나 알림을 보내는 강력한 무료 오픈 소스 모니터링 도구입니다. 또한 성능 데이터를 생성하고 보고서를 생성하는 데 도움이 될 수 있는 메트릭을 네트워크 리소스에서 수집합니다.

Icinga2는 확장 가능하며 다양한 위치에 걸쳐 크고 작은 네트워크를 모니터링할 수 있습니다. 이 가이드에서는 Ubuntu 20.04Ubuntu 22.04Icinga2 모니터링 도구를 설치하는 방법을 알아봅니다.

1단계: Apache, MariaDB 및 PHP 설치

최종 설정 중에 필요한 추가 PHP 모듈과 함께 Apache, MariaDBPHP를 설치하는 것으로 시작합니다. 웹 브라우저에서 Icinga2를 실행합니다.

sudo apt install apache2 mariadb-server mariadb-client mariadb-common php php-gd php-mbstring php-mysqlnd php-curl php-xml php-cli php-soap php-intl php-xmlrpc php-zip  php-common php-opcache php-gmp php-imagick php-pgsql -y

설치가 완료되면 모든 서비스가 실행되고 있는지 확인하세요. 그렇다면 다음 명령을 실행하십시오.

sudo systemctl start {apache2,mariadb}
sudo systemctl enable {apache2,mariadb}
sudo systemctl status {apache2,mariadb}

다음으로, mysql_secure_installation 스크립트를 사용하여 데이터베이스 루트 계정의 비밀번호를 설정하고, 익명 사용자를 제거하고, 원격으로 루트 로그인을 허용하지 않고, 테스트 데이터베이스를 제거해야 합니다.

sudo mysql_secure_installation

PHP 모듈이 있으면 PHP에서 실행되는 애플리케이션의 기본 구성 파일인 php.ini 파일을 수정해야 합니다.

원하는 편집기를 사용하여 파일을 엽니다. 여기. 우리는 nano 명령줄 편집기를 사용하고 있습니다.


sudo nano /etc/php/8.1/apache2/php.ini   [On Ubuntu 22.04]
sudo nano /etc/php/7.4/apache2/php.ini   [On Ubuntu 20.04]

다음 매개변수를 다음과 같이 변경합니다.

memory_limit = 256M 
post_max_size = 64M
upload_max_filesize = 100M	
max_execution_time = 300
default_charset = "UTF-8"
date.timezone = "Asia/Kolkata"
cgi.fix_pathinfo=0

date.timezone 매개변수의 경우 현재 시간대를 반영하도록 설정해야 합니다. 다음은 PHP에서 지원되는 시간대 목록입니다.

변경 사항을 적용하려면 Apache 웹 서버를 다시 시작하면 됩니다.

sudo systemctl restart apache2

2단계: Ubuntu에 Icinga2 설치

PHP 구성을 마치고 Icinga2를 설치해 보겠습니다. 그러나 Icinga2 저장소는 Ubuntu 20.04 저장소에서 제공되지 않습니다. 따라서 시스템에 저장소를 수동으로 추가해야 합니다.

따라서 먼저 컬 명령을 사용하여 GPG 키를 추가하세요.

curl https://packages.icinga.com/icinga.key | apt-key add -

다음으로 Icinga2에 대한 저장소 파일을 만듭니다.

sudo vim /etc/apt/sources.list.d/icinga-focal.list

다음 항목을 추가합니다.

deb http://packages.icinga.com/ubuntu icinga-focal main
deb-src http://packages.icinga.com/ubuntu icinga-focal main

파일을 저장하고 종료합니다.

리포지토리 사용을 시작하려면 다음과 같이 패키지 목록을 업데이트하세요.

sudo apt update

다음으로 Icinga2 및 모니터링 플러그인을 설치합니다.

sudo apt install icinga2 monitoring-plugins

설치가 완료되면 Icinga2 서비스를 활성화하고 시작합니다.

sudo systemctl enable icinga2
sudo systemctl start icinga2

Icinga2 서비스가 실행 중인지 확인하려면 다음을 실행하세요.

sudo systemctl status icinga2

출력은 Icinga2 데몬이 실행 중이며 진행해도 좋다는 것을 나타냅니다.

3단계: Icinga2 IDO 모듈 설치

Icinga2 데이터 출력(IDO)은 모든 구성 및 상태 정보를 데이터베이스로 내보냅니다. 그런 다음 IDO 데이터베이스는 Icinga Web 2에서 데이터 백엔드로 사용됩니다.

모듈을 설치하려면 다음 명령을 실행하십시오.

sudo apt install icinga2-ido-mysql -y

도중에 터미널에 팝업이 표시됩니다. Icinga2의 ido-mysql 기능을 활성화하려면 ''를 선택하고 ENTER를 누르세요.

icinga2-ido-mysql 패키지를 사용하려면 데이터베이스가 설치 및 구성되어 있어야 합니다. 이는 dbconfig-common으로 처리할 수 있지만 데이터베이스는 직접 생성하겠습니다. 따라서 '아니요'를 선택하고 이 옵션을 거부하세요.

그런 다음 MariaDB 데이터베이스 서버에 로그인합니다.

sudo mysql -u root -p

그런 다음 icinga2-ido-mysql 패키지에 대한 데이터베이스 및 데이터베이스 사용자를 생성하고 해당 사용자에게 데이터베이스에 대한 모든 권한을 부여합니다.

> CREATE DATABASE icinga_ido_db;
> GRANT ALL ON icinga_ido_db.* TO 'icinga_ido_user'@'localhost' IDENTIFIED BY 'Password321';
> FLUSH PRIVILEGES;
> EXIT;

데이터베이스가 준비되면 명령을 사용하여 Icinga2 IDO 스키마를 가져옵니다. 데이터베이스 서버의 루트 비밀번호를 제공해야 합니다.

sudo mysql -u root -p icinga_ido_db < /usr/share/icinga2-ido-mysql/schema/mysql.sql

4단계: Icinga2 IDO 모듈 활성화

Icinga Web 2icinga2-ido-mysql 데이터베이스 통신을 활성화하려면 한 단계 더 나아가 기본 구성 파일을 변경해야 합니다.

icinga2-ido-mysql 구성 파일을 엽니다.

sudo vim /etc/icinga2/features-available/ido-mysql.conf

다음 항목을 편집하고 3단계에서 지정한 icinga2-ido-mysql 데이터베이스 세부정보와 일치하도록 설정합니다.

변경 사항을 저장하고 종료합니다.

그런 다음 icinga2-ido-mysql 기능을 활성화하세요.

sudo icinga2 feature enable ido-mysql

변경 사항을 적용하려면 Icinga2를 다시 시작하세요.

sudo systemctl restart icinga2 

5단계: IcingaWeb2 설치 및 설정

설치하고 구성할 마지막 구성 요소는 Icinga2의 프런트 엔드 역할을 하는 빠르고 강력하며 확장 가능한 PHP 프레임워크인 IcingaWeb 2입니다.

따라서 IcingaWeb2Icinga CLI를 설치하고 명령을 실행하세요.

sudo apt install icingaweb2 icingacli -y

Icinga Web 2용으로 지정될 두 번째 데이터베이스 스키마를 생성해야 합니다.

다시 한 번 데이터베이스 서버에 로그인하십시오.

sudo mysql -u root -p

그런 다음 Icingaweb2에 대한 데이터베이스 및 데이터베이스 사용자를 생성하고 데이터베이스의 데이터베이스 사용자에게 모든 권한을 부여합니다.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO 'icingaweb2user'@'localhost' IDENTIFIED BY 'P@ssword';
> FLUSH PRIVILEGES;
> EXIT;

이후 다음 명령을 사용하여 설정 토큰을 생성합니다. 설정 토큰은 브라우저에서 Icinga2를 설정할 때 인증 중에 사용됩니다.

sudo icingacli setup token create

토큰을 분실하거나 잊은 경우 다음 명령을 실행하여 토큰을 볼 수 있습니다.

sudo icingacli setup token show

6단계: Ubuntu에서 IcingaWeb2 설치 완료

모든 구성이 완료되었으면 이제 웹 브라우저에서 Icinga2 설정을 완료하겠습니다. 따라서 브라우저를 실행하고 표시된 URL로 이동하십시오.

http://server-ip/icingaweb2/setup

그러면 표시된 대로 환영 페이지로 이동됩니다. 생성한 설정 토큰을 기억하시나요? 텍스트 필드에 복사하여 붙여넣고 '다음'을 클릭하세요.

'모듈' 페이지에서 '모니터링' 모듈이 기본적으로 활성화되어 있습니다. 그러나 원하는 모듈을 자유롭게 활성화할 수 있습니다.

그런 다음 아래로 스크롤하여 '다음'을 클릭하세요.

다음 단계에서는 모든 PHP 모듈과 라이브러리가 설치되어 있고 디렉토리 권한이 올바른지 확인하세요.

그런 다음 아래로 스크롤하여 '다음'을 클릭하세요.

'인증' 페이지에서 인증 유형으로 '데이터베이스'를 선택하고 '다음'을 클릭하세요.

데이터베이스 리소스' 섹션에서 5단계에 지정된 대로 IcingaWeb2에 대한 데이터베이스 세부정보를 입력합니다.

그런 다음 아래로 스크롤하여 '구성 확인'을 클릭하여 데이터베이스 세부정보를 확인하세요.

모든 것이 순조롭게 진행되면 데이터베이스 구성의 유효성이 성공적으로 검증됩니다. 확인이 성공하면 아래로 스크롤하여 '다음'을 클릭하세요.

다음 단계에서 '다음'을 클릭하여 기본값을 수락합니다.

'애플리케이션 구성' 섹션에서 '다음'을 클릭하여 기본값을 적용합니다.

다음 단계에서는 시간을 내어 Icinga Web 2의 모든 변경 사항을 검토합니다. 모든 구성이 올바른지 확인하고 자유롭게 돌아가서 필요한 수정을 수행하십시오.

문제가 없으면 아래로 스크롤하여 '다음'을 클릭하세요.

Icinga2 웹 설정의 마지막 섹션에는 모니터링 모듈 구성이 포함됩니다. 따라서 '다음'을 클릭하세요.

그런 다음 3단계에 지정된 대로 Icinga2 IDO 모듈에 대한 데이터베이스 세부정보를 입력합니다.

그런 다음 아래로 스크롤하여 '구성 확인'을 클릭하세요.

다시 한 번, 데이터베이스 세부 정보의 유효성 검사가 성공해야 합니다. 오류가 발생하면 돌아가서 모든 세부정보가 올바른지 확인하세요.

다음 단계로 이동하려면 아래로 스크롤하여 '다음'을 클릭하세요.

'명령 전송' 섹션에서 전송 유형으로 '로컬 명령 파일'을 선택하고 '다음'을 클릭합니다.

'보안 모니터링' 섹션에서 '다음'을 클릭하면 기본값으로 이동됩니다.

모니터링 모듈의 모든 변경 사항을 검토합니다. 뭔가 이상해 보이면 뒤로 돌아가 필요한 수정을 가하세요.

그런 다음 아래로 스크롤하여 '마침'을 클릭하세요.

이제 Icinga Web 2가 성공적으로 설정되었으며 아래와 같이 해당 효과에 대한 알림이 표시됩니다. Icinga2 대시보드에 로그인하려면 'Icinga Web 2에 로그인'을 클릭하세요.

그러면 그림과 같이 로그인 페이지로 이동됩니다. 관리자 계정 세부 정보를 제공하고 Enter 키를 눌러 로그인하세요.

그러면 Icinga2 대시보드가 표시됩니다. 기존 문제는 심각도 수준과 함께 표시됩니다. 예를 들어 대시보드는 업그레이드가 준비된 28개의 패키지를 알려줍니다.

이를 확인하기 위해 터미널로 돌아가서 다음 명령을 실행합니다.

sudo apt list --upgradable

패키지를 업그레이드하려면 다음을 실행하면 됩니다.

sudo apt upgrade -y

그러면 문제가 해결됩니다. 대시보드를 보면 더 이상 문제가 표시되지 않는 것을 확인할 수 있습니다.

이 가이드에서는 UbuntuIcinga2 모니터링 도구를 설치하는 방법을 시연했습니다. 물론 설치 시간이 꽤 길어서 세부 사항에 주의가 필요합니다. 그럼에도 불구하고 후자의 단계를 따른다면 모든 것이 잘 작동할 것입니다.