知識ベース Profitserver サービスの操作方法の簡単な説明
メイン 知識ベース Linux ログの読み方とその場所

Linux ログの読み方とその場所


サーバーのパフォーマンスに問題が発生した場合、まず最初に行うべきことはLinuxのログを確認することです。システムログには、カーネルや各種サービスなど、オペレーティングシステムのさまざまなコンポーネントからの役立つ診断メッセージが記録されているため、そこで障害の原因を見つけることができるでしょう。

ログ内のすべてのメッセージは、ユーザー、認証、サービスのシャットダウン、アプリケーションの障害など、オペレーティング システム内の特定のイベントの結果として生成されます。これらのイベントは、その重要度に応じて優先順位が異なります。Linux には次の種類のイベントがあります。

  1. emerg - 失敗、最高優先度;
  2. alert - 緊急警告;
  3. crit - 重大なイベント
  4. err - 通常のエラー;
  5. warn - 通常の警告
  6. notice - 通知;
  7. info - 情報メッセージ;
  8. debug - デバッグ情報

現在、Linuxにおける主要なログ収集サービスはrsyslogとsystemd-journaldです。これらはほとんどの最新のディストリビューションパッケージに含まれており、それぞれ独立して動作します。

rsyslog

このサービスのログは、「 /var/log/」フォルダに通常のテキストファイル形式で保存されます。ログメッセージは、イベントの種類に応じて異なるファイルに格納されます。たとえば、「 /var/log/auth.log」にはシステムにおけるユーザーの認証情報が、「/var/log/kern.log 」にはカーネルメッセージが保存されます。ファイル名は配布パッケージによって異なる場合があるため、設定ファイル「 /etc/rsyslog.d/50-default.conf 」を見て、各ファイルの場所を確認してみましょう。

Linux の概要 rsyslog

これらのルールは、各タイプのログメッセージを含むファイルを表示します。左側には「[ソース].[優先度]」の形式でメッセージの種類が表示され、右側にはログファイルの名前が表示されます。メッセージの種類を書き込む際に「*」文字を追加できます。これは空の値、つまりリストから削除される「なし」を意味します。最初の 2 つのルールを詳しく見ていきましょう。

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

最初のルールは、認証メカニズムから受信したすべてのメッセージが「 /var/log/auth.log 」ファイルに記録されることを意味します。すべての認証試行(成功したものと失敗したもの両方)がこのファイルに記録されます。2番目のルールは、認証に関連するメッセージを除くすべてのメッセージが「/var/log/syslog 」ファイルに記録されることを示しています。これら2つのファイルは通常、最もよく使用されます。次のルールは、カーネルログ「 kern.*」とメールサービスログ「mail.*」を保存するパスを定義します。

ログファイルは、 less、cat、tailなどのテキストエディタを使って開くことができます。「 /var/log/auth.log」ファイルを開いてみましょう。

less /var/log/auth.log
SSH を使用して、Линукс о неудачной попытке авторизации SSH を実行します。

ファイルの各行は、アプリケーションまたはサービスから受信した個別のメッセージです。ソースに関係なく、すべてのメッセージは 5 つの形式を持ち、XNUMX つの部分で構成されます。スクリーンショットで強調表示されたメッセージを例に挙げてみましょう。

  1. メッセージのタイムスタンプ - 「12月06日 18:33:XNUMX」
  2. メッセージを送信したコンピュータの名前 - 「vds」
  3. メッセージを送信したアプリケーションまたはサービスの名前 - 「sshd」
  4. プロセスID - [653]
  5. メッセージ テキスト - 「188.19.42.165 ポート 2849 ssh2 からの mihail のパスワードが承認されました」

これは SSH への接続が成功した例です。

ログイン試行が失敗すると、次のようになります。

Linux ロジック キット

このファイルには、高度な権限を持つコマンドも記録されます。

Linux をインストールする

/var/log/syslogファイルを開いてみましょう

スクリーンショットで強調表示されているメッセージは、ネットワーク インターフェイスのシャットダウンに関するメッセージです。

ウリティア ロゴ回転

長いテキストファイルから情報を検索するには、grepユーティリティを使用してください。pptpdサービスから受信したすべてのメッセージは、「/var/log/syslog 」ファイルに保存されています。

grep 'pptpd' /var/log/syslog
「/etc/logrotate.d/rsyslog」

診断中は、ファイルの最後の数行を表示できるtailユーティリティを使用できます。「 tail -f /var/log/syslog」コマンドを使用すると、ログの記録をリアルタイムで監視できます。

