Zabbix - Ansible 연동

Zabbix Script 등록

Zabbix 5.4 이상부터 ‘Trigger Action’ 에서 ‘Remote Command’ 선택이 활성화 되기 위해서는 Script를 먼저 등록해야 한다.

1.스트립트 등록

1.1 Zabbix > Administration > Scripts

1.2 CREATE ITEM 을 클릭한다

Core-API 에 SSH 접속을 한 후에 Command를 실행한다.
ansible-playbook 명령 단위로 스크립트를 준비한다.

cd /home/ansible/ansible-test-ssh;ansible-playbook api-core-run-playbook.yml -i inventory;

참고] 호출한 ansible playbook

- hosts: core-servers
  gather_facts: no
  become: yes
  become_method: su
  become_user: ec2-user
  tasks:
  - name: execute run.sh
    shell: ./run.sh
    args:
      chdir: /usr/local/api-core

1.3 Zabbix > Configuration > Actions > Trigger actions

1.4 Create Action 을 클릭한다
1.5 Name을 등록한다

1.6 Condition을 추가한다
Host에서 생성하였던 Trigger 이름을 복사하여 넣는다.

1.7 Operations을 추가한다

1.8 Slack으로 메시지를 보내고, Ansible에 remote command를 실행하는 설정하기

1.8.1. devops 사용자에게 slack 으로 메시지를 보낸다.

1.8.2. Recovery operation 에서 Add 를 클릭한다

Operation 에서 미리 만들어 놓은 Script 를 선택 할 수 있다.

Target List 에서 host를 선택한다. 스크립트를 실행할 서버가 Ansible Engine 이므로 Ansible 을 선택한다.

1번과 2번의 실행을 할 준비가 되었다.

  • Zabbix에서는 Operation 때에 전송한 Slack메시지가 존재해야 Recovery operation 의 결과를 업데이트 한다.
  • Recovery operation 시점의 메시지만 보내기 위해서는 Ansible에서 Slack 메시지를 발송해야 한다.

연동 테스트

1.강제로 타겟 서버에서 프로세스를 kill 한다.

2.Zabbix 대시보드 확인


2.1 Slack 메시자가 도착하였다.
2.2 run.sh 실행하는 ansilbe playbook 실행 완료
2.3 프로세스 생성 확인
2.4 Zabbix 대시보드 긴급도 삭제 확인

좋은 웹페이지 즐겨찾기