RHELのzeitgeistやsyslog-ngによる情報収集と可視化

RHELのzeitgeistやsyslog-ngによる情報収集と可視化

この記事では、RHEL環境でzeitgeistとsyslog-ngを使用して、システム情報を収集し、可視化する方法について説明します。ログ管理の効率化と重要なデータへのアクセスを向上させるための手順を示します。

zeitgeistの概要とインストール

zeitgeistは、アクティビティ記録フレームワークで、システム操作の履歴を管理します。

sudo dnf install -y zeitgeist zeitgeist-datahub

zeitgeistデータハブの起動と確認

zeitgeist-datahubを起動し、デーモンを有効化します。

systemctl start zeitgeist-datahub
systemctl enable zeitgeist-datahub
systemctl status zeitgeist-datahub

zeitgeistクエリの使用

記録されたデータをクエリで確認します。

zeitgeist-daemon --replace --log-level=DEBUG
zeitgeist-query-cli --uri

zeitgeistのGUIツールの導入

GUIでの操作を容易にするために、zeitgeist関連のGUIツールをインストールします。

sudo dnf install -y gnome-activity-journal
gnome-activity-journal

syslog-ngの概要とインストール

syslog-ngは、柔軟なログ収集および転送システムです。

sudo dnf install -y syslog-ng

syslog-ngの基本設定

設定ファイルを編集してログ収集の動作をカスタマイズします。

sudo nano /etc/syslog-ng/syslog-ng.conf

基本的な設定例:

source s_local {
system();
internal();
};
destination d_files {
file("/var/log/messages");
};
log {
source(s_local);
destination(d_files);
};

syslog-ngの起動と確認

syslog-ngサービスを起動し、ログを確認します。

systemctl start syslog-ng
systemctl enable syslog-ng
systemctl status syslog-ng
tail -f /var/log/messages

リモートログ収集の設定

リモートサーバーからのログを収集する設定を追加します。

source s_network {
syslog(ip("0.0.0.0") port(514));
};

リモート送信側の設定:

logger -n [server_IP] -P 514 "Test message from remote server"

可視化ツールとの統合

ElasticsearchやKibanaを利用して、syslog-ngログの可視化を設定します。

sudo dnf install -y elasticsearch kibana
sudo systemctl start elasticsearch
sudo systemctl enable kibana

Kibanaの設定ファイルを編集し、ブラウザでアクセスします。

nano /etc/kibana/kibana.yml

zeitgeistとsyslog-ngの統合

zeitgeistデータをsyslog-ng経由でログとして保存するカスタムスクリプトの例:

# !/bin/bash

zeitgeist-query-cli --uri > /var/log/zeitgeist.log

このスクリプトを定期実行するようcronに設定します。

crontab -e
*/5 * * * * /path/to/zeitgeist_to_log.sh

ログローテーションの設定

収集したログを管理するため、logrotateを設定します。

sudo nano /etc/logrotate.d/syslog-ng

設定例:

/var/log/messages {
weekly
rotate 4
compress
notifempty
missingok
}

トラブルシューティング

問題が発生した場合の診断手順:

  • サービスが起動しているか確認: systemctl status
  • 設定ファイルの構文チェック: syslog-ng --syntax-only
  • ログの調査: journalctl -xe