Upgrade to Pro — share decks privately, control downloads, hide ads and more …

いいやつ!systemd

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 いいやつ!systemd

Avatar for Tadashi KAWARAGI

Tadashi KAWARAGI

November 25, 2017
Tweet

More Decks by Tadashi KAWARAGI

Other Decks in Technology

Transcript

  1. Please allow me to introduce myself • 河原木忠司(KAWARAGI Tadashi) •

    出身ならびに現住所:北海道 • 講師をやったり、サーバーのお守りを したり • ここ10年ほどは講師専業でやってます • 新人研修から、既存エンジニア向け、 ユーザー向けと幅広く・・・ • 基本はインフラ系。サーバー、セキュリ ティ、仮想化、ネットワークなど、テーマ も幅広く・・・ • たまに執筆も • 「最短突破 LPIC レベル1問題集」(技術評 論社) • 器用貧乏、隙間産業系 • favorite: 音楽、パンダ、嫁
  2. 今さらな話題かもなんですが、 systemdとjournaldの活用方法につい てプレゼンさせていただきます。 今回のプレゼンでは、 systemd = systemd init journald =

    systemd-journald ということでプレゼンさせていただきます。 【デモ環境】 CentOS 7.4(1708) on Oracle VirtualBox
  3. systemctlコマンド • systemdの制御コマンド • 基本構文 • systemctl [OPTIONS...] COMMAND [NAME...]

    COMMAND 意味 start stop restart サービスの起動/停止/再起動 status サービスの状態を表示 enable disable サービスの自動起動の有効/ 無効化 list-unit-files ユニットの一覧表示 isolate 現在のターゲットの変更 get-default set-default 起動時に参照するターゲット の表示/設定 poweroff reboot hibernate シャットダウン/再起動/ハイバ ネート • ユニット • ~.service:サービス(既定) • ~.target:ターゲット • multi-user.target 通常ログイン(CUI) • graphical.target 通常ログイン(GUI) • rescue.target レスキューモード • emergency.target 緊急モード • 一緒に活用すると便利なオプション • --no-pager ページャーを利用せず、標準出力 • --type=service サービスのみ表示
  4. 【デモ操作内容】 systemctl • # systemctl start httpd • # systemctl

    status httpd • # systemctl list-unit-files --type=service --no-pager | grep enabled • # systemctl enable httpd Created symlink from /etc/systemd/system/multi- user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. • # systemctl get-default graphical.target • # systemctl isolate multi-user.target • # systemctl hibernate
  5. journaldの設定 • 設定ファイル:/etc/systemd/journald.conf • まず、この設定を押さえておこう! • Storage=persistent /var/log/journal/ 以下にログを記録 既定では、/run/log/journal/

    以下にログを記録( Storage=auto ) • /var/log/ のボリューム構成に注意! ルートディレクトリと異なる場所にマウントしている場合、local-fs.targetとの依 存関係の調整が必要 # df -h /run ファイルシス サイズ 使用 残り 使用% マウント位置 tmpfs 920M 8.4M 912M 1% /run 既定のままだとシャットダウンすると journallogは消去
  6. journalctlコマンド • journaldの制御コマンド • 基本構文 • journalctl [OPTIONS...] [MATCHES...] OPTIONS

    意味 -n 数値 表示するログの件数 -u ユニット名 表示する対象のユニット -p プライオリティ値 表示するプライオリティ (0:emerg~7:debug) --since=‘日時’ --until=‘日時’ 日時を指定 • ‘yyyy-mm-dd hh:mm:ss’ • today, yesterday • -1min, -1h, -1days -o 形式 出力形式 • verbose: 詳細な出力 -f 末尾を表示し続ける --no-pager ページャーを利用せず、標準出力 • PATH (/usr/sbin/sshdなど) 実行パスによるフィルタ • _PID=xxx PIDによるフィルタ • _UID=xxx UIDによるフィルタ
  7. 【デモ操作内容】 journald / journalctl • # vim /etc/systemd/journald.conf • #

    grep -v '^#' /etc/systemd/journald.conf [Journal] Storage=persistent • # systemctl restart systemd-journald • # ls /var/log/journal/1f051942abc341c39b55a202cd1d0726/ system.journal • # journalctl --since -3min • # journalctl -u sshd --no-pager | grep -i failed • 11月 24 17:50:05 localhost.localdomain sshd[16400]: Failed password for root from 192.168.56.1 port 62122 ssh2 • # journalctl -u sshd --no-pager –o verbose /etc/machine-id