オープンソースカンファレンス2023
Online/Spring

Linuxシステムログ入門
ALJ Education Plus 株式会社
（LPI-Japanアカデミック認定校）
代表取締役 山本 篤美© LPI-Japan / EDUCO all rights reserved.

自己紹介
■自己紹介

#LinuC学習中

ALJ Education Plus 株式会社
（LPI-Japanアカデミック認定校）
代表取締役 山本 篤美

・開発/登壇実績• 新入社員/中途社員向け 研修• IT資格取得系 研修• IT系の専門学校

開発/サーバ/ネットワーク系の授業© LPI-Japan all rights reserved.

2

LinuCレベル１／レベル２ Version10.0とは■LinuCとは#LinuC学習中

クラウド時代の即戦力エンジニアであることを証明するLinux技術者認定資格✓現場で「今」求められている新しい技術要素に対応• オンプレミス／仮想化を問わず様々な環境下でのサーバー構築• 他社とのコラボレーションの前提となるオープンソースへの理解• システムの多様化に対応できるアーキテクチャへの知見✓全面的に見直した、今、身につけておくべき技術範囲を網羅
今となっては使わない技術やコマンドの削除、アップデート、新領域の取り込み✓Linuxの範疇だけにとどまらない領域までカバー
セキュリティや監視など、ITエンジニアであれば必須の領域もカバー© LPI-Japan all rights reserved.

3

新しくなった「LinuC」の紹介■Version10.0と従来の出題範囲の比較
テーマ
仮想化技術
LinuC-1

オープンソースの文化
その他
仮想化技術
システムアーキテクチャ

LinuC-2

Version 10.0
・仮想マシン／コンテナの概念
・クラウドセキュリティの基礎・オープンソースの定義や特徴
・コミュニティやエコシステムへの貢献→（Version10.0で削除）
・仮想マシンの実行と管理（KVM）
・コンテナの仕組みとDockerの導入
・クラウドサービス上のシステム構成
・高可用システム、スケーラビリティ、他・統合監視ツール（zabbix）

その他

・自動化ツール（Ansible）→（Version10.0で削除）#LinuC学習中
従来←（Version10.0で新設）←（Version10.0で新設）
アクセシビリティ、ディスククォータ、プリンタの管理、SQLデータ管理、他←（Version10.0で新設）←（Version10.0で新設）←（Version10.0で出題範囲に含む）
RAID、記憶装置へのアクセス方法、
FTPサーバーの保護、他© LPI-Japan all rights reserved.

4新しくなった「LinuC」の紹介■検索：LinuC→

https://linuc.org/#LinuC学習中© LPI-Japan all rights reserved.

5新しくなった「LinuC」の紹介© LPI-Japan all rights reserved.

6

セミナー内容#LinuC学習中

今回のテーマLinuxシステムログ入門
主題

1.09
重要なシステムサービス

副題

1.09.2システムのログ© LPI-Japan all rights reserved.

7

セミナー内容
主題

1.09
重要なシステムサービス

副題

1.09.2システムのログ

重要度

5・rsyslogデーモンを設定できる
これには、ログ出力を中央のサーバに送信するようログデーモンを設定できる。
または中央のログサーバーとしてログ出力を受け入れることも含まれる。

概要
・systemdのジャーナルサブシステムを使用できる・ログのローテーション、圧縮、削除を自動化できる© LPI-Japan all rights reserved.

8

セミナー内容■目次
1.ログ管理の概要
ログ管理の全体像
2.ロギング機能
syslogの設定方法
rsyslogの設定方法
systemd-jounalの設定方法
3.ログローテーション
loglotare.confの設定方法© LPI-Japan all rights reserved.

9

セミナー内容■目次
1.ログ管理の概要
ログ管理の全体像
2.ロギング機能
syslogの設定方法
rsyslogの設定方法
systemd jounalの設定方法
3.ログローテーション
loglotare.confの設定方法© LPI-Japan all rights reserved.

10

1.ログ管理の概要■ログ管理の全体像

