안녕하세요 이번 게시글에서는 Zabbix 서버를 수동으로 구축하고 Ansible 을 사용하여 호스트 서버에 자빅스 에이전트 설치 및 간단한 서버 설정을 진행하겠습니다.
1번에서는 자빅스 모니터링 서버를 수동으로 설치하기 때문에 ansible 부터 확인하시려면 2번으로 바로 넘어가시면 됩니다.
-목차-
[ 모니터링 서버 설정 ]
1. Zabbix 서버 설치 및 설정
2. Ansible 설치
3. 인벤토리 파일 설정
[ playbook 을 사용한 호스트 서버 설정 ]
4. yum 업데이트 및 업그레이드
5. Zabbix-agent 설치
6. 방화벽 설정
7. 자빅스 웹 페이지 구성
[ 테스트 환경 ]
서버 3대 (모니터링 서버 1대 호스트 대상 서버 2대 )
os : Centos 7
1. Zabbix 서버 설치 및 설정
yum 업데이트 및 업그레이드
# yum -y update && yum -y upgrade
레포지토리 연결
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Zabbix 서버 설치
# yum -y install zabbix-server-mysql zabbix-agent
frontend 설치 (Zabbix 대시보드 프로그램)
# yum -y install centos-release-scl
frontend 설정 파일 수정
# vi /etc/yum.repos.d/zabbix.repo
enabled=1 로 변경
frontend 추가 패키지 설치
# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
mariadb 서버 설치
# yum -y install mariadb-server
mariadb 시작
# systemctl start mariadb
mysql 접속 후에 DB설정
# mysql 데이터베이스 생성 후 언어셋 변경 MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; 유저생성 MariaDB [(none)]> create user zabbix@localhost identified by 'password'; 권한 설정 MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; 적용 MariaDB [(none)]> flush privileges;
Schema(스키마) 적용
# zcat /usr/share/doc/zabbix-server-mysql-5.0.39/create.sql.gz | mysql zabbix
이후 mysql zabbix 데이터 베이스 접속후 talbe 생성 되었는지 확인
아래와 같이 나오면성공
자빅스 서버 설정 파일 수정
# vi /etc/zabbix/zabbix_server.conf
자빅스 서버 시작
# systemctl start zabbix-server
실시간으로 로그를 확인
# tail -f /var/log/zabbix/zabbix_server.log
아래와 같이 별다른 에러 로그가 없다면 정상
서비스 데몬 확인
# netstat -ntlp | grep 10051
시간 설정
# vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
아시아/서울 로 타임존 변경
관련 데몬 모두 재시작
# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm # systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
2. Ansible 설치
epel 레포지토리 설치
# yum -y install epel-release
Ansible 설치
# yum -y install ansible sshpass
버전 확인
# ansible --version
ssh 키값 생성
# ssh-keygen
모든 질문에 엔터
+—[RSA 2048]—-+
|+E=@o. |
|*o= = . |
|+. + o |
| o = . |
| o = =S |
| o B.= |
| = ..O |
| . +o**+ |
| *B==. |
+—-[SHA256]—–+
이렇게 나오는 키값을 호스트 서버로 복사
해당 작업을 해야 playbook을 실행할수 있습니다.
# ssh-copy-id root@115.68.249.116 # ssh-copy-id root@115.68.249.186
3. 인벤토리 파일 설정
Ansible 설정 파일 하단에 모니터링 할 호스트 서버 작성
# vi /etc/ansible/hosts
호스트 서버에 ping 전송 테스트
# ansible all -m ping
4. yum 업데이트 및 업그레이드
yum update 플레이북 작성
# vi yum_update.yml
추가
--- - name: Apply security patches on CentOS/RHEL hosts: all tasks: - name: Update package cache yum: name: '*' state: latest become: yes
플레이북 실행
# ansible-playbook yum_update.yml
5. Zabbix-agent 설치
zabbix 에이젼트 설치 및 설정
# vi install_zabbix.yml
추가
--- - name: Install and Configure Zabbix Agent hosts: monitoring become: yes tasks: - name: Install EPEL Repository yum: name: epel-release state: present - name: Install Zabbix Agent yum: name: zabbix-agent state: present - name: Server 라인 수정 lineinfile: path: /etc/zabbix_agentd.conf regexp: '^Server=127.0.0.1' line: 'Server=115.68.249.79' - name: ServerActive 라인 수정 lineinfile: path: /etc/zabbix_agentd.conf regexp: '^ServerActive=127.0.0.1' line: 'ServerActive=115.68.249.79' - name: Start Zabbix Agent systemd: name: zabbix-agent state: started
플레이 북 실행
# ansible-playbook install_zabbix.yml
6. 방화벽 설정
iptables 방화벽 설정(자빅스 포트 허용 설정)
# iptables.yml
추가
--- - name: Update iptables rules for Zabbix Agent hosts: monitoring tasks: - name: Add iptables rule to allow Zabbix Agent blockinfile: path: /etc/sysconfig/iptables insertbefore: '-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited' # 이 줄 위에 규칙을 추가합니다. block: | -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT become: yes - name: Restart iptables service service: name: iptables state: restarted become: yes
플레이 북 실행
# ansible-playbook iptables.yml
7. 자빅스 웹 페이지 구성
http://115.68.249.79/zabbix
구성 시
조건들이 전부 ok라고 뜨면 다음
DB계정 생성했을 때 지었던 패스워드 입력 후 다음
이후 나오는 화면은 단순 정보 이므로 다음 클릭후 마무리
메인 화면
호스트 추가
host -> host name -> group -> 에이젼트 ip 작성
Templatles -> 자빅스 에이젼트 관련 템플릿 추가
같은 방식으로 나머지 서버도 추가 해주면 아래와 같이 zbx가 활성화 된다.
자빅스 서버 구축은 아래의 블로그를 참조하였습니다.