コース一覧
LinuC レベル1(LPIC-1対応)対策
ログ管理

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

ログ管理

障害が起きたときに最初に見るのはログです。逆に言えば、ログの出方を設計できないと障害は追えません。なお、この学習環境には rsyslogd が入っておらず、動いているのは systemd-journald だけです。rsyslog の書式は試験に出るので読み方だけ押さえます。

プライオリティは数字が小さいほど深刻

数字名前意味
0emerg (panic)システムが使用不能
1alert直ちに対処が必要
2crit致命的な状態
3err (error)エラー
4warning (warn)警告
5notice通常だが重要
6info情報
7debugデバッグ用の詳細

emerg が 0 で最も重く、debug が 7 で最も軽い。日常の感覚と逆向きなので表ごと覚えます。また、設定でプライオリティを1つ指定すると、それ以上に深刻なものもすべて含まれます。mail.info と書けば mail の info から emerg までが対象です。

ファシリティはどこから出たログかの分類で、auth と authpriv が認証、cron、daemon、kern、印刷の lpr、mail、syslog 自身、既定値の user があります。加えて local0 から local7 が利用者の自由枠で、自作アプリのログを分けたいときにここを使う、という設計が問われます。

rsyslog.conf は ファシリティ.プライオリティ と 出力先

プレーンテキスト

auth,authpriv.* /var/log/auth.log *.info;mail.none;cron.none /var/log/messages *.* @192.168.1.10

* はすべてを表します。.none はそのファシリティを除外する指定で、*.info;mail.none は「全部の info 以上、ただしメールは除く」です。セミコロンで条件を並べ、カンマでファシリティを列挙します。ファイル名の前に - を付けると書き込みのたびに同期しません。@ で始まる出力先は他ホストへの転送で、@ 1つが UDP、@@ 2つが TCP、ポートは 514 番です。

シェルから syslog へ書くのが logger です。-p でファシリティとプライオリティを local0.info の形で指定し、-t でタグを付けます。

journalctl はユニットと期間で絞る

オプション何をするか
-u <ユニット>指定したユニットのログだけ
-b今回の起動以降。-b -1 で1つ前の起動
-p <レベル>指定レベル以上のログだけ
--since --until期間を絞る。--since "1 hour ago" も可
-n <件数>末尾から指定件数だけ。-f は追尾
-kカーネルのメッセージだけ。--no-pager でページャを外す

journald の記録は既定では /run/log/journal/ に置かれ、再起動すると消えます。永続化するには /var/log/journal/ を作るか、/etc/systemd/journald.conf に Storage=persistent を書きます。

logrotate の rotate は残す世代数

設定は、対象のログのパスに続けて項目を波括弧で囲んで並べる形です。周期は daily weekly monthly、rotate <数> が残す世代数で、それより古いものは削除されます。compress は gzip 圧縮、delaycompress は圧縮を1世代遅らせる指定です。missingok は対象ファイルが無くてもエラーにせず、notifempty は中身が空なら回しません。create <権限> <所有者> <グループ> は新しい空ファイルを指定の権限で作り、copytruncate は名前を変えずに中身を切り詰めるのでファイルを開き続けるプロセス向けです。size はサイズ契機、postrotate から endscript はローテーション後に実行するコマンドです。

全体の既定は /etc/logrotate.conf にあり、末尾で /etc/logrotate.d/ を読み込みます。個別の設定はこのディレクトリに置きます。logrotate -d <設定ファイル> なら動かさずに動作を確認できるので、書いたら必ずこれで確かめてください。

試験で狙われるところ

プライオリティは数字が小さいほど深刻で、emerg が 0、debug が 7 です。mail.info は info 以上が全部対象、.none は除外の指定です。@host は UDP 転送、@@host は TCP 転送です。rotate 4 は4回回すのではなく4世代残すという意味です。そして /var/log/wtmp と btmp と lastlog はバイナリなので cat では読めず、last lastb lastlog が要ります。

ヒント

①方針 前半はログを1本書いて拾うだけです。後半はエディタを開かず、ヒアドキュメントで設定ファイルを一気に書きます

②使うコマンド ログを書くのは logger -p <ファシリティ>.<プライオリティ> "<本文>"。拾うのは journalctl --no-pager と grep の組み合わせ。ファイルを書くのは cat <<EOF > <パス> ... EOF です

③部分解 logger -p local0.notice "LINUC-TEST" のあと journalctl --no-pager -n 200 | grep LINUC-TEST > /root/log-report.txt。設定は cat <<EOF > /etc/logrotate.d/linuc で始めて、/var/log/linuc-app.log { の中に weekly, rotate 4, compress, missingok を並べ、} と EOF で閉じます

  • 1. logger -p local0.notice "LINUC-TEST" でログを1本書く
  • 2. journalctl から LINUC-TEST を含む行を探して /root/log-report.txt に保存する。--no-pager を付けるとページャで止まらない
  • 3. /etc/logrotate.d/linuc を作る
  • 4. 設定の中身は /var/log/linuc-app.log を対象に weekly, rotate 4, compress, missingok を含めること
  • 5. logrotate -d /etc/logrotate.d/linuc で書式を確認する

5 項目で採点します