Ansible Test - Auto Error Handling - slack&zabbix

Ansible + Zabbix + Slack으로 서버 장애처리 자동화

1. Scenario

  1. API 서버 1대에서 run 프로세스 killed 상태를 발생시킨다.
  2. 오류 발생을 Zabbix(모니터링 시스템)가 감지를 한다. 사용자는 Zabbix 대시보드에서 확인가능하다
  3. Zabbix가 Slack으로 오류 발생 메시지를 발송한다
  4. Zabbix가 Ansible host에게 해당 오류를 처리하는 playbook을 실행을 시키도록 명령한다.
  5. Ansilbe 엔진에서 해당 playbook이 실행된다
  6. 오류가 발생한 API 서버에서 "run.sh"이 실행된다.
  7. Zabbix가 Slack 으로 오류 처리 메시지를 발송/업데이트 한다.
  8. Zabbix의 대시보드에서 발생했던 장애 index가 사라진 것을 확인한다.

2. Scenario 구현

  • 1.API 서버 1대에서 run 프로세스 killed 상태가 발생

  • 2.Zabbix 대시보드에서 오류 확인

  • 3.Zabbix가 Slack 으로 오류발생 메시지를 발송

  • 4.Zabbix가 Ansible host에게 playbook을 실행을 시키도록 명령

  • 5.Ansilbe 엔진에서 실행되는 명령들

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

api-core-run-playbook.yml

- 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/wheet-core-back
  • 6.API 서버에서 "run.sh"이 실행이 됨

  • 7.Zabbix가 Slack 으로 오류 처리완료 메시지를 발송

  • 8.Zabbix의 대시보드 확인

좋은 웹페이지 즐겨찾기