
皆様、インフラの監視頑張っておりますでしょうか。nagios使っていたり、zabbixを使っていたり、datadogなどを使っていたりするのでしょうか。自分のところは伝統的にzabbixを使用しています。
さらにうちではdockerの上に公式のcontainerイメージによるzabbixを構築し、それを使用しています。
GitHub - zabbix/zabbix-docker: Official Zabbix Dockerfiles
Official Zabbix Dockerfiles. Contribute to zabbix/zabbix-docker development by creating an account on GitHub.
公式のcontainerイメージについては、日本語環境で使用する場合、そのままではグラフにおいて豆腐と呼ばれる状態で表示されることになり、フォントの置き換えが必要です。このことについてはWeb各所でそれ関係の記事を見かけることがあります。
Dockerで建てたzabbixサーバーのグラフの文字化けを治したい | 日本Zabbixユーザー会

Zabbix3.4をdockerで運用してVulsと連携させる 〜 その1 〜 Zabbixのインストール - Qiita
はじめに以前、こちらの記事でZabbix 3.2の導入を行いましたが、訳あって環境を壊してしまいました。再構築するついでに、Zabbix 3.4へのアップデートと、最近流行っているVulsとの連携に挑戦してみました。今回...
が、alpineイメージのtag 4.2.2については設定が変わってしまったのか、以前までのフォントの置き換えでは日本語が有効になりません。
Webでの情報だと
qiitaの記事では以下のようになっています。
cd data/fonts ln -s ipag.ttf graphfont.ttf
自分の以前の記事は以下のように書いています。
FROM zabbix/zabbix-web-nginx-mysql:alpine-3.4-latest RUN echo "http://dl-4.alpinelinux.org/alpine/edge/testing" | tee -a /etc/apk/repositories && apk --update add --no-cache font-ipa && mv /usr/share/zabbix/fonts/graphfont.ttf /usr/share/zabbix/fonts/graphfont.ttf.org && ln -s /usr/share/fonts/TTF/ipag.ttf /usr/share/zabbix/fonts/graphfont.ttf
何が問題?
あれーと思ってgithubのコードを確認してみると、以下のようになっていました。
Removed font processing. Using default font · zabbix/[email protected]
Official Zabbix Dockerfiles. Contribute to zabbix/zabbix-docker development by creating an account on GitHub.
コードを一部抜粋。フォントに関する部分をパッチで置き換えてたんですな。
define('ZBX_FONTPATH', realpath('fonts')); // where to search for font (GD > 2.0.18) -define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name +define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name define('ZBX_GRAPH_LEGEND_HEIGHT', 120); // when graph height is less then this value, some legend will not show up
解決策
というわけでフォントパッケージをインストールした場合は、以下のようにシンボリックリンクを張るようにしてやれば良いかと。
mv /usr/share/zabbix/assets/fonts/DejaVuSans.ttf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf.bak ln -s /usr/share/fonts/TTF/ipag.ttf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf
もしくはホストのフォントを、そのままcontainer側にマウントして置き換えても良いかもしれません。
ホスト側がUbuntu 18.04の場合は以下の通り。
volumes: - /usr/share/fonts/truetype/fonts-japanese-gothic.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf:ro
これで豆腐表示状態が解消していると思います。少なくとも手元の環境では問題なくグラフの日本語表示ができています。
最初、日本語の表示ができないのでなにか設定を間違えたかなーとか悩んでいました。間違えているようでしたらご指摘いただけると助かります。