監視とロギングは、Ubuntu Server 22.04 の管理と保守において重要な側面です。単一のサーバーを運用している場合でも、複雑なインフラストラクチャを管理している場合でも、効果的な監視ツールを使用することで、システムパフォーマンスを追跡し、問題のトラブルシューティングを行い、信頼性を確保できます。このガイドでは、集中ロギングのセットアップ方法について説明します。使用するツールは rsyslog または syslog-ngです。さらに、リモートロギングサーバーへのログ転送や、Nagios、Zabbix、Prometheus といった一般的な監視プラットフォームとの Ubuntu Server の統合についても取り上げます。
01. Ubuntu Server 入門 – SysOSX: AI & Cloud
02. 初めての Ubuntu Server のセットアップ方法:初心者ガイド – SysOSX: AI & Cloud
03. Ubuntu Server のための Linux コマンドラインを極める – SysOSX: AI & Cloud
04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud
05. Ubuntu Server のネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud
06. Ubuntu Server へのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud
07.Ubuntu Server のパッチ適用と更新:包括的ガイド – SysOSX: AI & Cloud
08. Ubuntu Server のセキュリティ強化:堅牢化と保護のための実践的な手順 – SysOSX: AI & Cloud
10. Ubuntu Server のシステム監視ツール:包括的ガイド – SysOSX: AI & Cloud
サーバー監視が重要な理由
今日の常時接続のデジタル環境では、 組織の 97% が、事業継続のためにサーバー監視が極めて重要であると考えています(IDC、2024 年)。Ubuntu Server 22.04 のユーザーにとって、効果的な監視により次のことが可能になります:
📊 容量計画に役立つ実用的なインサイトを提供
🛠️ プロアクティブな検出により、潜在的な障害の 68% を防止
📈 CPU/RAM/ディスク使用量を追跡して、リソース割り当てを最適化
🔍 集中ロギングにより迅速なトラブルシューティングが可能
Ubuntu Server での集中ロギング
集中ロギングでは、複数のサーバーからのログを 1 か所に集約することで、インフラストラクチャ全体の問題を分析したりトラブルシューティングしたりしやすくなります。Ubuntu Server 22.04 は、次のような強力なロギングツールをサポートしています: rsyslog と syslog-ng。
集中ロギングの習熟
rsyslog と syslog-ng のクイック比較
| 機能 | rsyslog | syslog-ng |
|---|---|---|
| プロトコルサポート | UDP/TCP | UDP/TCP/TLS |
| フィルタリング | 基本 | 高度 |
| パフォーマンス | 高 | 非常に高 |
| 設定 | シンプル | 複雑 |
集中ロギングのための rsyslog のセットアップ
rsyslog は、信頼性が高く広く使われているロギングデーモンで、Ubuntu Server にプリインストールされています。集中ロギング用に設定するには、次の手順に従ってください:
- rsyslog をインストールします(まだインストールされていない場合):
sudo apt update && sudo apt install rsyslog
- rsyslog の設定ファイルを編集します:
ファイル/etc/rsyslog.confを開き、UDP または TCP ベースのログ転送を有効にするために次の行のコメントを解除してください:
# For UDP
#module(load="imudp")
#input(type="imudp" port="514")
# For TCP
#module(load="imtcp")
#input(type="imtcp" port="514")
- rsyslog サービスを再起動します:
sudo systemctl restart rsyslog
- ログ転送を設定します:
ログをリモートサーバーに転送するには、次の行を次のファイルに追加してください/etc/rsyslog.conf:
*.* @@remote-server-ip:514
- 置き換え対象:
remote-server-ipをロギングサーバーの IP アドレスに置き換えてください。UDP には@、TCP には@@を使用します。
集中ロギングのための syslog-ng のセットアップ
syslog-ng は、高度なフィルタリング機能とロギング機能を備えた堅牢なロギングツールです。セットアップ方法は次のとおりです:
- syslog-ng をインストールします:
sudo apt update && sudo apt install syslog-ng
- 集中ロギング用に syslog-ng を設定します:
次の設定ファイルを編集します/etc/syslog-ng/syslog-ng.conf:
source s_local {
system();
internal();
};
destination d_remote {
tcp("remote-server-ip" port(514));
};
log {
source(s_local);
destination(d_remote);
};
- 置き換え対象:
remote-server-ipをロギングサーバーの IP アドレスに置き換えてください。 - syslog-ng を再起動します:
sudo systemctl restart syslog-ng
リモートロギングサーバーへのログ転送
リモートサーバーへのログ転送は、分散環境における集中監視に不可欠です。次の 2 つは rsyslog と syslog-ng いずれも UDP または TCP 経由のログ転送をサポートしています。リモートロギングサーバーが指定されたポート(例:514)で受信ログを受け入れるように設定されていることを確認してください。
リモートロギングサーバーの設定
リモートロギングサーバーでは、 rsyslog または syslog-ng がログを受信するように設定されていることを確認してください:
-
rsyslogの場合は、次の行を次のファイルに追加してください/etc/rsyslog.conf:
module(load="imtcp")
input(type="imtcp" port="514")
-
syslog-ngの場合は、受信ログを受け入れるソースを定義してください:
source s_remote {
tcp(port(514));
};
Ubuntu Server と監視プラットフォームの統合
Nagios、Zabbix、Prometheus などの監視プラットフォームは、サーバーの健全性、パフォーマンス、リソース使用率に関するリアルタイムのインサイトを提供します。Ubuntu Server 22.04 をこれらのツールと統合する方法は次のとおりです。
Nagios:クラシックなソリューション
Nagios は、サーバーパフォーマンスを追跡し、潜在的な問題についてアラートを発する強力な監視ツールです。Nagios を Ubuntu Server と統合するには、次のようにします:
- Nagios エージェントをインストールします:
sudo apt update && sudo apt install nagios-nrpe-server nagios-plugins
- NRPE を設定します:
ファイル/etc/nagios/nrpe.cfgを編集して、Nagios が監視するコマンドを定義してください:
command[check_load]=/usr/lib/nagios/plugins/check_load -w 5,4,3 -c 10,8,6
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
- NRPE を再起動します:
sudo systemctl restart nagios-nrpe-server
Zabbix:エンタープライズグレードの監視
Zabbix は、豊富なカスタマイズオプションを備えたエンタープライズグレードの監視プラットフォームです。Zabbix を Ubuntu Server と統合するには、次のようにします:
- Zabbix エージェントをインストールします:
sudo apt update && sudo apt install zabbix-agent
- Zabbix エージェントを設定します:
ファイル/etc/zabbix/zabbix_agentd.confを編集し、サーバーとホスト名を設定してください:
Server=your-zabbix-server-ip
Hostname=UbuntuServer22.04
- Zabbix エージェントを再起動します:
sudo systemctl restart zabbix-agent
Prometheus + Grafana:モダンな監視スタック
Prometheus は、スケーラビリティと柔軟性を重視して設計されたモダンな監視ツールです。Prometheus を Ubuntu Server と統合するには、次のようにします:
- Node Exporter をインストールします:
Node Exporter は、Prometheus にメトリクスを公開するための軽量エージェントです。
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar xvf node_exporter-1.7.0.linux-amd64.tar.gz
sudo mv node_exporter-1.7.0.linux-amd64/node_exporter /usr/local/bin/
- Node Exporter を実行します:
sudo nohup /usr/local/bin/node_exporter &
- Prometheus を設定します:
Ubuntu サーバーを Prometheus に追加するために、prometheus.ymlファイルを編集してください:
scrape_configs:
- job_name: 'ubuntu_servers'
scrape_interval: 15s
static_configs:
- targets: ['server1:9100', 'server2:9100']
Grafana ダッシュボードのアイデア:
- クラスタ全体のリソースヒートマップ
- 予測的なディスク容量予測
- 異常検出アラート
プロの監視戦略
- ログ保持ポリシー
- 7 日 – 重要なシステム
- 30 日 – 一般的なサーバー
- 1 年 – コンプライアンスシステム
- アラートしきい値のベストプラクティス
- 🟢 警告:ディスク使用量 75%
- 🔴 重大:ディスク使用量 90%
- 📈 自動スケールトリガー:CPU 70% が持続
- コスト最適化
- VictoriaMetrics を使用して、通常の Prometheus の 10 倍のストレージ圧縮を実現します
- デバッグレベルのエントリに対してログサンプリングを実装します
モダンなソリューション:階層型ログ管理
賢明なチームは保持戦略を組み合わせます:
| 階層 | 保持期間 | ストレージタイプ | ユースケース |
|---|---|---|---|
| ホット | 7 日 | NVMe/SSD | アクティブなトラブルシューティング |
| ウォーム | 30 日 | HDD/クラウドストレージ | 事後分析 |
| コールド | 1 年以上 | Glacier/S3 Deep Archive | コンプライアンス/監査 |
実装例:
# Use logrotate with AWS S3 lifecycle rules
/var/log/nginx/*.log {
daily
rotate 7
compress
postrotate
/usr/bin/aws s3 sync /var/log/nginx/ s3://logs-hot/
find /var/log/nginx/ -type f -mtime +7 -exec aws s3 cp {} s3://logs-cold/ \;
endscript
}
保持期間を再評価するための主な要因
- コンプライアンス要件
- GDPR:個人データは最長 6 年
- SOX:金融システムは 7 年
- PCI-DSS:3 か月の即時利用可能性を備えた 1 年
- インシデント調査のニーズ
- APT 攻撃は、侵害から 6 か月以上経ってから発見されることがよくあります(Mandiant M-Trends 2024)
- コスト最適化戦略
- 7 日後にログを圧縮します:
zstd --ultra -22(80% 以上の圧縮) - カラムナー形式(Parquet/ORC)を使用して、分析ストレージを 60% 小さくします
- 7 日後にログを圧縮します:
改訂版の推奨事項
ほとんどの本番環境の重要なシステム:
- ホットアクセス:7-14 日(SSD/NVMe)
- コンプライアンスアーカイブ:1 年以上(コールドストレージ)
- セキュリティログ:最短 180 日(CIS Benchmark v4)
コンプライアンス設定の例:
# Auditd rules for PCI-DSS
-a always,exit -F arch=b64 -S all -F path=/var/log/payment.log -F perm=wa -k payment_logs
よくある質問:Ubuntu Server の監視
Q:サーバーメトリクスはどのくらいの頻度で確認すべきですか?
A:– 本番システムでは 15 秒間隔
- 重要でないワークロードでは 1 分間隔
Q:Docker コンテナを監視できますか?
A:はい!次を使用してください:
- コンテナメトリクス用の cAdvisor
- Prometheus Docker Swarm exporter
Q:エンタープライズ監視の費用はいくらですか?
A:オープンソースソリューションは無料です。エンタープライズ版:
- Nagios XI:約 $1,995/年
- Zabbix Enterprise:約 $1,700/年
- Grafana Cloud:約 $50+/月
参考ドキュメント:
Syslog-ng: https://syslog-ng.github.io/
Rsyslogd: https://www.rsyslog.com/doc/index.html
まとめ
監視とロギングは、Ubuntu Server の健全性とパフォーマンスを維持するために不可欠です。 rsyslog または syslog-ngによる集中ロギングのセットアップ、リモートサーバーへのログ転送、Nagios、Zabbix、Prometheus といったプラットフォームとの統合により、インフラストラクチャに関する貴重なインサイトを得て、円滑な運用を確保できます。
次回予告: Ubuntu Server の監査とコンプライアンスのベストプラクティス
効果的なシステム監視は、安全でコンプライアンスに準拠したサーバー環境を維持するための一部にすぎません。次回の記事では、 監査とコンプライアンスのベストプラクティス (Ubuntu Server 向け)について詳しく解説します。PCI-DSS や GDPR などのコンプライアンス標準の概要、 auditctlを使った監査ルールの設定、疑わしいアクティビティを特定するための監査レポートの生成などのトピックを取り上げます。お見逃しなく!
3 thoughts on “11. Centralized Logging for ubuntu server: a must read guide”