웹사이트 검색

CentOS 7에서 Nginx와 함께 LibreNMS 모니터링 도구를 설치하는 방법


이 페이지에서

  1. 우리가 할 일\n
  2. 전제 조건
  3. 1단계 - 필수 패키지 설치\n
  4. 2단계 - Nginx 웹 서버 설치
  5. 3단계 - PHP-FPM 설치 및 구성
  6. 4단계 - MariaDB 설치 및 구성
  7. 5단계 - LibreNMS 다운로드 및 구성
  8. 6단계 - LibreNMS 웹 기반 설치
  9. 7단계 - 최종 구성
  10. 참조

LibreNMS는 PHP/MYSQL/SNMP 기반의 오픈 소스 모니터링 도구입니다. FreeBSD, Cisco, Linux, HP 등을 포함하여 광범위한 네트워크 하드웨어 및 운영 체제를 지원하는 완전한 기능을 갖춘 네트워크 모니터링 시스템입니다.

이 튜토리얼에서는 Nginx를 웹 서버로 사용하고 MariaDB를 데이터베이스로 사용하여 LibreNMS를 설치하고 구성하는 방법을 보여줍니다. CentOS 7 서버를 메인 서버로 사용하고 있습니다.

우리가 할 일

  1. 필수 패키지 설치\n
  2. Nginx 웹 서버 설치
  3. PHP-FPM 설치 및 구성
  4. MariaDB 설치 및 구성
  5. LibreNMS 다운로드 및 구성
  6. LibreNMS 웹 기반 설치
  7. 최종 구성

전제 조건

  • CentOS 7 서버
  • 루트 권한\n

1단계 - 필수 패키지 설치

서버에 LibreNMS를 설치하기 전에 ImageMagick, rrdtool, SNMP, git을 포함한 일부 패키지를 설치해야 합니다. , 그리고 더. 다음 명령은 필요한 작업을 수행해야 합니다.

yum -y install net-snmp ImageMagick jwhois nmap mtr rrdtool MySQL-python net-snmp-utils cronie fping git

모든 것이 잘되면 다음 단계로 진행하십시오.

2단계 - Nginx 웹 서버 설치

이 단계에서는 nginx 웹 서버 설치를 위해 epel-repository를 설치합니다. EPEL(Extra Packages for Enterprise Linux) 리포지토리는 CentOS 7을 포함한 rpm 기반 OS를 위한 추가 리포지토리입니다.

아래 yum 명령을 사용하여 EPEL 저장소를 설치합니다.

yum -y install epel-release

이제 nginx를 설치합니다.

yum -y install nginx

nginx 설치 후 서비스를 시작하고 다음 systemctl 명령을 사용하여 부팅 시 자동으로 실행되도록 합니다.

systemctl start nginx
systemctl enable nginx

따라서 Nginx 웹 서버는 EPEL 저장소에서 시스템에 설치되었습니다.

3단계 - PHP-FPM 설치 및 구성

계속 진행하기 전에 공유할 가치가 있는 몇 가지 정보는 다음과 같습니다.

LibreNMS 설치에 PHP-FPM 버전 7을 사용할 것입니다. CentOS 7용 모든 PHP 7 패키지는 타사 저장소에서 사용할 수 있으며 webtatic 저장소에서 PHP 7 버전을 사용할 것입니다.

시작하겠습니다.

다음 rpm 명령을 사용하여 시스템에 PHP 7 webtatic 저장소를 추가합니다.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum을 사용하여 weatic 저장소에서 필요한 모든 확장과 PHP 7을 설치합니다.

yum -y install php70w php70w-cli php70w-gd php70w-mysql php70w-snmp php70w-pear php70w-curl php70w-common php70w-fpm php70w-mcrypt

이제 PEAR 리포지토리를 업데이트하고 pear 명령을 사용하여 일부 PEAR(PHP 확장 및 애플리케이션 리포지토리) 확장을 설치합니다.

pear channel-update pear.php.net
pear install Net_IPv4-1.3.4
pear install Net_IPv6-1.2.2b2

따라서 필요한 모든 PHP 패키지를 설치할 수 있습니다.

