Just another IT site ※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。At Your Own Risk!! TURN BACK WHILE YOU CAN
PR

【Zabbix運用】サーバーログの肥大化を防ぐ!標準機能 vs Linuxのlogrotate 設定手順まとめ

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。スクリプトはAI生成のものも多いのでコピー&ペーストの際は文字コードに注意ください!

こんにちは!システム監視の要である「Zabbix」ですが、日々大量の監視データを処理しているため、放っておくとZabbixサーバー自身のログ(zabbix_server.log)は瞬く間に巨大化してしまいます。

ログの肥大化はディスク容量を圧迫し、最悪の場合はサーバー停止を引き起こすことも……。そのため、適切なログローテーション(世代管理)の設定は必須です。

Zabbixサーバーのログローテートには、大きく分けて以下の2つのアプローチがあります。

  1. Zabbixの標準機能(自動ローテーション)を利用する方法

  2. Linux標準の logrotate コマンドを使用する方法

今回は、それぞれの具体的な設定手順と、実運用における選び方のポイントを分かりやすく解説します!

スポンサーリンク
バッチ処理の自動化スキルは市場価値が高いです。今の自分の単価を調べてみませんか?
顧客常駐はもう嫌だ!社内SEへ転職するなら【社内SE転職ナビ】
Cursor・Claude Code・Codex AIスキルを学ぶなら
環境構築不要!AIエージェント開発を非エンジニアでも即実践【AI Agent Camp】

結論:どちらを選ぶべき?

通常の実運用では、ログの保存期間や要件に合わせて選ぶのが最適です。

  • 「最新のログと、その一世代前だけ残れば十分」 👉 手軽な オプション1(Zabbix標準機能) がおすすめ!

  • 「過去のログを日別で長期間保存したい」「圧縮して容量を節約したい」 👉 柔軟な オプション2(Linuxのlogrotate) が最適!

オプション1:Zabbix標準のログローテートを使用する場合(推奨・シンプル)

Zabbixサーバーのプロセスには、指定したファイルサイズに達した際に自動でログをローテートさせる機能が最初から組み込まれています。OS側の設定を弄る必要がないため、最もシンプルで確実な方法です。

⚙️ 設定手順

  1. Zabbixサーバーの設定ファイルを開きます。

    Bash

    sudo vi /etc/zabbix/zabbix_server.conf
    
  2. LogFileSize パラメータを見つけて編集します(例として最大10MBに設定する場合)。

    Plaintext

    LogFileSize=10
    
    • 0 自動ローテーションを無効化(ログが無限に肥大化するため、実運用では非推奨)。

    • 1〜1024 ログファイルの最大サイズをMB単位で指定。設定値に達すると、現在のログが zabbix_server.log.old にリネーム(上書き)され、新しい空のログファイルが自動作成されます。

  3. 設定を反映するため、Zabbixサーバーのプロセスを再起動します。

    Bash

    sudo systemctl restart zabbix-server
    

オプション2:Linuxの logrotate を使用する場合(長期保存・圧縮向け)

「過去ログを1週間分残したい」「容量節約のために過去ログを .gz 形式で圧縮したい」という場合は、OS標準の logrotate ツールを使用します。

⚙️ 設定手順

  1. まずはZabbix自身の設定ファイル(/etc/zabbix/zabbix_server.conf)を開き、Zabbix側のローテート機能を無効化(0に設定)します。

    Plaintext

    LogFileSize=0
    

    (※両方のローテート機能が有効になっていると、動作が衝突してログが破損する恐れがあります)

  2. 続いて、logrotate用の設定ファイルを新しく作成します。

    Bash

    sudo vi /etc/logrotate.d/zabbix-server
    
  3. ファイル内に以下の内容を記述して保存します。

    Plaintext

    /var/log/zabbix/zabbix_server.log {
        su zabbix zabbix
        daily
        rotate 7
        compress
        missingok
        notifempty
        create 0644 zabbix zabbix
        sharedscripts
        postrotate
            systemctl reload zabbix-server > /dev/null 2>/dev/null || true
        endscript
    }
    
    • daily 毎日ローテートを実行。

    • rotate 7 過去7日分のログを保持。

    • compress 過去ログを圧縮(.gz)して保存。

    • postrotate 内の記述: ローテート完了後、Zabbixサーバーにログファイルを安全に再読み込み(リロード)させます。

  4. 設定後、正しく動作するか以下のコマンドでテスト(デバッグ)を実行します。

    Bash

    sudo logrotate -d /etc/logrotate.d/zabbix-server
    

    (※ -d オプションはテストモードです。実際にはローテートを実行せず、設定の構文エラーなどをチェックできます)

まとめ

ログの管理はサーバーの安定運用、ひいては監視システム全体の信頼性に直結する重要なポイントです。

ディスク容量の圧迫によるトラブルや、プロセス高負荷時にログが正常に閲覧できないといった問題を防ぐためにも、構築段階で必ずどちらかの設定を入れておきましょう。もし運用のトラブルに直面した場合は、公式の「Zabbixトラブルシューティング」などのナレッジをベースに対処していくのが確実です。

自社の運用ポリシーに最適なログ管理を設定して、快適なZabbixライフを送ってください!

タイトルとURLをコピーしました