syslogdrsyslogd

logrotateコマンド

syslog-ng

sshd

出来事
（イベント）

maild
メッセージ

crond
klogd

systemd-journald/var/log/

ロギング
メッセージ収集
ログ生成

ログローテーション
分割

圧縮

蓄積

破棄

ログ

ログ出力

Linuxサーバー• ログとは、システムの出来事（イベント）を一定の形式で時系列に記録・蓄積したデータのこと→ トラブルシューティングを行うときに、もっとも有益な情報源の1つ• イベント通知メッセージを収集し、ログを生成/出力する行為のことをロギングという• 一定の期間でログファイルを分割/圧縮/蓄積/破棄する行為のことをログローテーションという© LPI-Japan all rights reserved.

11

1.ログ管理の概要■SSHを使用してリモートからシステムへ接続した場合
リモートアクセス

出来事（イベント）
sshd

何時/何分/何秒に●●ユーザがログインしました
何時/何分/何秒に●●ユーザがログアウトしましたLinuxサーバー
ロギング
●●ユーザ

メッセージ収集
ログ生成

syslogdrsyslogd
syslog-ng

設定ファイルログ

systemd-journald

ログ出力/var/log/secure ファイル
日付 時刻 ホスト名 sshd[PID]:Accepted publickey for ユーザ名 from アクセス元 暗号化方式：暗号化
日付 時刻 ホスト名 sshd[PID]:Disconnected from アクセス元© LPI-Japan all rights reserved.

12

1.ログ管理の概要■tailコマンド（オプションf）
リアルタイムでファイルを監視する

tail -f [ファイル名]# tail -f /var/log/secur
Feb 26 15:27:49 centos7_SV1 sshd[1187]: pam_unix(sshd:session): session opened for user vagrantby (uid=0
Feb 26 15:31:42 centos7_SV1 sshd[1190]: Received disconnect from 10.0.2.2 port 57870:11:
disconnected by use
Feb 26 15:31:42 centos7_SV1 sshd[1190]: Disconnected from 10.0.2.2 port 5787
Feb 26 15:31:42 centos7_SV1 sshd[1187]: pam_unix(sshd:session): session closed for user vagran
Feb 26 15:37:26 centos7_SV1 sshd[1221]: Accepted publickey for vagrant from 10.0.2.2 port 57934

t

0

e

r

)

© LPI-Japan all rights reserved.

13

1.ログ管理の概要■実機確認/var/log/secureファイルをtail -fコマンドでファイルを監視したまま、sshログイン、ログアウトを実施し、ログ出力状
況を確認する© LPI-Japan all rights reserved.

14

1.ログ管理の概要■ログ管理の全体像
ロギング
メッセージ収集
syslogdrsyslogd

ログ生成

ログローテーション
ログ出力

syslog-ng

/etc/

/etc/

/etc/

syslog.conf

rsyslog.conf

syslog-ng.conf

分割

systemd-journald/etc/systemd/
journal.conf

圧縮

蓄積

破棄

crond
/etc/cron.daily/logrotate/etc/ logrotate.conf• ロギング機能を持ったLinuxで使われているソフトウェア(プロトコル)としてsyslog、
rsyslog、syslog-ng、systemd-journalがある• ログローテーションはcronで動いている（logrotateコマンドが定期的に実行）• LinuC試験では主に、rsyslog、systemd-journal、ログローテーションが出題される© LPI-Japan all rights reserved.

15

セミナー内容■目次
1.ログ管理の概要
ログ管理の全体像
2.ロギング機能
syslogの設定方法
rsyslogの設定方法
systemd-jounalの設定方法
3.ログローテーション
loglotare.confの設定方法© LPI-Japan all rights reserved.

16

2.ロギング機能（syslog）■syslog(System Logging Protocol)の特徴
最も古くから使用されているロギングプロトコル。CentOS5でデフォルトとして実装されている。
/var/log/

sshd
maild

出来事
（イベント）

crond
klogd

syslogd

メッセージ

/etc/

ログ出力

syslog.conf

