Rocky Linux - Zabbix(자빅스) 5.4 오픈소스용 모니터링 설치

    자빅스(Zabbix)

    공식 홈페이지 : https://www.zabbix.com/

    간단하게 말하면 네트워크나 서버(가상)등을 포함한 서비스들을 감시하고 실시간으로 자원을 체크하여 관리자에게 신속히 알리기 위한 네트워크 관리 솔루션 소프트웨어입니다. Zabbix 에이전트를 Unix, Linux, Windows 등의 OS에 설치하여 CPU, 메모리(MEM), 파일 시스템(용량), 특정 TCP 등을 포함한 많은 정보를 포함하여 감시를 할 수 있으며 장애 대비 모니터링으로써도 탁월합니다. 해외 소프트웨어이긴 하지만 무료 모니터링 오픈소스이며 무료라고 해서 기능이 제한적이거나 하지 않습니다. 거의 우리나라 상용 모니터링 솔루션과 비교해도 될 만큼 그 기능이 다양하며 접근성이 용이합니다. 필요하다면 솔루션 업체에 상담 및 일정 비용을 지불하여 원격지원을 받을 수도 있습니다.

    설치 환경

    가상서버 : VMware Workstation

     

    [root@Rocky-zabbix ~]# cat /etc/redhat-release  (버전 확인)
    Rocky Linux release 8.4 (Green Obsidian)

     

    [root@Rocky-zabbix ~]# cat /etc/selinux/config | grep SELINUX  (보안 설정)

    SELINUX=disabled  (빠른 테스트를 위해 비활성화, 재시작 필요)

     

    [root@Rocky-zabbix ~]# dnf update  (기본 설치 패키지 업데이트)


    STEP01 → 패키지 설치를 위한 Zabbix 저장소 추가

    zabbix 5.4 릴리스 출시일 : [2021년 5월 20일]

    ※ 이전에 CentOS8에서 5.0 TLS 버전을 설치를 했었으며, 아직 Rocky Linux에 대한 공식 패키지는 없습니다. 다만, 레드햇(RedHat)과 CentOS는 호환되기 때문에 다운로드 사이트에서 직접 RedHat버전으로 다운로드하여 설치를 진행합니다. 거의 다를 게 없지만 일부 추가해야 될 상황이 있어 정보를 추가하도록 하겠습니다.

     

    ※ 공식 홈페이지 : https://www.zabbix.com/download

    ※ Zabbix 공식 저장소 : http://repo.zabbix.com/zabbix/

    ※ Zabbix 공식 매뉴얼[한국어는 없음] : https://www.zabbix.com/manuals

    [root@Rocky-zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
    http://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64//zabbix-release-5.4-1.el8.noarch.rpm(을)를 복구합니다
    경고: /var/tmp/rpm-tmp.VEh2fo: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
    Verifying...                          ################################# [100%]
    준비 중...                            ################################# [100%]
    Updating / installing...
    1:zabbix-release-5.4-1.el8       ################################# [100%]

     

     

    STEP02 → Zabbix Server(Agent) / DB(MariaDB) / WEB(Apache) / PHP 한번에 설치 진행

    [root@Rocky-zabbix ~]# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent zabbix-sql-scripts mariadb-server

     

     

    STEP03 → DB(MariaDB) 실행 및 설정

    3-1 DB 구동 및 프로세스 확인

    □ MariaDB 구동

    [root@Rocky-zabbix ~]# systemctl start mariadb

     

    □ 부팅 시 자동 시작 활성화

    [root@Rocky-zabbix ~]# systemctl enable mariadb
    Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
    Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

     

    □ 프로세스 확인

    [root@Rocky-zabbix ~]# ps -ef | grep mysql
    mysql      68165       1  0 21:33 ?        00:00:00 /usr/libexec/mysqld --basedir=/usr

    3-2 MariaDB 기본 설정

    [root@Rocky-zabbix ~]# mysql_secure_installation

    Enter current password for root (enter for none):   [패스워드가 없기 때문에 엔터]
    Set root password? [Y/n] Y   [DB ROOT 패스워드 설정]

    New password: 패스워드 입력
    Re-enter new password: 패스워드 재입력

    Remove anonymous users? [Y/n] Y   [익명의 접근을 막을 것인지?  Y 엔터]

    Disallow root login remotely? [Y/n] Y   [DB ROOT 원격을 막을 것인지?  Y 엔터]

    Remove test database and access to it? [Y/n] Y   [Test 용으로 생성된 데이터베이스를 삭제할 것인가? Y 엔터]

    Reload privilege tables now? [Y/n] Y   [현재 설정한 값을 적용할 것인지? Y 엔터]

    3-3 MariaDB 접속 및 Zabbix 데이터베이스 생성

    [root@Rocky-zabbix ~]# mysql -u root -p
    Enter password: 패스워드 입력
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 16
    Server version: 10.3.28-MariaDB MariaDB Server

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

     

    □ Zabbix 데이터 베이스 생성[ ※ 중요! UTF8 생성]
    MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin;
    Query OK, 1 row affected (0.000 sec)

     

    □ User 생성 및 패스워드 설정
    MariaDB [(none)]> create user zabbix@localhost identified by 'test123';
    Query OK, 0 rows affected (0.000 sec)

     

    □ 권한 부여
    MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
    Query OK, 0 rows affected (0.000 sec)

     

    □ 적용 후 종료
    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.000 sec)

    MariaDB [(none)]> exit
    Bye

     

     

    STEP04 → Zabbix 초기 테이블 값 정보 데이터베이스에 적용

    □ 경로 이동

    [root@Rocky-zabbix ~]# cd /usr/share/doc/zabbix-sql-scripts/mysql/

     

    □ 파일 확인

    [root@Rocky-zabbix ~]# ls
    create.sql.gz (파일 확인)  double.sql  schema.sql.gz

     

    □ Zabbix 데이터베이스에 복원

    [root@Rocky-zabbix mysql]# zcat create.sql.gz | mysql -u zabbix -p zabbix

    Enter password: zabbix 계정 패스워드 입력

     

     

    STEP05 → Zabbix Config 설정

    [root@Rocky-zabbix ~]# vi /etc/zabbix/zabbix_server.conf

     

         38 LogFile=/var/log/zabbix/zabbix_server.log  [기본 설정]

         72 PidFile=/var/run/zabbix/zabbix_server.pid  [기본 설정]

         82 SocketDir=/var/run/zabbix  [기본 설정]

         93 DBHost=localhost  [주석(#) 제거, 또는 추가]

        105 DBName=zabbix  [기본 설정, 또는 추가]

        121 DBUser=zabbix  [기본 설정, 또는 추가]

        129 DBPassword=test123  [주석(#) 제거, DB 유저 패스워드와 동일하게 설정]

     

     

    STEP06 → Zabbix PHP-FPM Config 설정

    □ 기본 셋팅되어 있으므로 하나의 라인만 수정

    [root@Rocky-zabbix ~]# vi /etc/php-fpm.d/zabbix.conf

     

    [zabbix]
    user = apache
    group = apache

    listen = /run/php-fpm/zabbix.sock
    listen.acl_users = apache,nginx
    listen.allowed_clients = 127.0.0.1

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 35

    php_value[session.save_handler] = files
    php_value[session.save_path]    = /var/lib/php/session

    php_value[max_execution_time] = 300
    php_value[memory_limit] = 128M
    php_value[post_max_size] = 16M
    php_value[upload_max_filesize] = 2M
    php_value[max_input_time] = 300
    php_value[max_input_vars] = 10000
    php_value[date.timezone] = Asia/Seoul  [주석(;) 제거 후 한국 시간으로 수정]

     

     

    STEP07 → 방화벽 허용[Firewall]

    □ 포트 추가

    [root@Rocky-zabbix ~]# firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=10050/tcp --add-port=10051/tcp
    success

     

    □ 적용

    [root@Rocky-zabbix ~]# firewall-cmd --reload
    success

     

    □ 적용 확인

    [root@Rocky-zabbix ~]# firewall-cmd --list-all | grep ports
      ports: 80/tcp (HTTP 웹포트) 10050/tcp (Zabbix Agent 포트) 10051/tcp (Zabbix Server 포트)

     

     

    STEP08 → Zabbix Server(Agent) / HTTPD / PHP-FPM 서비스 구동

    □ 전체 구동

    [root@Rocky-zabbix ~]# systemctl start zabbix-server zabbix-agent httpd php-fpm

     

    □ 부팅 시 자동 활성화

    [root@Rocky-zabbix ~]# systemctl enable zabbix-server zabbix-agent httpd php-fpm

    Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /usr/lib/systemd/system/zabbix-server.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /usr/lib/systemd/system/zabbix-agent.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/php-fpm.service → /usr/lib/systemd/system/php-fpm.service.

     

    □ 프로세스 구동 확인[Zabbix의 경우는 스크린샷 참고]

    [root@Rocky-zabbix ~]# ps -ef | egrep "httpd|php|zabbix"

    apache     68533   68444  0  9월08 ?      00:00:00 /usr/sbin/httpd -DFOREGROUND

    apache     68528   68443  0  9월08 ?      00:00:00 php-fpm: pool zabbix

     

     

    STEP09 → Zabbix Web 설치 페이지 접속 [http://서버IP 또는 호스트네임/zabbix]

     

    9-1 본인 PC에서 http://192.168.150.147/zabbix 접속

    9-2 미리 세팅되어 있으므로 바로 NEXT

    9-3 DB 세팅 정보에 맞게 설정 후 NEXT

    9-4 빈칸으로 넘어가거나 입력 후 NEXT

    9-5 시스템 시간(한국) 및 테마 선택 후 NEXT

    9-6 최종 세팅 확인

    9-7 설치 완료

     

     

    STEP10 → 모니터링 관리자 페이지 접속

    10-1 본인 PC에서 다시 http://192.168.150.147/zabbix 접속

    설치 후 처음 웹 관리자 로그인 페이지 접속 정보는 [ ID : Admin / PASS : zabbix ]입니다. [대소문자 주의]

    10-2 최초 메인 인터페이스 접속 화면

    10-3 Agent 연결 확인[모니터링▷호스트]

    10-4 로그인 계정 설정[관리▷유저▷Admin계정 클릭]

    패스워드 변경이나, 언어설정, 테마 등 관련 설정을 수정할 수 있습니다.

     

    마치며

    설치 및 접속은 문제가 없었으며, 로컬 Agent설치 및 인식이 되는 것으로 보아 외부 서버 Agent도 문제가 없을 것으로 보입니다. 실전으로 사용 가능할지는 좀 더 테스트 해봐야겠지만, Rocky Linux가 레드햇(Redhat)과 호환이 된 다는 것을 잘 보여주고 있네요. 이후 포스팅 기회가 되면 감시를 어떻게 하는지 실전 실습을 해보도록 하겠습니다.

    Designed by JB FACTORY