Zabbix의 원격 명령으로 ansible-playbook을 실행하여 httpd를 다시 시작합니다.
VPS1대 구성
CentOS Linux release 7.6.1810 (Core)
Zabbix 4.0.5
ansible 2.7.8
Apache/2.4.6
※1대 구성 때문에 Ansible 실행 서버와 조작 대상 서버와 Zabbix 서버는 동일 기기가 되고 있습니다.
1. Ansible 환경 구축
# yum install ansible
에서 Ansible을 설치합니다. ※EPEL이 활성화되어 있지 않으면 활성화가 필요합니다. # cd /opt
# mkdir ansible
# vi /opt/ansible/http_restart.yml
아래 내용의 파일을 작성합니다. ---
- hosts: localhost
tasks:
- name: restart httpd
systemd: name=httpd state=restarted
2. Zabbix 원격 명령 실행 준비
/etc/zabbix/zabbix_agentd.conf에 다음 줄을 더합니다.
EnableRemoteCommands=1
# systemctl restart zabbix-agent
visudo 명령을 사용하여/etc/sudoers에 다음 설정을 추가합니다.
zabbix ALL=(ALL) NOPASSWD: /bin/ansible-playbook
3. Zabbix 설정(GUI)
이번은 메모리의 Available이 1024M보다 적어졌을 때에 httpd를 재기동하도록 합니다.
템플릿 「Template OS Linux」에 포함되어 있는 아이템 「Available memory」를 이용합니다.
템플릿 "Template OS Linux"를 localhost에 적용합니다.
다음과 같이 설정하여 트리거를 만듭니다.
| 이름 | [httpd_restart] Lack of available memory on server {HOST.NAME} |
| 심각도 | 심한 장애 |
| 조건식 | {호스트 이름: vm.memory.size[available].last(0)}<1024M |
아래와 같이 설정하여 액션을 만듭니다.
■액션
| 이름 | httpd_restart |
| 실행 조건 | 트리거 이름 포함 [httpd_restart] |
■실행 내용
| 실행 내용 | 1 현재 호스트에서 원격 명령을 실행 즉시 표준 |
■실행 내용의 상세
| 실행 내용 유형 | 원격 명령 |
| 대상 목록 | 현재 호스트 |
| 유형 | 사용자 정의 스크립트 |
| 다음으로 실행 | Zabbix 에이전트 |
| 명령 | sudo/bin/ansible-playbook -i localhost, -c local/opt/ansible/http_restart.yml |
4. 테스트
경고 상태가 되도록 트리거를 아래와 같이 변경하여 테스트해 봅니다.
{호스트 이름: vm.memory.size[available].last(0)}<1024M
↓
{호스트 이름: vm.memory.size[available].last(0)}<2048M
↓16:38에 경보 상태가 되어, httpd가 재기동되고 있는 것을 알 수 있습니다.
[root@hoge ~]# date;ps auxww | grep http[d]
2019年 3月 12日 火曜日 16:37:41 JST
apache 1358 0.0 0.9 541648 20604 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1360 0.0 0.9 541912 20852 ? S 04:00 0:03 /usr/sbin/httpd -DFOREGROUND
apache 1362 0.0 0.9 541872 20844 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1365 0.0 0.9 541872 20756 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1409 0.0 0.9 541872 20800 ? S 04:03 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9229 0.0 0.9 541356 20096 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9231 0.0 0.9 541972 20288 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9233 0.0 0.9 541504 20276 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9235 0.0 0.9 541868 20596 ? S 13:37 0:03 /usr/sbin/httpd -DFOREGROUND
apache 11510 0.0 0.9 541084 19856 ? S 16:10 0:01 /usr/sbin/httpd -DFOREGROUND
root 21885 0.0 0.8 430908 17244 ? Ss 3月11 0:12 /usr/sbin/httpd -DFOREGROUND
[root@hoge ~]#
[root@hoge ~]#
[root@hoge ~]# date;ps auxww | grep http[d]
2019年 3月 12日 火曜日 16:44:27 JST
root 12237 0.0 0.7 430888 16676 ? Ss 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12238 0.1 0.8 540812 18468 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12239 0.1 0.9 540820 18892 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12240 0.4 1.0 544692 23028 ? S 16:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 12241 0.1 0.8 540820 18480 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12242 0.1 0.8 540820 18480 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12252 0.0 0.8 540836 18548 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
[root@hoge ~]#
Reference
이 문제에 관하여(Zabbix의 원격 명령으로 ansible-playbook을 실행하여 httpd를 다시 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/longunder/items/0e7cfa2317aa37631ab4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[root@hoge ~]# date;ps auxww | grep http[d]
2019年 3月 12日 火曜日 16:37:41 JST
apache 1358 0.0 0.9 541648 20604 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1360 0.0 0.9 541912 20852 ? S 04:00 0:03 /usr/sbin/httpd -DFOREGROUND
apache 1362 0.0 0.9 541872 20844 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1365 0.0 0.9 541872 20756 ? S 04:00 0:04 /usr/sbin/httpd -DFOREGROUND
apache 1409 0.0 0.9 541872 20800 ? S 04:03 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9229 0.0 0.9 541356 20096 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9231 0.0 0.9 541972 20288 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9233 0.0 0.9 541504 20276 ? S 13:37 0:04 /usr/sbin/httpd -DFOREGROUND
apache 9235 0.0 0.9 541868 20596 ? S 13:37 0:03 /usr/sbin/httpd -DFOREGROUND
apache 11510 0.0 0.9 541084 19856 ? S 16:10 0:01 /usr/sbin/httpd -DFOREGROUND
root 21885 0.0 0.8 430908 17244 ? Ss 3月11 0:12 /usr/sbin/httpd -DFOREGROUND
[root@hoge ~]#
[root@hoge ~]#
[root@hoge ~]# date;ps auxww | grep http[d]
2019年 3月 12日 火曜日 16:44:27 JST
root 12237 0.0 0.7 430888 16676 ? Ss 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12238 0.1 0.8 540812 18468 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12239 0.1 0.9 540820 18892 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12240 0.4 1.0 544692 23028 ? S 16:38 0:01 /usr/sbin/httpd -DFOREGROUND
apache 12241 0.1 0.8 540820 18480 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12242 0.1 0.8 540820 18480 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
apache 12252 0.0 0.8 540836 18548 ? S 16:38 0:00 /usr/sbin/httpd -DFOREGROUND
[root@hoge ~]#
Reference
이 문제에 관하여(Zabbix의 원격 명령으로 ansible-playbook을 실행하여 httpd를 다시 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/longunder/items/0e7cfa2317aa37631ab4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)