골방잡담

[서버 모니터링] Zabbix 적용 1 : Virtualbox CentOS 7 에 Zabbix Server, Agent 등 설치 본문

PC방에서/개인프로젝트

[서버 모니터링] Zabbix 적용 1 : Virtualbox CentOS 7 에 Zabbix Server, Agent 등 설치

sisu_ 2020. 8. 31. 17:35

개인 프로젝트용 서버에 각종 troubleshooting을 하면서, 모니터링 공부도 할 겸 Zabbix 설치를 해보았습니다. 

공식홈페이지에서 documentation 도 자세하게 되어 있긴 하지만, 

아무것도 모르는 입장에서 step by step으로 따라할 수 있는 youtube 영상도 Zabbix에서 제공하고 있어, 

해당 영상을 보면서 단계별로 진행한 내용입니다. 

 

 

실습 환경 :

  • OS : CentOS 7.X

  • 방화벽 해제 : zabbix 사용을 하려면 아래 포트는 열어줘야함 :

    • frontend : 80/443

    • server/proxy : 10051

    • agent : 10050

    • TCP

진행 내용 :

  1. 자빅스 저장소를 통해 Zabbix 서버에 필요한 소프트웨어 설치

    • zabbix homepage download section > install zabbix from package > 가장 최신인 4.0 > OS Distribution 선택 (CentOS 7) > DB는 MySQL 후, 명령어 복붙

    • yum search zabbix 명령어로 repository를 통해 install 할 수 있는 것이 뭐가 있는지 확인

      • (Use the search features of yum to find software that is available from the configured repositories, or already installed on your system. Searches automatically include both installed and available packages.)

    • yum install zabbix-get zabbix-agent zabbix-server-mysql zabbix-web-mysql mariadb-server -y

      • zabbix-get: troubleshooting 용도

      • server, web은 사용하는 db enigne 매칭도 되어야 하는 듯

      • 마지막으로 사용하고자 하는 db 서버도 같이 설치해줘야함.

2. Zabbix 용 MySQL DB 구성 

    • systemctl start mariadb

    • mysql 입력하여 DB cli 진입.
      참고로 mariadb는 초기에 설정된 비밀번호가 없어서, 이렇게 입력하면 바로 진입 가능.

    • database 생성을 해주어야함. 참고로 set utf8~ 이부분은 zabbix이용하기 위한 필수사항임

      • create database zabbix character set utf8 collate utf8_bin;

    • 이제 이 db에 접근할 수 있는 유저를 만들어줘야함.

      • grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

      • localhost에서만 접속할 수 있는 zabbix 라는 유저고, 패스워드도 zabbix

    • 이제 스키마를 가져와야하는데, zabbix server을 다운받았을 당시 스키마도 함께 다운 받았음. (schema of zabbix database, default data, 필요한 images가 포함되어 있음)

    • 그럼 zabbix server 경로로 가보자

      • cd /usr/share/doc/zabbix-server-mysql-4.0.23/

    • 압축되어 있는 create.sql.gz문을 풀어서, zabbix database에 적용해주자

      • zcat create.sql.gz | mysql zabbix

    • mysql 들어가서, 스키마가 잘 반영되었는지 확인 (총 144개 테이블) :

 

    • zabbix-server.conf에서, zabbix db password를 아래와 같이 주석 해제하고 설정해주기

      • vim /etc/zabbix/zabbix_server.conf

 

3. Zabbix 서버 시작 

    • 이제 자빅스 서버를 start 해주자

      • systemctl start zabbix-server

      • 잘 떠있는지 확인하려면, 항상 로그를 확인하자 : less /var/log/zabbix/zabbix_server.log

 

4. Zabbix web 시작 (frontend)  

  • 이제 프론트엔드 부분을 configure해야함

    • vim /etc/httpd/conf.d/zabbix.conf 에서 php 파라미터가 있고, 그 중 timezone 설정을 해줄 것(주석해제 필요). 이걸 꼭 한 후에 스타트 해줘야함.

    • systemctl start httpd 로 apache 시작해주기

    • 브라우저에서 IP/zabbix하면 접속

      • 이 부분에서 막혀서, 1) VM에서 고정IP쓰면서 외부 인터넷 되게 설정 2) 그래도 안돼서, 유투브 댓글을 보고 firewall 관련 설정함. # firewall-cmd --add-service=http --zone=public --permanent, # firewall-cmd --reload 3) telnet 설치 후 telnet을 하니까 갑자기 host computer 에서도 안 되던 telnet 이 됨.

      • 이후 web 접속 성공! 이 곳에서 컨피그를 설정하면, cli에 반영된다고 함.

  • Check of pre-requisites : 웬만하면 전부 되어 있을 것 임

  • Configure DB connection : mysql 용으로 설치했기 때문에 MySQL 만 선택할 수 있음

  • Zabbix server details : 여기서의 name은 브라우저에서 보이는 이름으로, 별 의미 없음.

  • 모든 설정이 끝났다. 참고로 이 설정은 /etc/zabbix/web/zabbix.conf.php 에 저장이 된다.

  • 이제 웹에 로그인할 수 있게 되었는데, default ID는 Admin(대소문자구분), PW는 zabbix다

5. Troubleshooting : 'zabbix server is running : No' 

  • Web 로그인하자마자 아래와 같이 'zabbix server is running : No' 라고 뜸... ㅠㅠ

  • zabbix_server.log 를 확인해보니, 마지막에 process stop 됐었음.

  • 다시 띄우는 명령어를 치고, tail로 로그를 확인해보니.. 어떠한 이유로 자꾸 멈추고 있음 ㅠㅠ

 

 

참고 소스 (영상, documentation)

- Zabbbix documentation : https://www.zabbix.com/documentation/4.0/manual/concepts/server

 

1 Server [Zabbix Documentation 4.0]

 

www.zabbix.com

- Zabbix 설치 youtube 영상 : https://youtu.be/yYmkFf3AEBo

 

Comments