NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 1(Feat. zabbix, grafana)
Paul Granduer Lee /클라우드 서비스

NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 1(Feat. zabbix, grafana)

NCP. Naver Cloud Platform 환경. 현재 우리는 멀티?클라우드 환경을 사용중이다.

NCP 환경에서의 통합 모니터링을 통한 운영이 필요해 보여 모니터링 환경을 구축하기로 했다.
(NCP에서 제공하는 기본 monitoring 기능으로는 한계가 있다)

모니터링 도구를 구축하는데 언급되었던것은 Prometheus / Grafana  조합과, Zabbix / Grafana 조합이였다.

현재 AWS에서 zabbix를 사용하고 있었기에, Prometheus를 도입해 보려했으나, 아직은 미지?의 세계였기에

고심끝에 zabbix를 선택하게 되었다능...(Prometheus도 언젠가는 도전)

 

Zabbix란?

 

Grafana?

 

방화벽 정보.

출발지 도착지 포트
zabbix server zabbix agent 10050
zabbix agent zabbix server  10051
웹접근용 PC zabbix server web 80
웹접근용 PC grafana web 3000

 

Zabbix Server 설치

###zabbix 서버 등 관련 패키징 설치
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
# yum install zabbix-server-mysql zabbix-agent httpd php mysql mariadb-server zabbix-java-gateway
# systemctl start mariadb
# systemctl enable mariadb

###mysql DB root패스워드생성 및 zabbix 계정생성###
# mysql_secure_installation
# mysql -u root -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '패스워드';
flush privileges;

###zabbix database 셋팅
# cd /usr/share/doc/zabbix-server-mysql-5.0.7
# gunzip create.sql.gz
# mysql -u root -p zabbix < create.sql

###zabbix server front 설치 및 셋팅
# yum install centos-release-scl 
# vi /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...

###zabbix server 환경설정 + JavaGateway 설정(jmx모니터링)
# vi /etc/zabbix/zabbix_server.conf
...
DBPassword=''
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
CacheSize=256M
Timeout=15
...

###zabbix agent 환경설정
# vi /etc/zabbix/zabbix_agent.conf
...
Server=127.0.0.1
ServerActive=127.0.0.1
HostnameItem=system.run[echo "gv-pr-sv-zabbix-$(hostname -I)"]
...

###php 설정
# vi /etc/php.ini
...
memory_limit = 512M
date.timezone = Asia/Seoul

###php 2 설정
#vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
...
php_value[date.timezone] = Asia/Seoul
...

###zabbix & apache 서버 시작
# systemctl start zabbix-server
# systemctl enable zabbix-server
# systemctl start httpd
# systemctl enable httpd
# systemctl start zabbix-java-gateway
# systemctl enable zabbix-java-gateway

selinux 설정 #오류발생시
setsebool -P httpd_can_connect_zabbix 1

 

Zabbix Agent 설치

###root 전환
# sudo su root

###zabbix agent 패키지 설치
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
# yum -y install zabbix-agent

##z#abbix agent config 설정
# cd /etc/zabbix/
# vi zabbix_agentd.conf
##$아래사항만 변경$##
...
Server=10.37.1.80  #zabbix server ip 
ServerActive=10.37.1.80:10051  #zabbix server active check port 
#Hostname=Zabbix server  #hostname 주석처리
HostnameItem=system.run[echo "서버이름-$(hostname -I)"]  #hostname 그룹화처리, 호스트 자동등록을 위함

...

###zabbix agent 서비스 등록
#systemctl enable zabbix-agent
#systemctl restart zabbix-agent

###log
/var/log/zabbix/zabbix_agentd.log

 

zabbix-server Web 설정(http://IP/zabbix)

- DB 접근 정보 설정(해당 캡쳐는 zabbix 서버내에 mysql을 설치한 사례)

초기패스워드 :  Admin / zabbix 

 

 

Grafana 설치.

###Grafana 설치
wget https://dl.grafana.com/oss/release/grafana-7.3.6-1.x86_64.rpm
yum install grafana-7.3.6-1.x86_64.rpm

###zabbix plugin 설치
grafana-cli plugins install alexanderzobnin-zabbix-app

###서비스 등록 및 재시작
systemctl daemon-reload
systemctl stop grafana-server
systemctl enable grafana-server
systemctl start grafana-server

 

http://IP:3000

초기패스워드 : admin / admin

 

Grafana 접근 후 설정에서 Data Sources에 zabbix 추가.

Username 설정은 zabbix User 계정 정보 입력해야함

 

next. 

NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 2(Feat. zabbix 셋팅)
NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 3(Feat. zabbix jmx 모니터링)
NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 4(Feat. zabbix host 자동등록)
NCP 도입일지 - 공공기관용 NCP에서 모니터링 구축 도전기 5(Feat. 그라파나 셋팅)