docker-compose 습작 ① Zabbix-Server의 외부 체크 아이템으로 취득
9678 단어 docker-composezabbixPowerShell
작성 방법을 공개합니다.
Docker 서버 환경은 다음과 같습니다.
OS: CentOS Linux release 7.6.1810 (Core)
Docker: 19.03.1
docker-compose:
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython 버전: 3.6.7
목표로 Zabbix 서버 (Ver.4.2.5)를 멀티 컨테이너에 배포하고,
KukuluLIVE의 시청자 수를 Zabbix에서 감시할 수 있도록 하고 있습니다.
kukuLIVE는 API 개발을 하고 있으므로 그것을 이용하게 합니다.
API에 관한 기사는 이쪽
Dockerfile로 이미지 만들기
Dockerfile
FROM zabbix/zabbix-server-mysql:centos-4.2.5
RUN curl https://packages.microsoft.com/config/rhel/7/prod.repo | tee /etc/yum.repos.d/microsoft.repo \
&& yum install -y powershell
COPY kukulu_viewers.ps1 /usr/lib/zabbix/externalscripts/
zabbix-server-mysql에 PowerShell을 설치하고,
kukulu_viewers.ps1
를 컨테이너 측의 /usr/lib/zabbix/externalscripts/
복사 중입니다. kukulu_viewers.ps1
는 다음과 같은 구문으로,KukuluLIVE의 시청자 수를 REST-API로 얻으려고합니다.
kukulu_viewers.ps1
#!/usr/bin/pwsh
### 現在のKukuluLIVEの総視聴者数を確認するツール
# 総視聴者数取得関数
function kukulu_viewers() {
$KUKULU = Invoke-RestMethod -Uri https://live.erinn.biz/api/?category=live
(($KUKULU).live.viewers | Measure-Object -Sum).Sum
}
kukulu_viewers
자재가 정렬되면
docker build
로 이미지를 만듭니다.Dockerfile로 이미지 만들기
# mkdir /root/zabbix
# pwd
/root/zabbix
# ls
Dockerfile kukulu_viewers.ps1 docker-compose.yml
# docker build -f Dockerfile -t zabbix-server-mysql:kukulu-cs-4.2.5 .
Sending build context to Docker daemon 6.656kB
Step 1/3 : FROM zabbix/zabbix-server-mysql:centos-4.2.5
centos-4.2.5: Pulling from zabbix/zabbix-server-mysql
8ba884070f61: Pull complete
eb1e527c78ca: Pull complete
(中略)
Successfully built 7dbeee2be493
Successfully tagged zabbix-server-mysql:kukulu-cs-4.2.5
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix-server-mysql kukulu-cs-4.2.5 7dbeee2be493 About a minute ago 630MB
zabbix/zabbix-server-mysql centos-4.2.5 80cd980c51d9 2 weeks ago 334MB
docker-compose.yml에서 멀티 컨테이너 배포
docker-compose.yml에서 Zabbix-Server, MySQL, Apache, Zabbix-Agent
네 개의 컨테이너를 배포합니다.
docker-compose.yml
version: "3"
services:
zabbix_db:
image: mysql:5.7.24
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
zabbix_server:
image: zabbix-server-mysql:kukulu-cs-4.2.5
environment:
- DB_SERVER_HOST=zabbix_db
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
ports:
- "10051:10051"
links:
- zabbix_db
zabbix_web:
image: zabbix/zabbix-web-apache-mysql:centos-4.2.5
environment:
- ZBX_SERVER_HOST=zabbix_server
- DB_SERVER_HOST=zabbix_db
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=zabbix
- PHP_TZ=Asia/Tokyo
ports:
- 8080:80
links:
- zabbix_server
- zabbix_db
zabbix_agent:
image: zabbix/zabbix-agent:centos-4.2.5
privileged: true
environment:
- ZBX_SERVER_HOST=zabbix_server
expose:
- "10050"
links:
- zabbix_server
docker-compose
에서 배포합니다.docker-compose로 배포
# pwd
/root/zabbix
# docker-compose -f docker-compose.yml up -d
Pulling zabbix_db (mysql:5.7.24)...
5.7.24: Pulling from library/mysql
177e7ef0df69: Pull complete
(中略)
Creating zabbix_zabbix_db_1 ... done
Creating zabbix_zabbix_server_1 ... done
Creating zabbix_zabbix_agent_1 ... done
Creating zabbix_zabbix_web_1 ... done
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a6951d17c69e zabbix/zabbix-web-apache-mysql:centos-4.2.5 "docker-entrypoint.sh" 50 seconds ago Up 48 seconds 443/tcp, 0.0.0.0:8080->80/tcp zabbix_zabbix_web_1
e114e5c4c8ca zabbix/zabbix-agent:centos-4.2.5 "/sbin/tini -- /usr/…" 50 seconds ago Up 48 seconds 10050/tcp zabbix_zabbix_agent_1
f26a0a605723 zabbix-server-mysql:kukulu-cs-4.2.5 "/sbin/tini -- /usr/…" 51 seconds ago Up 49 seconds 0.0.0.0:10051->10051/tcp zabbix_zabbix_server_1
e9a18fce90a2 mysql:5.7.24 "docker-entrypoint.s…" 52 seconds ago Up 50 seconds 3306/tcp, 33060/tcp zabbix_zabbix_db_1
# docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------------------------------
zabbix_zabbix_agent_1 /sbin/tini -- /usr/bin/doc ... Up 10050/tcp
zabbix_zabbix_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
zabbix_zabbix_server_1 /sbin/tini -- /usr/bin/doc ... Up 0.0.0.0:10051->10051/tcp
zabbix_zabbix_web_1 docker-entrypoint.sh Up 443/tcp, 0.0.0.0:8080->80/tcp
Zabbix에 로그인하여 외부 체크 항목 만들기
Zabbix 컨테이너에 로그인합니다.
http://<DockerサーバのIPアドレス>:8080
Username:Admin
Password:zabbix
TOP 화면이 표시됩니다.
[Configuration] > [Hosts]에서 Host 화면을 표시하고 [Zabbix server] 열에서 [Items]를 선택합니다.
[Items] 화면 오른쪽 상단의 [Create Item] 버튼을 선택합니다.
Name: 좋아하는 이름으로 제발
Type:External check
Key:kukulu_viewers.ps1 ※Dockerfile로 컨테이너에 복사한 스크립트명
지금까지 편집한 후 화면 하단의 추가를 선택합니다.
[Item Added]가 표시되면 준비 OK.
모니터링할 수 있는지 확인
[Monitoring] > [Latest data]를 선택하고,
Hosts에서 Zabbix server를 선택한 상태에서 Apply를 누릅니다.
방금 만든 아이템 이름의 레코드가 있다고 생각하기 때문에,
오른쪽의 Graph를 선택합니다.
취득하고 있는 것을 알면 완료입니다.
Reference
이 문제에 관하여(docker-compose 습작 ① Zabbix-Server의 외부 체크 아이템으로 취득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/HOBO0222/items/7e633e316ab2adb2f8fa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(docker-compose 습작 ① Zabbix-Server의 외부 체크 아이템으로 취득), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/HOBO0222/items/7e633e316ab2adb2f8fa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)