ログ出力Linuxサーバー• 1980年代にEric Allman氏が開発した最も古くから使用されているロギングプロトコル• 元々sendmailの一部として開発され、2001年にRFC3164で標準化された• その後RFC3164が廃止され、現在はRFC5424で標準化されている• syslogは、syslogdによって動作しており、/etc/syslog.configの設定によって、収集対象のメッセージの種類とログ出力先が決まる© LPI-Japan all rights reserved.

17

2.ロギング機能（syslog）■/etc/syslog.conf
syslogdの設定ファイル。selector(facilityとpriority)とactionで構成されている。
書式

selector

action

メッセージの種類

ログの出力先facility priority

authpriv.*
facility priority/var/log/secure
actionselector• syslog.confはselectorとactionで構成されており、空白で区切られている• selectorは、収集対象のメッセージの種類を決める設定項目• selectorはさらに、facility(収集先)とpriority(重要度)で構成されている• actionはログの出力先を決める設定項目© LPI-Japan all rights reserved.

18

2.ロギング機能（syslog）■facilityの種類

書式

メッセージの収集先を表す
コード 内容syslog.conf指定
0 カーネルメッセージkern
1 ユーザーレベルメッセージ user
2 メールサービス
mail
3 システムデーモン
daemon4 認証系サービス
auth
5 syslogdデーモン
syslog6 プリンタシステム
lpr
7 ニュースシステム
news
8 UUCP
uucp
9 クロックデーモン
cron
10 認証メッセージ
authpriv
11 FTPデーモン
ftp
16〜23 独自の設定
local0〜7

selector

action

メッセージの種類

ログの出力先facility priority*.info;mail.none;authpriv.none;cron.none
authpriv.*/var/log/secure

mail.*-/var/log/maillog

cron.*/var/log/cron*.emerg*

uucp,news.crit/var/log/spooler

local7.*/var/log/boot.log

cron.=err/var/log/maillog̲err/var/log/messages• 収集元のイベントメッセージを0〜23までのコード番号で分類している• facilityを複数指定する場合は、カンマ( , )を指定する© LPI-Japan all rights reserved.

19

2.ロギング機能（syslog）■priorityの種類
メッセージの重要度を表す
優先度
高

低

コード
0
1
2
3
4
5
6
7
-

priority
emerg
alert
crit
err
warning
notice
info
debug
none

内容
緊急
警報
致命的
エラー
警告
通知
情報
デバック情報出力しない

書式

selector

action

メッセージの種類

ログの出力先facility priority
authpriv.*/var/log/secure

mail.*;mail.!crit-/var/log/maillog

cron.=err
mail.*;mail.!=crit/var/log/maillog̲err-/var/log/maillog• priorityは通常、指定したpriority以上の優先度が高いログが出力される• 指定したpriority以下を出力したい場合は、! を組み合わせて指定する• 特定のpriorityのみを出力したい場合は = を指定する• 特定のpriority以外を出力したい場合は、!= を組み合わせて指定する© LPI-Japan all rights reserved.

20

2.ロギング機能（syslog）■actionの種類
出力先の設定action内容/ファイルの絶対パス ファイルへ出力

書式

selector

action

メッセージの種類

ログの出力先-/ファイルの絶対パス フラッシュ動作を抑制する

authpriv.*/var/log/secure/dev/consol/dev/ttyNコンソールへ出力

mail.*-/var/log/maillog

cron.*@192.168.

| 名前付きパイプ

メッセージを指定した名前付きパイプへ出力する*.emerg*@ホスト名

リモートホストへ転送

uucp,news.crit/var/log/spooler

ユーザ名*

ユーザへ通知local7.*/var/log/boot.log

ユーザ全てに通知

cron.=err/var/log/maillog̲err• ログをファイルに出力したい場合は、ファイルのパスを指定する• ログをほかのプログラムに渡したい場合は、「|」を指定する• ログをリモートホストに転送したい場合は「@ホスト名」で指定する• ログをユーザーのコンソールに表示したい場合は、ユーザー名を指定する
e© LPI-Japan all rights reserved.

