1 min read
ZabbixをDockerへ
2023/03/20追記
以下でZabbix Serverにcurl
を入れているが、それはalertscripts
用。
しかしmedia-types
にてJavaScriptでAPIコールなどをできるためそちらに移行した。
なのでそれらは不要になった。一応打ち消し線をつけておく。
以下記事
Zabbixが5.0にメジャーバージョンアップしたので、これを機にDockerへ移行することにした
Zabbix公式がDockerコンテナを用意してくれているので神。
Zabbix Docker images
使ったコンテナ
zabbix/zabbix-server-mysql:alpine-latest
zabbix/zabbix-web-nginx-mysql:alpine-latest
zabbix/zabbix-agent:alpine-latest
:latest
でもalpine
のものになる模様。
改良した箇所
既知の通り、グラフで日本語を使うと化けるのでそれの修正とか。
- グラフで日本語を使った場合の文字化け対策。
curl
を入れる。(Slackスクリプトなどへの対応。wget
は元から入ってる。)
tree
.
├── alertscripts
│ ├── slack.sh
│ └── and more...
├── docker-compose.yml
├── dockerfiles
│ ├── ZBXFront
│ └── ZBXServer (deleted)
└── mysql-vars.env
ZBXServer
FROM 'zabbix/zabbix-server-mysql:alpine-latest'
USER root
RUN apk --update add curl wget && \
rm -rf /var/cache/apk/*
USER zabbix
通知スクリプトのためのcurl
を入れるだけ。
wget
は元から入ってるけど念の為。
ZBXFront
FROM 'zabbix/zabbix-web-nginx-mysql:alpine-latest'
USER root
RUN wget https://noto-website.storage.googleapis.com/pkgs/NotoSansCJKjp-hinted.zip && \
mkdir /NotoSansCJKjp && \
unzip NotoSansCJKjp-hinted.zip -d /NotoSansCJKjp/ && \
cp /NotoSansCJKjp/NotoSansCJKjp-Regular.otf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf && \
rm -rf /NotoSansCJKjp NotoSansCJKjp-hinted.zip
USER zabbix
グラフの文字化けを直すためにGoogleフォントのNoto Sans CJK jp
を使う。
docker-compose.yml
version: '3.5'
services:
zabbix-agent:
image: 'zabbix/zabbix-agent:alpine-latest'
restart: 'always'
zabbix-server:
image: 'zabbix/zabbix-server-mysql:alpine-latest'
#build:
#context: './dockerfiles'
#dockerfile: 'ZBXServer'
ports:
- '10051:10051'
links:
- 'zabbix-agent'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/etc/timezone:/etc/timezone:ro'
- './alertscripts:/usr/lib/zabbix/alertscripts:ro'
environment:
- 'ZBX_ENABLE_SNMP_TRAPS=true'
env_file: './mysql-vars.env'
restart: 'always'
zabbix-web-nginx-mysql:
#image: 'zabbix/zabbix-web-nginx-mysql:alpine-latest'
build:
context: './dockerfiles'
dockerfile: 'ZBXFront'
ports:
- '80:8080'
links:
- 'zabbix-server'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/etc/timezone:/etc/timezone:ro'
environment:
- 'PHP_TZ=Asia/Tokyo'
env_file: './mysql-vars.env'
restart: 'always'
文字列をクォーテーションで囲うのは癖なので許せ。
mysql-vars.env
DB_SERVER_HOST=
MYSQL_USER=
MYSQL_PASSWORD=
MYSQL_DATABASE=
おわり
これだけでZabbix構築できるんやぞ。やらん手はないやろ。
全人類Zabbix使え。