rsyslogサービスは非常に柔軟で強力です。ローカルシステムだけでなく、エンタープライズレベルのログ収集にも使用できます。詳細なドキュメントは公式ウェブサイト(https://www.rsyslog.com/ )でご覧いただけます。

Linux でのログローテーション

ログ記録は継続的に行われるため、ファイルサイズは常に増加します。ローテーションメカニズムにより、古いログの自動アーカイブと新しいファイルの作成が保証されます。ルールに応じて、ローテーションは毎日、毎週、毎月、またはサイズ制限に基づいて実行されます。新しいログが作成されると、古いログは削除されるか、メールで送信されます。ログのローテーションは、logrotateユーティリティによって実行されます。主要な設定は「 /etc/logrotate.conf 」ファイルにあります。ファイルの内容は「 /etc/logrotate.d/」フォルダでも処理されます。

新しいルールはメインの設定ファイルに記録できます。ただし、「 /etc/logrotate.d /」に別のファイルを作成するのが最善です。デフォルトでは、このディレクトリにはいくつかのファイルがあります。

Настраиваем ротацию логов в Линукс

rsyslogサービスのログのローテーションルールが含まれているファイル「/etc/logrotate.d/rsyslog 」を見てみましょう。

Пример вывода всех обок pptpd в лог-файлах

まず、ルールにはログ ファイルへのパスが含まれ、その後にすべてのガイドラインが曲線括弧で囲まれます。

  • 回転7 - 保存するファイルの数 - 7
  • daily - 毎日新しいファイルを作成する
  • 圧縮する - 古いファイルを圧縮してアーカイブする
Учимся читать логи Линукс

スクリーンショットを見ると、「/var/log/ 」フォルダにはメインログ「 syslog 」と7つのアーカイブがあり、これは設定ファイルのルールと一致していることがわかります。

logrotate の詳細については、マニュアルを参照してください。「man logrotate」コマンドを実行してください。

Linux ログの収集 - journald

ログ収集サービスsystemd-journaldは、初期化システムsystemdの一部です。Linux のログファイルは「 /var/log/journal/ 」に特殊な形式で保存され、 journalctlユーティリティを使用して開くことができます。レコードの形式はrsyslogとまったく同じです。

属性を指定せずにjournalctlコマンドを実行すると、すべてのレコードが表示されますが、大きなログには適していません。このユーティリティのオプションをいくつか見ていきましょう。

  • journalctl -b - 前回の開始以降のすべての記録を表示
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - 特定の期間内の記録を表示する
  • journalctl -u pptpd - 特定のサービスの記録を表示する
  • journalctl -k - カーネルメッセージを表示
  • journalctl -p err - 特定の優先度のメッセージを表示します。この場合、優先度の高いメッセージ (crit、alert、emerg) です。
  • journalctl -f - メッセージをリアルタイムで表示

より柔軟に対応するために、これらのオプションを組み合わせることができます。pptpdサービスのすべてのエラーを表示してみましょう。

journalctl -u pptpd -p err
ユーティリタ 最後

実行可能ファイルへのパスを属性として指定すると、このユーティリティはそのファイルによって送信されたすべてのメッセージを表示します。2020年2月18日午前4時15分以降にファイル「/usr/bin/sudo」によって送信されたすべてのメッセージを表示してみましょう。実際には、より高い権限で実行されたすべてのコマンドが表示されます。

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
コマンド lastb

ログファイルが占めるディスク容量を調べるには、次のコマンドを実行します。

journalctl --disk-usage

ログファイルを1Gbに制限するには、次のコマンドを実行します。

journalctl --vacuum-size=1G

バイナリファイルを開く

それでは、すべてのログイン試行が保存される「 /var/log/ 」フォルダ内の特別なファイルを見てみましょう。これらのファイルはバイナリファイルであり、専用のプログラムでしか開くことができません。

/var/log/wtmpには、ログイン成功に関する情報が含まれています。last ユーティリティを使用して開いてください。

ユーティリティ lastlog

/var/log/btmp - ログイン失敗の試行履歴がすべて記録されています。lastb コマンドで高度な権限を指定して開くことができます。-nオプションは、ファイルの末尾から表示する行数を指定します。

/var/log/lastlog - 各アカウントレコードの最終ログイン時刻が記録されています。lastlogコマンドで開くことができます。

❮ 前の記事 Linuxテキストエディタ
次の記事❯ CentOS でネットワーク インターフェイスを構成する方法

VPSについてお問い合わせください

私たちは昼夜を問わずいつでもお客様のご質問にお答えする準備ができています。