21

2.ロギング機能（syslog）■/etc/syslog.confの設定例(デフォルト)# cat /etc/syslog.conf | grep -v '^#' | grep -v '^\s*$'*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.*/var/log/secure
mail.*-/var/log/maillog
cron.*/var/log/cron*.emerg*
uucp,news.crit/var/log/spooler
local7.*/var/log/boot.log© LPI-Japan all rights reserved.

22

2.ロギング機能（syslog）■loggerコマンド

logger[オプション]オプション-i(--id)-s(--stderr)-f ファイル名-p(priority) facility.priority-t(--tag) タグ[メッセージ]説明
loggerプロセスのプロセスID（PID）も併せて記録する
記録した内容を標準エラー出力にも出力する
指定したファイルの内容をシステムログに追加する
facility.priorityを指定して記録する
ログの各行に指定したタグを出力する# logger -i -t maillog -p mail.info 'メール送信しました。'# tail -n 1 /var/log/maillog
Jan 7 19:46:37 localhost maillog[4186]: メール送信しました。

© LPI-Japan all rights reserved.

23

2.ロギング機能（syslog）■実機確認
以下のloggerコマンドを実行し、syslog.confファイルの設
定どおりにログが出力されているか確認する#logger -i -t maillog -p mail.info 'メール送信しました。'# logger -i -t maillog -p mail.info 'メール送信しました。'# tail -n 1 /var/log/maillog
Jan 7 19:46:37 localhost maillog[4186]: メール送信しました。

© LPI-Japan all rights reserved.

24

2.ロギング機能（rsyslog）■rsyslog(The rocket-fast Syslog)の特徴
syslogの拡張版。rsyslogはreliable-syslogの略。CentOS6からデフォルトで実装されている。
/var/log/

loggermaild

出来事（イベント）

crond

rsyslogd

メッセージ

ログ

/etc/
rsyslog.conf

klogd
サーバー

ログ(TCP)
ログ(UTP)

ログサーバ• Reiner Gerhards氏が主開発者として、syslogを元に2004年から開発が始まった• TCP経由でのログ転送、マルチスレッド対応、各種DBへの書き込み対応• rsyslogdで動いており、rsyslog.configファイルでログの出力先を設定している• syslog.confと互換性がある© LPI-Japan all rights reserved.

25

2.ロギング機能（rsyslog）■/etc/rsyslog.conf#### MODULES ####$ModLoad imuxsock$ModLoad imjournal

読み込む対象

共通的な設定#### GLOBAL DIRECTIVES ####
$ActionFileDefaultTemplate RSYSLOG̲TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf
ログの処理方法#### RULES ####*.info;mail.none;authpriv.none;cron.none/var/log/messages
authpriv.*/var/log/secure
mail.*-/var/log/maillog• rsyslog.conf の設定は主に3つに分かれている• 「MODULES」はLoad する Module （読み込む対象）を指定する項目• 「GLOBAL DIRECTIVES」は共通的な設定を指定する項目• 「RULES」は「Input Module」 から読み込んだログの処理方法を決める項目© LPI-Japan all rights reserved.

26

2.ロギング機能（rsyslog）■/etc/rsyslog.conf（MODULES）の設定例#### MODULES ####$ModLoad imuxsock$ModLoad imjournal

ローカルロギングのサポート
systemd journalのサポート$ModLoad imudp$UDPServerRun 514$AllowedSender UDP, 127.0.0.1, *.example.jp, 192.168.0.0/24$ModLoad imtcp$InputTCPServerRun 514$AllowedSender UDP, 127.0.0.1, *.example.jp, 192.168.0.0/24

UDPの受信を許可する場合の設定
UDPのポートの設定
転送元を制限する場合の設定
TCPの受信を許可する場合の設定
TCPのポートの設定
転送元を制限する場合の設定• モジュールを追加する場合は「$ModLoad」で指定する• ローカルのイベントメッセージを取込みたい場合は、「imuxsock」と指定する• journalからログを読み込みたい場合は、「imjournal」と指定する• リモートから転送されたログをUDPで受け付ける場合は、「imudp」と指定する• リモートから転送されたログをTCPで受け付ける場合は、「imtcp」と指定する© LPI-Japan all rights reserved.