다음으로 LibreNMS 설치를 위해 PHP-FPM을 구성합니다. php.ini 파일에서 기본 시간대를 정의하고 시간대가 시스템에서 사용하는 현재 시간대와 일치하는지 확인해야 합니다. 다음 명령을 통해 시스템에서 사용하는 현재 시간대를 확인할 수 있습니다.

timedatectl

다음 스크린샷은 위의 명령이 실행되는 모습을 보여줍니다.

따라서 유럽/파리 시간대를 사용했습니다.

이제 vim을 사용하여 /etc/php.ini 파일을 편집합니다.

vim /etc/php.ini

다음으로 date.timezone 줄의 주석을 해제하고 서버 시간대 Europe/Paris로 값을 지정합니다.

data.timezone = Europe/Paris

마찬가지로 cgi 줄의 주석을 해제하고 값을 0으로 변경합니다.

cgi.fix_pathinfo=0

그게 다야. 이제 변경 사항을 저장하고 편집기를 종료하십시오.

다음으로 PHP-FPM이 시스템에서 실행되는 방식을 정의해야 합니다. 우리의 경우 PHP-FPM은 서버 포트 대신 sock 파일에서 실행됩니다.

vim으로 www.conf 파일을 편집하여 PHP-FPM을 구성합니다.

vim /etc/php-fpm.d/www.conf

아래와 같이 수신 포트 라인을 sock 파일로 변경합니다.

listen = /var/run/php-fpm/php7.0-fpm.sock

아래 구성과 같이 sock 파일의 소유자, 그룹 및 권한에 대한 수신 라인의 주석을 제거하십시오.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

그게 다야. 이제 변경 사항을 저장하고 편집기를 종료하십시오.

이제 PHP-FPM 구성이 완료되었습니다. 서비스를 시작하고 다음 명령을 사용하여 부팅 시 자동으로 실행되도록 합니다.

systemctl start php-fpm
systemctl enable php-fpm

이제 PHP-FPM이 sock 파일 아래에서 실행됩니다. netstat 명령으로 확인할 수 있습니다.

netstat -pl | grep php

/var/run/php-fpm/php7.0-fpm.sock 파일의 결과가 있는지 확인하십시오.

4단계 - MariaDB 설치 및 구성

LibreNMS는 MySQL 데이터베이스를 사용하여 모든 데이터를 저장합니다. 이 가이드에서는 MariaDB 데이터베이스 버전을 사용합니다. 리포지토리에서 사용할 수 있으며 LibreNMS에 대한 데이터베이스 및 사용자 추가를 포함하여 LibreNMS 설치를 위한 일부 구성을 설치하고 추가해야 합니다.

아래의 yum 명령어를 사용하여 MariaDB를 설치합니다.

yum -y install mariadb mariadb-server

MariaDB 서비스를 시작하고 부팅 시 자동으로 시작되도록 설정합니다.

systemctl start mariadb
systemctl enable mariadb

이제 아래의 mysql_secure_installation 명령어를 사용하여 MariaDB 루트 비밀번호를 구성하세요.

mysql_secure_installation

몇 가지 다른 질문과 함께 MariaDB 데이터베이스의 새 루트 비밀번호에 대한 질문을 받게 됩니다.

Y를 입력하고 Enter 키를 눌러 확인합니다.

Set root password? [Y/n] Y
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

그래서 MariaDB가 설치되었습니다. 이제 LibreNMS를 위한 새 데이터베이스와 새 사용자를 생성해야 합니다. mysql 클라이언트를 사용하고 새 암호로 mysql 셸 명령줄에 로그인합니다.

mysql -u root -p

암호가 hakase-labs123인 새 사용자 librenms인 librenms라는 새 데이터베이스를 만듭니다.

아래의 MySQL 쿼리를 사용하여 모두 생성합니다.

CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'hakase-labs123';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;

LibreNMS 설치를 위한 새 사용자 및 데이터베이스가 생성되었습니다.

이제 my.cnf 파일을 편집하여 새 mysql 구성을 추가해야 합니다. vim을 사용하여 /etc/my.cnf 파일을 편집합니다.

vim /etc/my.cnf

[mysqld] 섹션 아래에 다음 추가 구성을 붙여넣습니다.

innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0

vim을 저장하고 종료한 다음 mariadb 서버를 다시 시작합니다.

systemctl restart mariadb

5단계 - LibreNMS 다운로드 및 구성

이 단계에서는 LibreNMS 설치를 위해 시스템을 구성합니다.

- 사용자 추가 및 LibreNMS 소스 코드 다운로드

librenms라는 새 시스템 사용자를 만든 다음 /opt/librenms 디렉터리에서 사용자의 홈 디렉터리를 정의하고 마지막으로 librenms 사용자를 nginx 그룹에 추가합니다.

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms nginx

/opt/ 디렉토리로 이동하여 아래와 같이 git clone 명령을 사용하여 LibreNMS 소스 코드를 다운로드합니다.

cd /opt/
git clone https://github.com/librenms/librenms.git librenms

LibreNMS 로그 및 rrd 파일을 위한 새 디렉토리를 생성합니다.

mkdir -p /opt/librenms/logs/
mkdir -p /opt/librenms/rrd/
chmod 775 /opt/librenms/rrd/

이제 /opt/librenms 디렉토리 아래의 모든 파일 및 디렉토리의 소유권을 librenms 사용자 및 그룹으로 변경하십시오.

chown -R librenms:librenms /opt/librenms/

- LibreNMS 가상 호스트 구성

LibreNMS는 웹 기반 애플리케이션이며 Nginx 웹 서버를 사용하여 호스팅하고 있습니다.

nginx conf.d 디렉터리 아래에 새 가상 호스트 파일 librenms.conf를 만듭니다.

vim /etc/nginx/conf.d/librenms.conf

아래에 구성을 붙여넣습니다.

server {

    # Add your own domain name
    listen      80;
    server_name librenms.irsyadf.me;

    # LibreNMS Webroot directory
    root        /opt/librenms/html;
    index       index.php;

    # LibreNMS logs
    access_log  /opt/librenms/logs/access_log;
    error_log   /opt/librenms/logs/error_log;
   
    # Enabling Gzip compression on Nginx
    charset utf-8;
    gzip on;
    gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
   
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
   
    location /api/v0 {
        try_files $uri $uri/ /api_v0.php?$query_string;
    }

    # PHP-FPM handle all .php files requests
    location ~ \.php {
        include fastcgi.conf;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm/php7.0-fpm.sock;
    }
 
    location ~ /\.ht {
        deny all;
    }
}

그게 다야. 이제 Vim을 저장하고 종료합니다.

nginx 구성을 테스트하고 오류가 없는지 확인하십시오. 그런 다음 웹 서버를 다시 시작하십시오.

nginx -t
systemctl restart nginx

- 방화벽 구성

firewalld 패키지가 시스템에 설치되어 있는지 확인하십시오. 그렇지 않은 경우 다음 yum 명령을 사용하여 firewalld를 설치할 수 있습니다.

yum -y install firewalld

firewalld를 시작하고 다음 systemctl 명령을 사용하여 부팅 시 실행되도록 활성화합니다.

systemctl start firewalld
systemctl enable firewalld

아래와 같이 firewall-cmd 명령을 사용하여 새 HTTP, HTTPS 및 SNMP 포트 161/udp를 엽니다.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=161/udp --permanent

firewalld를 다시 로드하여 구성을 적용하고 모든 서비스를 확인합니다.

firewall-cmd --reload
firewall-cmd --list-all

HTTP 및 HTTPS 서비스가 목록에 있는지 확인하십시오.

6단계 - LibreNMS 웹 기반 설치

웹 브라우저를 열고 주소 표시줄에 LibreNMS URL을 입력합니다.

설치 페이지 install.php로 리디렉션됩니다.

- PHP 모듈 지원 확인

필요한 모든 PHP 모듈과 확장이 시스템에 설치되어 있는지 확인하십시오.

그런 다음 다음 단계를 클릭하여 계속하십시오.

- 데이터베이스 구성

아래에 데이터베이스 세부 정보를 입력하십시오.

  1. DB 사용자: librenms
  2. DB 이름: librenms
  3. DB 패스: hakase-labs123

