Linuxログ管理
運用および保守担当者にとって、どのシステムが管理されていても、ログファイルの監視、呼び出し、管理はその重要な部分です。サーバーの問題の解決は、システム(エラー)ログの表示から始まります。この記事では、Linuxシステムでのログ管理について見ていきます。
ログ管理の概要
ログの紹介
システムログは、システムハードウェアチェック、カーネルアクション、ソフトウェアの起動、ユーザーアクションなどのさまざまな情報を記録するファイルです。システムログを通じて、システムのヘルスステータスの判断、システムの問題の検出、攻撃の証拠の発見などを行うことができます。
Linuxシステムのログサービス
古いシステムログは主にsyslog
サービスによって完了し、新しいシステムはより強力なrsyslog
サービスによって置き換えられsyslog
ますが、2つの操作方法は基本的に同じです。
ログサービスがオンになっているかどうかsystemctl
を確認し、コマンドを使用してサービスを確認して開始します
#查看服务是否启动
systemctl list-units | grep rsyslog
#若没有启动,则启动服务
systemctl start rsyslog.service
一般的なログとその機能
Linuxのシステムログは主に/var/log
ディレクトリに格納され、主なファイルとその機能を次の表に示します。
ログファイル名 | 効果 |
---|---|
cron | システムタイミングタスク関連のログ |
カップ | 情報ログを印刷する |
dmesg | システムブートカーネルのセルフdmesg チェック情報を記録し、コマンドを使用して表示します |
btmp | エラーメッセージをログインするためのログ(バイナリファイルはvimで表示できません。lastb コマンドを使用してください) |
wtmp | ログイン、ログアウト、シャットダウン情報のログを記録します(vimでは表示できません。last コマンドを使用します)。 |
最後のログ | 各ユーザーの最終ログイン時刻を記録し、lastlog コマンドを使用して表示します |
メールログ | メール情報を記録する |
マッサージ | システムのほとんどの重要な情報を記録します。問題がある場合は、このファイルをチェックしてください(記録レベル情報、以下に説明) |
安全な | 主にユーザーアカウントと承認に関連する検証と承認関連の情報を記録する |
さらに、一部のシステムインストールアプリケーションサービスは、デフォルトでこのディレクトリにログを記録しますが、rsyslog
サービス管理を使用する代わりに、アプリケーションには独自のログ管理サービスがあります。ソースパッケージを介してインストールされたアプリケーションサービスログは、そのインストールディレクトリに記録されます。
ログファイルの形式
基本的なログ形式には、主に4種類のコンテンツが含まれます
- イベントの時間
- イベントが発生したホスト名
- イベントが発生したサービスまたはプログラム(またはカーネル)(プロセスPIDを含む)
- イベント内容
ログ管理サービスのrsyslog構成
ログ管理サービスの構成形式
rsyslog
サービスの設定ファイルは/etc/rsyslog.conf
構成ファイルの形式:サービス名[接続記号]ログレベルログレコードの場所
その中で:
-
サービス名は、システムにインストールされているサービスの名前です。複数のサービス名が同じレベルを使用する場合は、コンマで区切ることができます
-
2つのルールの間(主に除外に使用)、セミコロンを使用して区切ります。詳細についてはサンプルを参照してください
-
接続記号は以下に示され、ログレベルも以下に示されます。
-
ログの場所はファイルの絶対パスだけではなく、次の方法があります
ログの場所 サンプル概要 絶対ファイルパス / var / log / messages システムデバイスファイル / dev / lp0(プリンター出力を使用) リモートホストに転送 @ 192.168.0.2:123 ユーザー名 rootまたは*(すべてのユーザーを意味します) ログを無視(記録しない) 〜
ログサービス管理の主なサービス名
サービス名 | 説明 |
---|---|
auth | ユーザーアカウントのセキュリティと認証情報(authprivとは異なります) |
authpriv | ユーザーアカウントのセキュリティと認証情報(プライベート) |
cron | システムタイミングタスク |
デーモン | さまざまなデーモン |
ftp | FTPデーモン関連のログ |
カーン | カーネルはログを生成します |
lpr | ログを印刷 |
郵便物 | メール送受信ログ |
ニュース | ニュースサーバー関連のログ |
Syslog | rsyslogサービスによって生成されたログ |
ユーザー | ユーザーカテゴリログ |
ログサービス構成ファイルコネクタ
ジョイナー | 説明 |
---|---|
* | すべてのユーザーレベルを表します |
。 | 後で指定されたログレベルよりも高いレベル(含む)のログが記録されます |
。= | 後で与えられるものと等しい等級 |
。! | グレードは後で与えられるものと等しくありません |
ログレベル
ログレベルは上から下に増加します
ログレベル | 説明 |
---|---|
デバッグ | 一般的なデバッグ情報 |
情報 | 基本的な通知情報 |
通知 | 一般的な注意情報 |
警告 | 一般的な警告メッセージ。現在、システムの動作には影響ありませんが、将来的に問題が発生する可能性があります |
間違い | 一部のシステム機能に影響を与える可能性があるエラーメッセージ |
クリティカル | 致命的な致命的なエラー、エラーメッセージよりも深刻 |
アラート | 警告ステータス情報、処理されない場合、システムの損傷を引き起こす可能性があります |
出現する | システムは利用できません |
また、.noneはログが記録されないことを意味し、一般的に除外状況で使用されます
ログサービスの構成例
auth,authpriv.* /var/log/auth.log #逗号分隔表示两个服务同样等级,都为所有
*.*;auth,authpriv.none -/var/log/syslog #所有服务的所有信息,但排除了上面两个服务
ログローテーション
先頭からのすべてのレコードが1つのファイルに記録されている場合、必然的に読み取りと書き込みが遅くなり、占有率が増加し、1つのファイルの損傷によってすべてのログが失われるリスクさえも増加します。この問題を解決するために、Linuxシステムはログローテーション方式を採用し、一定期間前のレコードを別のアーカイブファイルに切り取ってパッケージ化し、メインログファイルは新しい開始から記録を開始します。
ログファイルの名前付け(ローテーション)ルール
- 構成ファイルに「dateext」パラメーターがある場合、ログはファイルサフィックスとして日付を使用し、ログファイル名は重複せず、古いファイルの名前は変更されません
- このパラメータを指定しないと、ログファイルの名前が変更されます。たとえば
messages
、新しいファイルが有効になると、古いファイルが変更されmessages.1
、元のmessages.1
ファイルが変更されmessages.2
、など、時期尚早のファイルが圧縮され、最大シリアル番号を超える古いファイルが削除されます。
ログローテーションの設定ファイルは/etc/logrotate.conf
で、特定の情報は/etc/logrotate.d
ログローテーション情報を設定できるディレクトリに保存することもできます。特定のパラメーターのman logrotate
ヘルプを参照してください
パラメータ | 説明 |
---|---|
毎日 | 日ごとに回転 |
毎週 | 日ごとに回転 |
毎月 | 月ごとにローテーション |
n回転 | nは数値、保持するログファイルの数、0はバックアップなしを意味します |
圧縮する | 古いログを圧縮する |
作成[モード] [所有者] [グループ] | create 0640 root admなどの新しいログ許可モード、所有者、およびグループを作成します。 |
特定のファイルの設定は、次のような特別な構文に含める必要があります。
# no packages own wtmp -- we'll rotate it here
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
中かっこを使用して、特定のファイル名の後に設定を囲みます。次の設定は、1つのファイルに対してのみ有効です。