27

2.ロギング機能（rsyslog）■/etc/rsyslog.conf（GLOBAL DIRECTIVES）の設定例#### GLOBAL DIRECTIVES ####
$ActionFileDefaultTemplate RSYSLOG̲TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf#$ActionFileEnableSync on

ログのタイムスタンプの書式/etc/rsyslog.d/*.conf ファイルの設定も読み込む

フラッシュ動作が抑制（コメントアウトまたはoffを設定する）• ログタイムスタンプの書式設定は、$ActionFileDefaultTemplateで指定する• 他の設定ファイルを読み込みたい場合は、$IncludeConfigで指定する• ログ出力時のバッファのフラッシュ動作設定は、$ActionFileEnableSyncで設定する© LPI-Japan all rights reserved.

28

2.ロギング機能（rsyslog）■/etc/rsyslog.conf（RULES）の設定例#### RULES ####*.info;mail.none;authpriv.none;cron.none
authpriv.*cron.*/var/log/messages/var/log/secure/var/log/cron/var/log/messagesへログ出力する

*.*
*.*

@リモートホスト名@@リモートホスト名

リモートホストへUDPで伝送する$template mytemplate,"日時：%timegenerated% 内容：%msg%\n"mail.*/var/log/custom.log;mytemplate/var/log/messagesへログ出力する/var/log/messagesへログ出力する

