Zabbix 5.4 이상부터 ‘Trigger Action’ 에서 ‘Remote Command’ 선택이 활성화 되기 위해서는 Script를 먼저 등록해야 한다.
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번의 실행을 할 준비가 되었다.
2.1 Slack 메시자가 도착하였다.
2.2 run.sh 실행하는 ansilbe playbook 실행 완료
2.3 프로세스 생성 확인
2.4 Zabbix 대시보드 긴급도 삭제 확인