4. Zabbixサーバのログレベル変更
思ったとおりに監視データの値が取れなかったり、トリガーの挙動がおかしい場合、ログで詳細情報を確認することで調査の手がかりが掴めることもあります。
ログのレベルは、Zabbixサーバのコンフィグファイルで設定しますが、コマンドでZabbixサーバを実行したまま変更することも可能です。
ログレベルの変更
ログの出力レベルは、1~5まであり、デフォルトでは、3(ワーニング)になっています。
このレベル3だと、順調に稼動していると、ほとんどログが出力されません。問題を調査しようと思った場合、ログを見ても何も吐かれていないこともあります。
設定したアイテムやトリガーがどのように動いているのか確認するには、レベル4以上に変更する必要があります。ただ、コンフィグを変更してリブートとなると、ちょっとやりづらい面もあると思いますが、Zabbixサーバは動的に、確認したいプロセスのログレベルだけを変更できるようになっています。
pollerのレベルを3から4に上げる場合、以下のコマンドを入力します。
sudo zabbix_server -R log_level_increase=poller
元に戻す場合
sudo zabbix_server -R log_level_decrease=poller
レベル3から5にしたい場合は、連続して入力すればOKです(逆も同様)。
zabbix_serverコマンドのマニュアル 1 Server [Zabbix Documentation 3.4]
ログの調査方法
あるアイテムの挙動を確認したい場合、アイテムIDでログを検索すると、該当箇所を見つけやすいです。アイテムIDは、ZabbixUIのURLで確認することができます。
上記で確認したアイテムIDで検索し、該当部分のレベル4(debug)で取得したログの内容を確認します。
赤い枠の部分が、該当のアイテムの処理になります。実際の監視アイテムの挙動を追う場合は、pollerだけではなく、他の関連するプロセス(preprocessing manager, history sysncer, unreachable poller)のレベルも一緒に上げておいたほうが、よいと思います。
ログ出力量の違い
ログレベル4と5の違いは、pollerだけの比較ではほとんど違いがないようです。 実際に10分づつそれぞれのレベルで実行した結果を比べたところ、ほとんど出力されるログの件数は同じでした(レベル3と4の出力量の差がすごかったので、レベル5ではとんでもない量になるのかと思っていました)。
ログ出力件数(1分間隔の差分)
レベル5のほうに1つピークがありますが、これはアイテムの収集もこのタイミングで増えているだけなので、pollerに関してはログの出力量は変わらないようです。
次の、ログレベル4と5を、それぞれプロセス全体に設定して比較します。 1秒あたりのログの件数が多くなると、ZabbixAgentで設定されたMaxLinePerSecondsの設定値を超えてしまうので、あらかじめ設定を変更して確認します。
設定を最大値の100(1分間にすると6万行までカウント可能)に変更します。
# MaxLinesPerSecond=20 MaxLinesPerSecond=100
レベル4と5の実行結果です。レベル5のほうが、3倍程度出力される量が多いようです。使っている監視タイプやWebUIへのアクセス頻度などで、ログの量はまったく違ってくると思いますが、ご参考まで。
システムリソースへの影響
レベル4や5でログを出力していると、小規模な監視設定でもあっというまにログのサイズが100MBを超えてしまうので、必要なデータを取得したらからなずレベル3以下に戻すようにしましょう。
ログレベルの変更自体が、CPU負荷やメモリ使用量に与える影響はほとんどなさそうです。