메뉴 닫기

Ansible 활용하여 Zabbix-agent 구축

안녕하세요 이번 게시글에서는 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가 활성화 된다.

 

자빅스 서버 구축은 아래의 블로그를 참조하였습니다.

https://jsson.tistory.com/14

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x