AWS Fargate의 서버리스 Zabbix
개요
Zabbix를 사용하면 서버의 번거로움은 어떻게합니까? 라는 이야기에 절대적이기 때문에 AWS Fargate에서 움직여서 서버리스화해 버리자는 것입니다.
(실제는 서버리스라고 말할 수 있을지 어떨지 모릅니다만···)
실용에 견딜 수 있는지는 고려하지 않습니다.
구성 이미지
IP가 바뀌는 것도 어떨까-라는 것으로, NLB, ALB를 사용해 호스트명으로 액세스 할 수 있도록 합니다.
Zabbix 서버는 NLB로, ZabbixWeb은 ALB에서 받기 때문에 서비스를 나누고 있습니다.
절차
VPC 주변, 클러스터, RDS, NLB, ALB 절차는 생략합니다.
CloudWatch Logs 로그 그룹도 먼저 만들어야 합니다.
파일 구성
. ─┬─ server ─┬─ docker-compose.yml
│ └─ ecs-params.yml
│
└─ web ────┬─ docker-compose.yml
└─ ecs-params.yml
zabbix-server
구성 파일
server/docker-compose.ymlversion: '2'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
server/ecs-params.ymlversion: 1
task_definition:
ecs_network_mode: awsvpc
task_execution_role: ecsTaskExecutionRole
task_size:
cpu_limit: 256
mem_limit: 0.5GB
services:
zabbix-server:
essential: true
run_params:
network_configuration:
awsvpc_configuration:
subnets:
- <サブネットID>
- <サブネットID>
security_groups:
- <セキュリティグループ>
assign_public_ip: ENABLED
시작
$ cd server
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <NLBのターゲットグループのARN> \
--container-name zabbix-server \
--container-port 10051
zabbix-web
구성 파일
web/docker-compose.ymlversion: '2'
services:
zabbix-web:
image: zabbix/zabbix-web-apache-mysql
ports:
- "80:80"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
PHP_TZ: Asia/Tokyo
ZBX_SERVER_HOST: <zabbix-serverのホスト名(NLBのFQDN)>
ZBX_SERVER_NAME: <zabbixの管理画面に表示される名前>
ZBX_SERVER_PORT: 10051
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
시작
$ cd web
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <ALBのターゲットグループのARN> \
--container-name zabbix-web \
--container-port 80
연결
브라우저에서 http://(ALBのFQDN)
에 액세스하면 웹 관리 화면에 로그인할 수 있습니다.
대시보드의 상태도 정상입니다.
에이전트가 지정하는 Server
는 NLB의 FQDN입니다.
요약
Zabbix는 단순히 스케일 아웃 할 수있는 것도 아니기 때문에 너무 Fargate에 적합한 것은 아니지만 서버의 유지 보수는 누가 할 것인가? 라고 이야기가 진행되지 않을 때는, 우선 Fargate화해 버리면 좋지 않을까요?
Reference
이 문제에 관하여(AWS Fargate의 서버리스 Zabbix), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taishin/items/22abc5e23e71db13ca5a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
IP가 바뀌는 것도 어떨까-라는 것으로, NLB, ALB를 사용해 호스트명으로 액세스 할 수 있도록 합니다.
Zabbix 서버는 NLB로, ZabbixWeb은 ALB에서 받기 때문에 서비스를 나누고 있습니다.
절차
VPC 주변, 클러스터, RDS, NLB, ALB 절차는 생략합니다.
CloudWatch Logs 로그 그룹도 먼저 만들어야 합니다.
파일 구성
. ─┬─ server ─┬─ docker-compose.yml
│ └─ ecs-params.yml
│
└─ web ────┬─ docker-compose.yml
└─ ecs-params.yml
zabbix-server
구성 파일
server/docker-compose.ymlversion: '2'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
server/ecs-params.ymlversion: 1
task_definition:
ecs_network_mode: awsvpc
task_execution_role: ecsTaskExecutionRole
task_size:
cpu_limit: 256
mem_limit: 0.5GB
services:
zabbix-server:
essential: true
run_params:
network_configuration:
awsvpc_configuration:
subnets:
- <サブネットID>
- <サブネットID>
security_groups:
- <セキュリティグループ>
assign_public_ip: ENABLED
시작
$ cd server
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <NLBのターゲットグループのARN> \
--container-name zabbix-server \
--container-port 10051
zabbix-web
구성 파일
web/docker-compose.ymlversion: '2'
services:
zabbix-web:
image: zabbix/zabbix-web-apache-mysql
ports:
- "80:80"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
PHP_TZ: Asia/Tokyo
ZBX_SERVER_HOST: <zabbix-serverのホスト名(NLBのFQDN)>
ZBX_SERVER_NAME: <zabbixの管理画面に表示される名前>
ZBX_SERVER_PORT: 10051
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
시작
$ cd web
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <ALBのターゲットグループのARN> \
--container-name zabbix-web \
--container-port 80
연결
브라우저에서 http://(ALBのFQDN)
에 액세스하면 웹 관리 화면에 로그인할 수 있습니다.
대시보드의 상태도 정상입니다.
에이전트가 지정하는 Server
는 NLB의 FQDN입니다.
요약
Zabbix는 단순히 스케일 아웃 할 수있는 것도 아니기 때문에 너무 Fargate에 적합한 것은 아니지만 서버의 유지 보수는 누가 할 것인가? 라고 이야기가 진행되지 않을 때는, 우선 Fargate화해 버리면 좋지 않을까요?
Reference
이 문제에 관하여(AWS Fargate의 서버리스 Zabbix), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taishin/items/22abc5e23e71db13ca5a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
. ─┬─ server ─┬─ docker-compose.yml
│ └─ ecs-params.yml
│
└─ web ────┬─ docker-compose.yml
└─ ecs-params.yml
version: '2'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
version: 1
task_definition:
ecs_network_mode: awsvpc
task_execution_role: ecsTaskExecutionRole
task_size:
cpu_limit: 256
mem_limit: 0.5GB
services:
zabbix-server:
essential: true
run_params:
network_configuration:
awsvpc_configuration:
subnets:
- <サブネットID>
- <サブネットID>
security_groups:
- <セキュリティグループ>
assign_public_ip: ENABLED
$ cd server
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <NLBのターゲットグループのARN> \
--container-name zabbix-server \
--container-port 10051
version: '2'
services:
zabbix-web:
image: zabbix/zabbix-web-apache-mysql
ports:
- "80:80"
environment:
DB_SERVER_HOST: <RDSのエンドポイント>
MYSQL_DATABASE: <RDSに設定したDB名>
MYSQL_USER: <RDSに設定したユーザー名>
MYSQL_PASSWORD: <RDSに設定したパスワード>
PHP_TZ: Asia/Tokyo
ZBX_SERVER_HOST: <zabbix-serverのホスト名(NLBのFQDN)>
ZBX_SERVER_NAME: <zabbixの管理画面に表示される名前>
ZBX_SERVER_PORT: 10051
logging:
driver: awslogs
options:
awslogs-group: <ロググループ名>
awslogs-region: us-east-1
awslogs-stream-prefix: zabbix
$ cd web
$ ecs-cli compose service up --launch-type FARGATE \
--target-group-arn <ALBのターゲットグループのARN> \
--container-name zabbix-web \
--container-port 80
브라우저에서
http://(ALBのFQDN)
에 액세스하면 웹 관리 화면에 로그인할 수 있습니다.대시보드의 상태도 정상입니다.
에이전트가 지정하는
Server
는 NLB의 FQDN입니다.요약
Zabbix는 단순히 스케일 아웃 할 수있는 것도 아니기 때문에 너무 Fargate에 적합한 것은 아니지만 서버의 유지 보수는 누가 할 것인가? 라고 이야기가 진행되지 않을 때는, 우선 Fargate화해 버리면 좋지 않을까요?
Reference
이 문제에 관하여(AWS Fargate의 서버리스 Zabbix), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/taishin/items/22abc5e23e71db13ca5a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS Fargate의 서버리스 Zabbix), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taishin/items/22abc5e23e71db13ca5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)