テックブログ

ロギングの流れ

はじめまして。H.Uでございます。

今回は初めてのブログを書く機会ですので、LPIC1 取得の際に気になった部分をまとめました。

資格勉強の閑話として拝見頂ければ幸いでございます。

システムログのお話

エンジニアになり、見ない日が無いシステムログ

Linuxでは syslog、rsyslog、syslog-ng、systemd-journal 等々。

現在の ロギング は rsyslog と systemd-journal の組み合わせがよく利用されているので、

今回は systemd-journal ~ rsyslog のロギング の流れをご紹介したいと思います。

systemd-journal のロギング

まずは、systemd-journal についてです。

今回は Apache を利用して、ロギングの流れを確認してみます。

現在のApacheは停止状態です。

ここでわざと設定ファイルに間違えた記述をしてみます。

さらに、間違えた記述の状態で起動してみます。

当然、起動しません。

しかし、journalctl -xe という出力が表示されました。

journalctl (-x : 詳細 -e :最新の部分を表示) はsystemd-journaldが集めたログを表示するコマンドです。

それでは、systemd-journalのログを確認してみます。

===================================================================

— Unit httpd.service has finished shutting down.
4月 09 01:09:44 WEB02 systemd[1]: Starting The Apache HTTP Server…
— Subject: Unit httpd.service has begun start-up
— Defined-By: systemd

— Unit httpd.service has begun starting up.
4月 09 01:09:44 WEB02 httpd[11095]: AH00526: Syntax error on line 359 of /etc/httpd/conf/httpd.conf:
4月 09 01:09:44 WEB02 httpd[11095]: Invalid command ‘abcdefghijklmnopqrstuvwxyz’, perhaps misspelled or defined by a module not included in the server configuration
4月 09 01:09:44 WEB02 systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
4月 09 01:09:44 WEB02 systemd[1]: httpd.service: Failed with result ‘exit-code’.
— Subject: Unit failed
— Defined-By: systemd

— The unit httpd.service has entered the ‘failed’ state with result ‘exit-code’.
4月 09 01:09:44 WEB02 systemd[1]: Failed to start The Apache HTTP Server.
— Subject: Unit httpd.service has failed
— Defined-By: systemd

— The result is failed.

===================================================================

→ 簡単なログですが、しっかりと出力されています。

Apacheの状態もfailedになっています。

次に正しい設定ファイルで起動してみます。

===================================================================

4月 09 01:28:41 WEB02 systemd[1]: Starting The Apache HTTP Server…
— Subject: Unit httpd.service has begun start-up
— Defined-By: systemd

— Unit httpd.service has begun starting up.
4月 09 01:28:42 WEB02 systemd[1]: Started The Apache HTTP Server.
— Subject: Unit httpd.service has finished start-up
— Defined-By: systemd

— Unit httpd.service has finished starting up.

— The start-up result is done.

===================================================================

今回は start したことが、ログにしっかりと記録されています。

Apacheの状態もactive (running) に変わりました。

ここまでは systemd-journal がサービス(今回はApache) のロギングする様子を簡単に確認しました。

次は rsyslog + systemd-journal の 構造についてです。

rsyslog + systemd-journal の構造

まずは上の概略図を確認してみてください。

これは systemd-journal ~ rsyslog 一連の流れ です。

一つ前の見出しで確認できたのが、サービス → systemd-journal に出力されるロギングの流れです。

次は systemd-journal → rsyslog の ロギングの流れです。

systemd-journal が記録した ログは ソケットファイルによって rsyslog へ出力されます。

( ソケットファイル とは、情報をやり取りするために必要なファイルだと考えてください。)

ソケットファイルは journal.conf で設定できます。

今回のソケットファイルは /usr/lib/systemd/system/systemd-journald.socket の様です。

Rsyslogのロギング

最後に、rsyslogのロギングの仕方です。

こちらはrsyslog.conf のデフォルトに近い設定です。

conf ファイルを見ると、いくつかの module が load されていることが確認できます。

今回は imjournal と imuxsock だけ簡単にご紹介致します。

 ・imjournal

imjournal は journal からログを収集する機能を持つモジュールです。
 ・imuxsock

imuxsock はアプリケーションからのメッセージを受け取る機能を持つモジュールです。

今回はimjournal のみ利用するのでimuxsockについては簡単な説明だけにします。

しかし、ロギングの詳細が知りたい場合はimuxsockについて調べるのも面白いかもしれません。

( 一例ですが、sftp のchroot ログ設定時で利用します。)

少し横道に逸れたので、ロギングについてへ話を戻します。

Rsyslog は セレクタ と アクション という設定でロギングします。

セレクタは ファシリティ と プライオリティ に分かれており、

ファシリティはメッセージの機能を、プライオリティはメッセージの重要度を設定できます。

また、アクションは出力先を指定できます。

セレクタ (ファシリティ , プライオリティ )についての詳細は下記の表に記載します。

表 ファシリティ一覧

今回は Apache を利用して、systemd-journal ~ rsyslog のロギング の流れを確認するだけですので、

簡単なセレクタ と アクション を設定します。

セレクタとアクション

ファシリティがdaemon , プライオリティが * ( 全てのプライオリティ) 、

アクションが /var/log/test.conf の rsyslog 設定です。

それでは、 systemd -journal と同様に Apache を 起動して、

rsyslog でロギング します。

rsyslog

systemd-journal に出力されていた Apache のログの一部が出力されました。

これが systemd-journal ~ rsyslog 一連の流れ です。

今回は基本的なロギングについてのお話でした。

これからも LPIC 出題される複雑なシステムを解説しながら、ご紹介できればと考えています。

今後ともネットアシストをよろしくお願い致します。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください