오늘은 zabbix-agent를 설치할 시 zabbix-server에 자동으로 host 가 등록되도록 하는 Auto registration 기능을 사용해볼 예정이다.
만약 여러개의 서버를 이용하는 환경이라면 zabbix-agent를 설치하고 수동으로 zabbix-server에 host를 추가하는 일은 효율적이지 못한 방식이다.
■ 구성 환경
Public IP
Private IP
비고
lee-monitor
146.56.188.9
10.0.3.16
Zabbix5 / CentOS Linux release 7.9
mysql1
193.122.107.214
10.0.3.245
Zabbix5 / CentOS Linux release 7.9
■ Zabbix-Server 설치
2021.11.22 - [Open Source 툴] - 오픈소스 모니터링 Zabbix 5.0 설치
오픈소스 모니터링 Zabbix 5.0 설치
Zabbix는 시스템, DB, Network등 여러 지표를 이용하여 사용자에게 서버의 상태를 보여주는 오픈소스 모니터링 솔루션이다. 주요 특징으로는 중앙 집중형 모니터링, 분산 모니터링 지원 다수의 플랫
yunhyeonglee.tistory.com
■ Zabbix-Server Auto Registration 설정
- 서버에서 Auto Registration이라는 Action을 추가해 주어야 한다.
- Action에서 Hostmetadata종류로 조건 추가 ( Hostmetadata는 Zabbix-Agent 설치 시 설정 파일에서 사용된다. )
Configuration -> Actions -> Trigger actions 를 Autoregistration actions으로 변경 후 Action 추가
Action에서 조건 추가 ( 호스트 메타데이터 )
Operations탭에서 Host가 추가될때 실행될 것들을 추가해준다.
- Send message: auto-registration이 되면 설정해놓은 alerting 이 실행된다. ( ex / 메일 / 텔레그램 등 ) - Add Host: 해당 host를 server가 모니터링 할 수 있도록 추가합니다. - Add to host group: 특정 group에 추가되도록 설정 - Link to template: 관련 있는 template을 Link 해줍니다.
■ Zabbix-Agent 설치
- Zabbix-Agent를 자동으로 Host에 등록되게 하려면 Active 방식의 Zabbix-Agent로 설정하 여아 한다. ( https://blog.zabbix.com/zabbix-agent-active-vs-passive/9207/ )
- Server=10.0.3.16 ( 자빅스 서버 IP )
- ServerActive=10.0.3.16 ( 자빅스 서버 IP) Active 방식으로 설정 시 필요
- Hostname=mysql1 (자빅스 서버에 표현될 hostname)
- Hostmetadata (위에서 설정한 Auto Registraion Action의 조건 값)
[root@mysql1 ~]# rpm -Uvh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
warning: zabbix-release-5.0-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-5.0-1.el7 ################################# [100%]
[root@mysql1 ~]# yum -y install zabbix-agent zabbix-sender
[root@mysql1 ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=10.0.3.16 ##자비스 서버 IP
ServerActive=10.0.3.16 ## 자비스 서버 IP
Hostname=mysql1 ##자빅스 에이전트 서버 호스트 네임
HostMetadata=LEE_TEST ##자빅스 서버에서 설정한 Hostmetadata 조건 값
[root@mysql1 ~]# systemctl start zabbix-agent
[root@mysql1 ~]# ps -ef | grep zabbix
zabbix 6623 1 0 16:13 ? 00:00:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 6624 6623 0 16:13 ? 00:00:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 6625 6623 0 16:13 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 6626 6623 0 16:13 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 6627 6623 0 16:13 ? 00:00:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
root 6666 5521 0 16:13 pts/1 00:00:00 grep --color=auto zabbix
■ HOST 자동 등록 확인
■ Zabbix-Agent 설치 스크립트
#!/bin/bash
rpm -Uvh http://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum -y install zabbix-agent zabbix-sender
sed -i 's/Server=127.0.0.1/#Server=127.0.0.1/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/ServerActive=127.0.0.1/#ServerActive=127.0.0.1/g' /etc/zabbix/zabbix_agentd.conf
echo "#############################"
echo "######Zabbix Server IP#######"
echo "#############################"
read IP
echo "Server=$IP" >> /etc/zabbix/zabbix_agentd.conf
echo "ServerActive=$IP" >> /etc/zabbix/zabbix_agentd.conf
echo "#############################"
echo "####### HOSTMetadata #######"
echo "#############################"
read meta
echo "HostMetadata=$meta" >> /etc/zabbix/zabbix_agentd.conf
HOSTNAME=`hostname`
sed -i 's/Hostname=Zabbix server/Hostname='"$HOSTNAME"'/g' /etc/zabbix/zabbix_agentd.conf
cat /etc/zabbix/zabbix_agentd.conf | grep 'Server'
cat /etc/zabbix/zabbix_agentd.conf | grep 'Hostname='
cat /etc/zabbix/zabbix_agentd.conf | grep 'HostMetadata='
systemctl start zabbix-agent
systemctl status zabbix-agent
■ 참고
https://hyperconnect.github.io/2018/10/22/monitoring-cloud-with-zabbix.html