リモートホストへTCPで伝送する
ログ出力の形式をmytemplateという名前で定義
mytemplateを適用• syslog.confと同じ設定方法に加えて、リモートホストへの転送(TCP)が可能• $templateで、出力先や出力メッセージの形式をカスタマイズすることが可能(%マクロ名%で設定可能）© LPI-Japan all rights reserved.

29

2.ロギング機能（rsyslog）■実機確認（rsyslog（リモートホストへの転送(TCP)））# logger -i -t maillog -p mail.alert ʻmail test123ʼ

出来事（イベント）

rsyslogd
メッセージ

rsyslogd
転送

/etc/

/etc/

/var/log/
ログ

rsyslog.conf

rsyslog.conf

サーバB(192.168.33.11)

サーバA(192.168.33.2)#### MODULES ####$ModLoad imtcp#### RULES ####
mail.alert$InputTCPServerRun 514@@192.168.33.11#### RULES ####
mail.*-/var/log/maillog© LPI-Japan all rights reserved.

30

2.ロギング機能（systemd-journald）■systemd-journald（systemd-journald.service）
systemdのジャーナルサブシステム。
loggermaild

出来事（イベント）

crond

systemd-journald

メッセージ/etc/systemd/

ログ出力/run/log/journal

journald.conf

klogd
サーバー

バイナリ形式• systemdを採用しているシステムではsystemd-journaldでログを一元管理している• systemd-journaldは、systemdから起動したプロセスの標準出力やsyslogへのログメッセージをバイナリ形式で記録している• systemd-journaldの設定ファイルは/etc/systemd/journald.confである• systemd-journaldで収集したログはjournalctlコマンドで参照することができる© LPI-Japan all rights reserved.

31

2.ロギング機能（systemd-journald）■/etc/systemd/journald.conf# cat /etc/systemd/journald.conf・意味

Storageの設定値
volatile/run/log/journal に記録する

persistent/var/log/journalに記録する[Journal]

auto/var/log/journalに記録する。もしなければ、/run/log/journalに記録する#Storage=auto

none

ログを記録せず破棄する・・• CentOS7のデフォルトは全て設定項目がコメントアウトされている• デフォルトのログの出力先は、メモリー上（/run/log/journal/配下）になっており、再起動するとログが消えてしまう• 永続的にログを残したい場合は、Storage=persistentで設定する（もしくは/var/log/journalディレクトリを作成しておく）© LPI-Japan all rights reserved.

32

2.ロギング機能（systemd-journald）■journalctlコマンド
systemd journalに格納されたログを参照するコマンド
loggermaild

出来事（イベント）

crond
klogd

journalctl

systemd-journald

メッセージ/etc/systemd/

ログ出力/run/log/journal

journald.conf

サーバー

バイナリ形式• systemd-journaldで収集したログはjournalctlコマンドで参照することができる• ログがカテゴライズされて保管されている、期間を指定して参照できる点が特徴• オプション無しで実行すると、記録されているログを最初からすべて表示する（デフォルトはページャを使って、ページ分割して表示）© LPI-Japan all rights reserved.

33

2.ロギング機能（systemd-journald）■journalctlコマンド
systemd journalに格納されたログを参照するコマンド

journalctl [オプション]
オプション-a (--all)-b (--boot)-f (--follow)-k (--dmesg)-l (--full)-n (--lines)-o (--output)-r (--reverse)--sence-u (--unit)-x[検索文字列]説明
画面表示できない文字列を表示する
特定のシステム起動時のログを表示する
新規に追加されたログをリアルタイムに表示する
カーネルからのメッセージを表示する
画面で表示可能な全てのログを表示する
直近のログから指定行数分を表示する（デフォルトは10行）
ログの出力形式を設定する
通常より詳細（verbose）、JSON形式(json)が指定可能
最古のログからの表示（デフォルト）の逆にし、最新のログから表示
指定した日付時刻以降のログを表示
特定のログからのユニットを表示
追加の説明を表示（メッセージカタログがある場合）※エマージェンシーモードで起動時に”journalctl -xb”でログを確認できるように表示される

検索文字列

説明

̲PID=[プロセス番号]
̲UID=[ユーザ番号]̲SYSTEMD̲UNIT=[ユニット名]

プロセス番号の指定ユーザIDを指定
Unit名を指定(オプションの-uと同じ)© LPI-Japan all rights reserved.

34

2.ロギング機能（systemd-journald）■journalctlコマンド実行例（-fオプション）
tail-fのようにログ監視する# journalctl -f■journalctlコマンド実行例（-uオプション）
特定サービスのメッセージだけを表示# journalctl -u sshd

© LPI-Japan all rights reserved.

35

2.ロギング機能（systemd-journald）■systemd-cat
Systemdを採用したシステム上でメッセージをログに記録するコマンド（指定したコマンドの出力結果をログに記録することができるコマンド）

systemd-cat[オプション][コマンド]# systemd-cat date# journalctl
Jan 07 19:01:01 CentOS7̲SV anacron[2480]: Will run job ̀cron.daily' in 25 min.
Jan 07 19:01:01 CentOS7̲SV anacron[2480]: Jobs will be executed sequentially
Jan 07 19:04:47 CentOS7̲SV systemd[1]: Starting Cleanup of Temporary Directories…
Jan 07 19:04:47 CentOS7̲SV systemd[1]: Started Cleanup of Temporary Directories.
Jan 07 19:15:42 CentOS7̲SV date[2487]: Thu Jan 7 19:15:42 UTC 2021
# tail -n 1 /var/log/messages
Jan 7 19:15:42 CentOS7̲SV journal: Thu Jan 7 19:15:42 UTC 2021
© LPI-Japan all rights reserved.

36

2.ロギング機能（systemd-journald）■実機確認（ systemd-catコマンド）# systemd-cat date

出来事
（イベント）/run/log/journal

systemd-journald

メッセージ/etc/systemd/
journald.conf

ログ出力
バイナリ形式参照
rsyslogd

サーバー

journalctl/etc/#### MODULES ####$ModLoad imjournal/var/log/message
ログ

rsyslog.conf# systemd-cat date# journalctl
Jan 07 19:15:42 CentOS7̲SV date[2487]: Thu Jan 7 19:15:42 UTC 2021
# tail -n 1 /var/log/messages
Jan 7 19:15:42 CentOS7̲SV journal: Thu Jan 7 19:15:42 UTC 2021
© LPI-Japan all rights reserved.

37

セミナー内容■目次
1.ログ管理の概要
ログ管理の全体像
2.ロギング機能
syslogの設定方法
rsyslogの設定方法
systemd jounalの設定方法
3.ログローテーション
loglotare.confの設定方法© LPI-Japan all rights reserved.

38

3.ログローテーション■ログローテーションとは一定の期間でログを分割/圧縮/蓄積/破棄する行為のこと/var/log/

ログローテーション
分割

圧縮

蓄積

破棄

crond
/etc/cron.daily/
logrotate/usr/sbin/logrotate /etc/logrotate.conf• ログローテーションはloglotateコマンドによってログを分割/圧縮/蓄積/破棄できる• loglotateコマンドはcronに登録されており一定の間隔で実行されている• デフォルトでloglotateコマンドの設定ファイルに/etc/logrotate.confが指定されている© LPI-Japan all rights reserved.

39

3.ログローテーション■logrotateコマンド
ログローテーションを実行するコマンド

logrotate [オプション]

設定ファイルオプション

説明-d(-debag)

デバッグモードで実行する-f(-force)

強制的にログローテーションを実行する-m(-mail)

ログをメール送信する際に使用する# logrotate -f /etc/logrotare.conf# ls -l /var/log/messages*-rw-------. 1 root root 940539565 Jan 7 18:50 /var/log/messages-rw-------. 1 root root

438499 Dec 14 07:41 /var/log/messages-20201214-rw-------. 1 root root

299964 Dec 22 06:43 /var/log/messages-20201222-rw-------. 1 root root

233022 Dec 29 03:39 /var/log/messages-20201229-rw-------. 1 root root

103364 Jan 3 08:25 /var/log/messages-20210103© LPI-Japan all rights reserved.

40

3.ログローテーション■logrotate.confの設定例
weeklysu root syslog
rotate 4
createinclude /etc/logrotate.d/var/log/wtmp {missingok
monthlycreate 0664 root utmp
rotate 1}/var/log/btmp {missingok
monthlycreate 0660 root utmp
rotate 1}© LPI-Japan all rights reserved.

41

3.ログローテーション■logrotate.confの主要な設定項目
項目

説明

daily / weekly / monthly/ yearly

ログの切り替えタイミング（日次/週次/月次/年次）

rotateローテーションする世代数を設定する

compress

周期がweeklyで4世代の場合、4週間分のログを保存する
ローテーション後のファイルをgz形式で圧縮する

createローテーション後に空ファイルを作成する
以下の形式で、作成するファイルの権限を決められる
create [権限] [オーナ] [グループ]

dateext

ローテーション後のファイル名に日付を付与する

include ディレクトリ名

指定したディレクトリ配下の設定ファイルを読み込む

mail メールアドレス

ログ切り替えによって削除されるログの内容を指定されたメールアドレスへメールする

postscript〜endscript

ログ切り替え後に実行するスクリプト

presctipt〜endsctipt

ログ切り替え前に実行するスクリプト

missingok

ログファイルが存在しない場合も、エラーとしない© LPI-Japan all rights reserved.

42

3.ログローテーション■実機確認（logrotateコマンド）
logrotate -f /etc/logrotare.conf を実行し、設定ファイルどおりログローテートが実行できるか確認する# logrotate -f /etc/logrotare.conf# ls -l /var/log/messages*-rw-------. 1 root root 940539565 Jan 7 18:50 /var/log/messages-rw-------. 1 root root

438499 Dec 14 07:41 /var/log/messages-20201214-rw-------. 1 root root

299964 Dec 22 06:43 /var/log/messages-20201222-rw-------. 1 root root

233022 Dec 29 03:39 /var/log/messages-20201229-rw-------. 1 root root

103364 Jan 3 08:25 /var/log/messages-20210103© LPI-Japan all rights reserved.

43

セミナー内容

ご清聴ありがとうございました© LPI-Japan all rights reserved.

44