계속하려면 다음 단계를 클릭하십시오.

- MySQL 데이터베이스 가져오기

데이터베이스 가져오기를 표시할 것이므로 설치 페이지를 닫지 마십시오. 오류가 없는지 확인하십시오.

프로세스가 완료되면 사용자 추가로 이동을 클릭하여 새 관리 사용자를 추가합니다.

- 관리 사용자 추가

관리자 사용자, 이메일 및 암호를 입력합니다.

설치를 계속하려면 사용자 추가를 클릭하십시오.

- 구성 파일 생성

구성 생성 버튼을 클릭하면 다음과 유사한 페이지가 표시됩니다.

상자에 있는 php 코드를 복사하고 /opt/librenms/ 디렉터리에 새 config.php 파일을 만듭니다.

cd /opt/librenms/
vim config.php

방금 복사한 코드를 새 파일에 붙여넣은 다음 저장하고 편집기를 종료합니다. 이제 config.php 파일의 소유권 권한을 librenms 사용자 및 그룹으로 변경하십시오.

chown librenms:librenms config.php

브라우저로 돌아와 페이지 하단에 있는 설치 완료 버튼을 클릭합니다. 다음과 유사한 환영 메시지가 표시됩니다.

이 단계에서 웹 기반 설치가 완료되었습니다. 터미널/쉘로 돌아가서 더 많은 구성을 추가하십시오.

7단계 - 최종 구성

이 단계에서는 LibreNMS 설치를 위한 일부 구성을 추가합니다.

- fping 명령 정의

LibreNMS 구성 파일을 편집하여 fping 명령을 정의합니다. /opt/librenms/ 디렉토리로 이동하고 vim 편집기를 사용하여 config.php 파일을 편집합니다.

cd /opt/librenms/
vim config.php

파일 맨 아래에 다음 행을 추가하십시오.

$config['fping'] = "/usr/sbin/fping";

편집기를 저장하고 종료합니다.

- SNMP 구성

/etc/snmp/ 디렉토리에 기본 snmp.conf 파일을 백업하고 librenms 디렉토리에서 새 파일을 복사합니다.

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.asli
cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf

새 구성을 편집합니다.

vim /etc/snmp/snmpd.conf

아래와 같이 자신의 커뮤니티 이름으로 RANDOMSTRINGGOESHERE 텍스트를 변경합니다.

com2sec readonly  default         hakaselabs

그게 다야. Vim을 저장하고 종료합니다.

그런 다음 추가한 운영 체제를 검색하기 위해 librenms-agent 스크립트를 다운로드합니다. Linux OS를 추가하면 스크립트가 특정 Linux 배포도 감지합니다.

curl을 사용하여 스크립트를 다운로드하고 실행 가능하게 만드십시오.

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro

이제 다음 systemctl 명령을 사용하여 SNMP 서비스를 다시 시작하십시오.

systemctl restart snmpd

- LibreNMS용 Logrotate 구성

LibreNMS는 logrotate 구성 및 /opt/librenms/misc 디렉토리에 대한 구성을 제공합니다.

구성 샘플을 /etc/logrotate.d 디렉토리에 복사합니다.

cp misc/librenms.logrotate /etc/logrotate.d/librenms

- LibreNMS cronjob 구성

opt/librenms 디렉토리로 이동하여 crontab 스크립트 librenms.nonroot.cron 파일을 cron.d 디렉토리에 복사하십시오.

cd /opt/librenms/
cp librenms.nonroot.cron /etc/cron.d/librenms

스크립트가 자동으로 실행될 때까지 몇 분 정도 기다리십시오.

- LibreNMS 구성 확인

설치를 확인하려면 validate.php 스크립트를 사용하십시오. /opt/librenms/ 디렉토리로 이동하여 스크립트를 실행하십시오.

cd /opt/librenms/
./validate.php

오류가 발생하지 않는다고 가정하면 다음과 유사한 출력이 표시됩니다.

이렇게 하면 CentOS 7에서 Nginx 웹 서버로 LibreNMS 설치가 완료됩니다.

참조

  • http://docs.librenms.org/