サーバーのパフォーマンスに問題が生じた場合、まず最初にすべきことは Linuxログを確認するシステム ログには、カーネルやさまざまなサービスなど、オペレーティング システムのさまざまなコンポーネントからの役立つ診断メッセージがいくつか記録されているため、障害の原因が見つかる可能性が高くなります。
ログ内のすべてのメッセージは、ユーザー、認証、サービスのシャットダウン、アプリケーションの障害など、オペレーティング システム内の特定のイベントの結果として生成されます。これらのイベントは、その重要度に応じて優先順位が異なります。Linux には次の種類のイベントがあります。
emerg- 失敗、最高優先度;alert- 緊急警告;crit- 重大なイベントerr- 通常のエラー;warn- 通常の警告notice- 通知;info- 情報メッセージ;debug- デバッグ情報
現在、Linuxにおける主なログ収集サービスは以下のとおりです。 rsyslog の三脚と システムジャーナルこれらは、ほとんどの最新のディストリビューション パッケージと連携し、独立して動作します。
rsyslog
このサービスのログは「/ var / log /” フォルダに通常のテキストファイルの形式で保存されます。ログメッセージはイベントの種類に応じて異なるファイルに保存されます。たとえば、“/var/log/auth.log”にはシステム内のユーザーの権限に関する情報が含まれており、”/var/log/kern.log” にはカーネルメッセージが含まれています。ファイル名はディストリビューションパッケージによって異なる場合があるため、設定ファイルを見て、どこに何があるのかを把握しましょう。/etc/rsyslog.d/50-default.conf"。
これらのルールは、各タイプのログメッセージを含むファイルを表示します。左側の部分に、次の形式でメッセージのタイプが表示されます。[ソース].[優先度]” と表示され、右側にはログファイルの名前が表示されます。メッセージの種類を書き込む際は “*” 文字を追加できます。これは空の値または “なし” をクリックしてリストから削除します。最初の 2 つのルールを詳しく見てみましょう。
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
最初のルールは、認証メカニズムから受信したすべてのメッセージが「/var/log/auth.log” ファイルに保存されます。すべての認証試行(成功したものも失敗したものも)がこのファイルに登録されます。2 番目のルールは、認証に関連するメッセージを除くすべてのメッセージが “/ var / log / syslog” ファイルです。これら 2 つのファイルは通常最もよく使用されます。次のルールはカーネル ログを保存するパスを定義します “カーン。*” およびメールサービスログ “郵便。*
ログファイルは、次のようなテキストエディタで開くことができます。 less, cat, tail. 「/var/log/auth.log" ファイル
less /var/log/auth.log
ファイルの各行は、アプリケーションまたはサービスから受信した個別のメッセージです。ソースに関係なく、すべてのメッセージは 5 つの形式を持ち、XNUMX つの部分で構成されます。スクリーンショットで強調表示されたメッセージを例に挙げてみましょう。
- メッセージのタイムスタンプ - 「12月06日 18:33:XNUMX」
- メッセージを送信したコンピュータの名前 - 「vds」
- メッセージを送信したアプリケーションまたはサービスの名前 - 「sshd」
- プロセスID - [653]
- メッセージ テキスト - 「188.19.42.165 ポート 2849 ssh2 からの mihail のパスワードが承認されました」
これは SSH への接続が成功した例です。
ログイン試行が失敗すると、次のようになります。
このファイルには、高度な権限を持つコマンドも記録されます。
開けてみましょう / var / log / syslog file
スクリーンショットで強調表示されているメッセージは、ネットワーク インターフェイスのシャットダウンに関するメッセージです。
長いテキストファイルから情報を検索するには grep ユーティリティ。受信したすべてのメッセージは pptpd 「/ var / log / syslog”ファイル。
grep 'pptpd' /var/log/syslog
診断中に使用できる tail ファイルの最後の数行を表示できるユーティリティ。コマンド「tail -f / var / log / syslog” を使用すると、ログの記録をリアルタイムで見ることができます。
サービス rsyslog 非常に柔軟で強力です。ローカルシステムだけでなくエンタープライズレベルのログ収集にも使用できます。完全なドキュメントは公式ウェブサイトでご覧いただけます。 https://www.rsyslog.com/
Linux でのログローテーション
ログの記録は継続的に行われるため、ファイルのサイズは常に大きくなります。ローテーションメカニズムにより、古いログの自動アーカイブと新しいファイルの作成が保証されます。ルールに応じて、毎日、毎週、毎月、またはサイズ制限ごとに実行できます。新しいログが作成されると、古いログは削除するか、メールで送信できます。ログのローテーションは次のように実行されます。 logrotate ユーティリティ。主な設定は「/etc/logrotate.conf” ファイル。ファイルの内容は “/etc/logrotate.d/フォルダ
新しいルールはメインの設定ファイルに記録できます。ただし、「/etc/logrotate.d/デフォルトでは、このディレクトリにはいくつかのファイルがあります
ファイルを見てみましょう「ログローテート「ログのローテーションルールを含む rsyslog サービス。
まず、ルールにはログ ファイルへのパスが含まれ、その後にすべてのガイドラインが曲線括弧で囲まれます。
- 回転7 - 保存するファイルの数 - 7
- daily - 毎日新しいファイルを作成する
- 圧縮する - 古いファイルを圧縮してアーカイブする
スクリーンショットを見ると、「/ var / log /” フォルダにはメインログがあります “syslog” と 7 つのアーカイブがあり、これは設定ファイル内のルールに一致します。
logrotateのより詳しい説明はマニュアルに記載されています。「ログローテート」コマンド
Linux ログの収集 - journald
丸太伐採サービス システムジャーナル 初期化システムの一部である systemdLinuxログファイルは「/var/log/ジャーナル/” は特別な形式で保存されており、 journalctl ユーティリティ。レコードのフォーマットは rsyslog.
Command 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
実行ファイルへのパスを属性として指定すると、ユーティリティはこのファイルによって送信されたすべてのメッセージを表示します。ファイル「/usr/bin/sudo” 04年15月18日 2020:XNUMX 以降。実際には、より高い権限で実行されたすべてのコマンドが表示されます。
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
ログファイルが占めるディスク容量を調べるには、次のコマンドを実行します。
journalctl --disk-usage
ログファイルを1Gbに制限するには、次のコマンドを実行します。
journalctl --vacuum-size=1G
バイナリファイルを開く
それでは、「/ var / log /すべてのログイン試行が保存される「」フォルダー。これらのファイルはバイナリであり、特別なプログラムでのみ開くことができます。
/ var / log / wtmp 成功したログイン試行に関する情報が含まれています。これを開くには last ユーティリティを使用します。
/ var / log / btmp - 失敗したログイン試行がすべて含まれています。高度な権限を持つ lastb で開くことができます。属性 -n ファイルの末尾から表示される行数を定義します。
/ var / log / lastlog - 各アカウントレコードの最後のログインアクションの時刻が含まれています。 最終ログ