ウェブサイト検索

UbuntuのログをGraylogサーバーに送信する方法


UbuntuのログをGraylogサーバーに送信する方法

Graylogは、集中型ログ管理システムのプラットフォームです。DevOpsの世界で最も人気のあるログ管理システムの一つであり、マルチプラットフォームのサポートがあり、DockerやKubernetesなどのコンテナ環境にインストールすることができます。

Graylogはログ管理システムとして、さまざまなアプリケーションやシステムに対して複数の入力をサポートしています。Unix系オペレーティングシステム用のSyslog入力、Windowsシステム用のWindows EventLog、カスタムアプリケーション用のGELF(Graylog拡張ログフォーマット)を使用できます。

このチュートリアルでは、UbuntuマシンからGraylogサーバーにログを送信する方法を学びます。このデモでは、最新のUbuntu 22.04マシンをクライアントとして、Graylogサーバーv4.3を使用します。Debian 11でGraylogサーバーを設定する方法を知りたい場合は、こちらをご覧ください。

前提条件

  • Graylogサーバーがインストールされています - このデモはDebianサーバーにインストールされたGraylog v4.3を使用しています。
  • Ubuntuクライアントマシン - このドームはUbuntu 22.04サーバーを使用しています。
  • sudo管理者権限を持つ非ルートユーザー。

Graylog入力の設定

Ubuntuクライアントマシンの設定を始める前に、Graylogサーバーで入力を設定する必要があります。

Graylogは、Syslog、Journald、Windowsイベントログ、生のテキスト、ファイルなど、さまざまな種類の入力をログシステムにサポートしています。

Linuxシステムでは、Syslog入力を使用してログをGraylogサーバーに簡単に送信できます。GraylogサーバーでSyslogタイプの入力を作成するだけで、特定のポートとIPアドレスで自動的に実行されます。

ウェブブラウザを開いて、Graylogサーバーのインストール先(つまり、http://graylog.howtoforge.local/)にアクセスします。デフォルトのユーザーであるadminと強力なパスワードを使用してGraylogサーバーにログインします。

今、システムメニューをクリックし、入力をクリックすると、新しいページが表示されます。

ドロップダウン入力ページで、ここで入力タイプ「Syslog UDP」を選択し、「新しい入力を開始」ボタンをクリックします。

これからGraylogサーバーでSyslog入力を設定する必要があります:

  • ここではノードが自動的に選択されるので、そのままデフォルトのままにしてください。
  • 新しい入力のタイトルを入力してください。例えば、「Syslog Linux UDP」のように。
  • ここでのバインドアドレスは、入力用のIPアドレスを指定できます。これはサーバーのローカルIPアドレスであるか、サーバー上のすべてのIPアドレスで入力を実行するために0.0.0.0を使用することもできます。
  • ここでは、入力用に別のポートを使用できます。他のサービスがそのポートで実行されていないことを確認し、ポートが1から1024の範囲内にないことを確認してください。このデモでは、UDPポート5148を使用しています。

今すぐ保存ボタンをクリックして、入力の作成を確認してください。

現在、入力ページでは、Graylogサーバーで実行されているすべての利用可能な入力が表示されます。下のスクリーンショットでは、入力"Syslog Linux UDP"がUDPポート5148で、バインドアドレス0.0.0.0で実行されていることがわかります。これは、サーバー上のすべてのIPアドレスで実行されていることを意味します。

Ubuntuクライアントを構成してログを送信する

今、UbuntuクライアントマシンをGraylogサーバーにログを送信するために設定する時です。これはRsyslogサービスを使用して行うことができます。

まず、以下のsshコマンドを使ってUbuntuマシンに接続します。

ssh user@SERVER-IP

UbuntuマシンでRsyslogパッケージを確認し、それがインストールされていることを確認してください。

sudo dpkg -l | grep rsyslog
sudo apt info rsyslog

下のスクリーンショットでは、rsyslogパッケージがデフォルトでインストールされていることがわかります。フィールドの「ii」は、インストールされていることを意味します。

次のコマンドを使用してRsyslogサービスを確認してください。

sudo systemctl is-enabled rsyslog
sudo systemctl status rsyslog

rsyslogサービスが有効であることがわかるでしょう。これは、システムの起動時に自動的に実行されることを意味します。そして、rsyslogサービスの現在の状態は実行中です。

UbuntuクライアントマシンからGraylogサーバーにログを送信するために、rsyslogの新しい追加設定を作成する必要があります。rsyslogのデフォルトの設定は「/etc/rsyslog.conf」ファイルで、追加のrsyslog設定は「/etc/rsyslog.d」ディレクトリに保存できます。

nanoエディタを使って新しい追加のrsyslog設定「/etc/rsyslog.d/60-graylog.conf」を作成します。

sudo nano /etc/rsyslog.d/60-graylog.conf

次の設定をファイルに追加してください。

*.*@192.168.5.10:5148;RSYSLOG_SyslogProtocol23Format

作業が完了したら、ファイルを保存して閉じてください。

ここにあるIPアドレスは192.168.5.10で、これはUDPポート5148で入力を実行しているGraylogサーバーのIPアドレスです。

新しい変更と新しい構成を適用するために、以下のコマンドを使用してrsyslogサービスを再起動してください。

sudo systemctl restart rsyslog

そして、あなたはログをGraylogサーバーに送信するための基本的なrsyslog設定を完了しました。

Graylogサーバーのログを確認しています

さあ、ウェブブラウザに戻って、Graylogダッシュボードに移ります。上部の検索メニューをクリックすると、以下のようにUbuntuクライアントマシンのすべてのログが表示されます。

Graylog検索ダッシュボードから、サーバーやアプリケーションのログメッセージをフィルタリングしたり、リアルタイムでログメッセージを確認したり、特定の時間枠からのログメッセージを確認したりすることができます。

結論

おめでとうございます!あなたは、Rsyslogサービスを使用して、ログをGraylogサーバーに送信するためにUbuntuクライアントマシンを正常に設定しました。また、Graylogサーバーで新しい入力タイプのSyslog UDPを作成することにより、Graylog Inputsの基本設定も学びました。ログを送信する別の方法として、Syslog TCP、ファイル、JSON、およびElasticのbeatsを使用することができます。

関連記事: