本記事には広告(アフィリエイトリンク)が含まれます。

AlmaLinux 9 初期設定リファレンス

AlmaLinux 9 を最小インストールした直後のサーバーは、ホスト名が未設定、NTP 同期先がデフォルト、DNS も未指定という状態です。本記事では、企業のサーバー運用チームが最小インストール直後に行うべき初期設定を、ホスト名・タイムゾーン・NTP・ロケール・DNS・プロキシ・パッケージ導入・ユーザー管理・セキュリティ基盤まで 17 項目にわたって手順化しています。各設定には「なぜやるのか」の理由と、切り戻し方法を併記しました。第1回 システム基本情報の確認でサーバーの現状を把握した後、この記事の順序で設定を進めてください。

初期設定コマンド早見表

設定項目主なコマンド反映タイミング
ホスト名hostnamectl set-hostname即時(プロンプトは再ログイン後)
タイムゾーンtimedatectl set-timezone即時
NTP/etc/chrony.conf 編集 → systemctl restart chronyd再起動後
ロケールlocalectl set-locale次回ログイン時
DNSnmcli connection modifynmcli connection up 後
プロキシ/etc/profile.d/proxy.sh, /etc/dnf/dnf.conf再ログイン後 / 即時
システムアップデートdnf update再起動が必要な場合あり
基本パッケージdnf install即時
ユーザー作成・sudouseradd -G wheel即時
SELinuxgetenforce確認のみ
firewalldfirewall-cmd –state確認のみ
カーネルパラメータsysctl -p /etc/sysctl.d/99-security.conf即時(永続化済み)
不要サービス無効化systemctl disable次回起動時
操作履歴・auditdHISTTIMEFORMAT, systemctl status auditd即時 / 確認のみ
ログ永続化journald.conf Storage=persistentsystemctl restart 後
kdumpgrubby + systemctl enable kdump再起動後
スワップswapon –show確認のみ

前提条件

項目
OSAlmaLinux 9.6(Sage Margay)
カーネル5.14.0-570.12.1.el9_6.x86_64
インストールタイプ最小限のインストール(Minimal Install)
実行ユーザーroot(または sudo 権限を持つ一般ユーザー)
ネットワーク企業ネットワーク(プロキシ経由でインターネット接続)
想定ドメインexample.corp

本記事のコマンドはすべて root 権限で実行します。プロンプトが # の場合は root ユーザーまたは sudo での実行を意味します。

1. ホスト名の設定

ホスト名はログやアラートの送信元を識別するために設定します。未設定のまま運用すると、複数サーバーの障害調査時にどのサーバーのログか判別できなくなります。

ホスト名の変更

実行コマンド:

# hostnamectl set-hostname web-server01.example.corp

設定が反映されたことを確認します。

実行コマンド:

# hostnamectl --static

実行結果:

web-server01.example.corp

ホスト名は即時反映されますが、シェルのプロンプト表示(PS1)に反映されるのは再ログイン後です。

/etc/hosts への追記

DNS に登録されていない段階でも、自ホスト名が名前解決できるように /etc/hosts に追記します。

実行コマンド:

# vi /etc/hosts

追記内容:

192.168.1.121   web-server01.example.corp   web-server01

追記後、自ホスト名で名前解決できることを確認します。

実行コマンド:

# getent hosts web-server01.example.corp

実行結果:

192.168.1.121   web-server01.example.corp   web-server01

切り戻し方法

ホスト名を元に戻す場合は hostnamectl set-hostname 旧ホスト名 を実行し、/etc/hosts の追記行を削除してください。

2. タイムゾーンの設定

タイムゾーンはログのタイムスタンプや cron ジョブの実行時刻に影響します。日本国内で運用するサーバーは Asia/Tokyo に設定します。

実行コマンド:

# timedatectl set-timezone Asia/Tokyo

設定を確認します。

実行コマンド:

# timedatectl

実行結果:

               Local time: 火 2026-03-24 14:41:54 JST
           Universal time: 火 2026-03-24 05:41:54 UTC
                 RTC time: 火 2026-03-24 05:41:54
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Time zone: Asia/Tokyo (JST, +0900) と表示されていれば設定完了です。この変更は即時反映されます。

切り戻し方法

タイムゾーンを変更前の値に戻す場合は timedatectl set-timezone 旧タイムゾーン を実行します(例:timedatectl set-timezone UTC)。

3. NTP の設定

NTP(Network Time Protocol)はサーバーの時刻を正確に同期するためのプロトコルです。AlmaLinux 9 では chronyd が NTP クライアントとして動作しています。企業環境では、社内 NTP サーバーを同期先に指定するのが一般的です。インターネット上の公開 NTP サーバーへ直接接続できない環境も多いため、社内 NTP サーバーのアドレスをネットワーク管理者に確認してから設定してください。

現在の同期状態を確認する

実行コマンド:

# chronyc sources

実行結果:

MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* y.ns.gin.ntt.net              2  10   377   186  +1257us[+1519us] +/-   76ms

行頭の ^* は、この NTP サーバーと同期中であることを示します。デフォルトではインターネット上の NTP サーバーが設定されていますが、企業環境では社内 NTP サーバーに変更します。

chrony.conf の編集

編集前にバックアップを取得します。

実行コマンド:

# cp -p /etc/chrony.conf /etc/chrony.conf.bak

設定ファイルを編集します。

実行コマンド:

# vi /etc/chrony.conf

既存の server 行または pool 行をコメントアウトし、社内 NTP サーバーを追記します。

変更前:

server y.ns.gin.ntt.net iburst

変更後:

#server y.ns.gin.ntt.net iburst
server ntp.example.corp iburst

chronyd を再起動して設定を反映します。

実行コマンド:

# systemctl restart chronyd

再起動後に同期状態を確認します。

実行コマンド:

# chronyc sources

実行結果:

MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp.example.corp              2   6    17     3   -234us[ -468us] +/-   12ms

^* が社内 NTP サーバーに表示されていれば設定完了です。Reach の値が 0 のまま変わらない場合は、NTP ポート(123/udp)がファイアウォールでブロックされている可能性があります。

より詳細な同期情報は chronyc tracking で確認できます。

実行コマンド:

# chronyc tracking

実行結果:

Reference ID    : 81FA23FB (ntp.example.corp)
Stratum         : 3
Ref time (UTC)  : Tue Mar 24 07:13:32 2026
System time     : 0.000362673 seconds fast of NTP time
Last offset     : +0.000261909 seconds
RMS offset      : 0.000320005 seconds
Frequency       : 19.809 ppm fast
Residual freq   : +0.012 ppm
Skew            : 0.385 ppm
Root delay      : 0.124825627 seconds
Root dispersion : 0.012043971 seconds
Update interval : 1037.2 seconds
Leap status     : Normal

Leap status: Normal と表示されていれば、時刻同期は正常です。

切り戻し方法

NTP 設定を元に戻す場合は cp -p /etc/chrony.conf.bak /etc/chrony.conf でバックアップファイルを復元し、systemctl restart chronyd を実行してください。

4. ロケールの設定

ロケールはコマンド出力の言語や日時フォーマットを決定します。日本語環境のサーバーでは ja_JP.UTF-8 を設定するのが一般的です。

現在のロケールを確認します。

実行コマンド:

# localectl

実行結果:

System Locale: LANG=ja_JP.UTF-8
    VC Keymap: jp
   X11 Layout: jp

すでに ja_JP.UTF-8 が設定されていれば変更不要です。変更が必要な場合は以下のコマンドを実行します。

実行コマンド:

# localectl set-locale LANG=ja_JP.UTF-8

この設定は次回ログイン時に反映されます。現在のセッションに即時反映する場合は source /etc/locale.conf を実行してください。

英語出力にしたい場合

運用チームの方針でコマンド出力を英語にする場合は localectl set-locale LANG=en_US.UTF-8 を使用します。英語環境のほうがエラーメッセージの検索性が高いため、チーム内で方針を統一してください。

5. DNS の設定

DNS は名前解決に使用するネームサーバーの設定です。企業環境では社内 DNS サーバーを指定します。AlmaLinux 9 では NetworkManager が DNS 設定を管理するため、/etc/resolv.conf を直接編集するのではなく、nmcli コマンドで設定します。

現在の DNS 設定を確認する

実行コマンド:

# cat /etc/resolv.conf

実行結果:

# Generated by NetworkManager
nameserver 192.168.1.1

社内 DNS サーバーを設定する

まず、対象のコネクション名を確認します。

実行コマンド:

# nmcli connection show

コネクション名を確認したら、DNS サーバーを設定します。以下の例ではコネクション名が eth0 の場合を示しています。

実行コマンド:

# nmcli connection modify eth0 ipv4.dns "10.0.2.254 192.168.1.1"

設定を反映するためにコネクションを再起動します。

SSH 接続への影響

次のコマンドはネットワークインターフェースを一時的に切断・再接続します。SSH でリモート接続している場合、接続が一時的に切れる可能性があります。コンソール接続で実行するか、接続が切れた場合に再接続できる準備をしてから実行してください。

実行コマンド:

# nmcli connection up eth0

設定が反映されたことを確認します。

実行コマンド:

# nmcli connection show eth0 | grep ipv4.dns

実行結果:

ipv4.dns:                               10.0.2.254,192.168.1.1

/etc/resolv.conf にも反映されていることを確認します。

実行コマンド:

# cat /etc/resolv.conf

実行結果:

# Generated by NetworkManager
nameserver 10.0.2.254
nameserver 192.168.1.1

/etc/resolv.conf を直接編集しないでください

AlmaLinux 9 では /etc/resolv.conf は NetworkManager が自動生成します。直接編集しても、NetworkManager がコネクションを再読み込みした時点で上書きされます。DNS 設定は必ず nmcli コマンドで変更してください。

切り戻し方法

DNS 設定を元に戻す場合は nmcli connection modify eth0 ipv4.dns "192.168.1.1" のように変更前の値を指定し、nmcli connection up eth0 で反映してください。

6. プロキシの設定

企業ネットワークでは、インターネットへの HTTP/HTTPS 通信にプロキシサーバーを経由する構成が一般的です。プロキシ設定をしないと、dnf によるパッケージ取得や curl/wget での外部通信がタイムアウトします。

シェル環境変数の設定(全ユーザー共通)

全ユーザーに対してプロキシ環境変数を設定するため、/etc/profile.d/ にスクリプトを作成します。

実行コマンド:

# vi /etc/profile.d/proxy.sh

記載内容:

export http_proxy="http://proxy.example.corp:8080"
export https_proxy="http://proxy.example.corp:8080"
export no_proxy="localhost,127.0.0.1,.example.corp"

no_proxy には、プロキシを経由させたくない社内ドメインやローカルアドレスを記載します。この設定は次回ログイン時に反映されます。現在のセッションに即時反映する場合は以下を実行してください。

実行コマンド:

# source /etc/profile.d/proxy.sh

dnf のプロキシ設定

dnf は独自のプロキシ設定を /etc/dnf/dnf.conf に持っています。シェル環境変数とは別に設定が必要です。

実行コマンド:

# vi /etc/dnf/dnf.conf

変更前:

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False

変更後([main] セクションの末尾に追記):

[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
proxy=http://proxy.example.corp:8080

dnf.conf への変更は即時反映されます。再起動は不要です。

切り戻し方法

プロキシ設定を元に戻す場合は、/etc/profile.d/proxy.sh を削除し、/etc/dnf/dnf.conf から proxy= 行を削除してください。シェル環境変数は再ログイン後にクリアされます。

7. システムアップデート

最小インストール直後のパッケージにはセキュリティ修正が適用されていない場合があります。初期設定の段階でシステム全体を最新の状態にアップデートします。

実行コマンド:

# dnf update -y

アップデート完了後、再起動が必要かどうかを確認します。

実行コマンド:

# needs-restarting -r

実行結果(再起動不要の場合):

起動以降にアップデートされたコアライブラリーまたはサービスはありません。
再起動な必要ありません。

「Reboot is required」や「再起動が必要です」と表示された場合は、カーネルや glibc などのコアライブラリが更新されています。メンテナンスウィンドウ内で再起動を実施してください。

本番環境でのアップデートについて

本番稼働中のサーバーでは dnf update を無計画に実行しないでください。検証環境で動作確認を行い、変更管理プロセスに従って実施します。初期構築段階(サービス投入前)であれば、この手順で問題ありません。

8. 基本パッケージのインストール

最小インストールでは、運用に必要なコマンドの多くが含まれていません。以下のパッケージをインストールすることで、ログ調査・ネットワーク診断・パフォーマンス確認といった日常的な運用作業が行えるようになります。

実行コマンド:

# dnf install -y vim bash-completion tar wget curl rsync bind-utils net-tools traceroute tcpdump lsof sysstat man-pages tmux

各パッケージの用途は以下の通りです。

パッケージ主なコマンド用途
vimvimテキストエディタ(vi の拡張版)
bash-completion(Tab 補完)コマンドやファイルパスの Tab 補完を強化
tartarアーカイブの作成・展開
wgetwgetHTTP/HTTPS でのファイルダウンロード
curlcurlHTTP/HTTPS 通信(API 疎通確認等)
rsyncrsyncファイルの同期・転送
bind-utilsdig, nslookup, hostDNS の名前解決テスト
net-toolsifconfig, netstat従来のネットワーク情報表示(レガシー互換)
traceroutetracerouteネットワーク経路の追跡
tcpdumptcpdumpパケットキャプチャ
lsoflsofオープンファイル・ポートの一覧表示
sysstatsar, iostat, mpstatCPU・メモリ・ディスク I/O の統計情報
man-pagesmanコマンドのマニュアルページ
tmuxtmuxターミナルマルチプレクサ(セッション維持)

curl は最小インストールに含まれている

AlmaLinux 9 の最小インストールには curl が含まれています。上記コマンドを実行すると、curl はすでにインストール済みとしてスキップされ、それ以外のパッケージが新規インストールされます。

9. ユーザー作成・sudo 設定

root ユーザーでの直接操作は、誤操作時の影響範囲が大きくなります。日常の運用作業には一般ユーザーを使用し、root 権限が必要な操作のみ sudo で実行する運用にします。

ユーザーの作成

wheel グループに所属する一般ユーザーを作成します。wheel グループに所属することで sudo が使用できるようになります。

実行コマンド:

# useradd -G wheel opsuser01

パスワードを設定します。

実行コマンド:

# passwd opsuser01

ユーザーが wheel グループに所属していることを確認します。

実行コマンド:

# id opsuser01

実行結果:

uid=1001(opsuser01) gid=1001(opsuser01) groups=1001(opsuser01),10(wheel)

groups10(wheel) が含まれていれば設定完了です。

sudoers の確認

AlmaLinux 9 のデフォルトでは、/etc/sudoers に wheel グループの sudo 許可が設定されています。

実行コマンド:

# grep wheel /etc/sudoers

実行結果:

%wheel	ALL=(ALL)	ALL
# %wheel	ALL=(ALL)	NOPASSWD: ALL

1 行目の %wheel ALL=(ALL) ALL が有効(コメントアウトされていない)であれば、wheel グループのユーザーはパスワード入力付きで sudo を使用できます。2 行目の NOPASSWD 行はコメントアウトされているため、パスワードなしでの sudo は無効です。

/etc/sudoers を直接編集しないでください

sudoers ファイルの編集には必ず visudo コマンドを使用してください。構文エラーがあると sudo が使用できなくなり、root 権限を失う危険があります。visudo は保存時に構文チェックを行うため、この問題を防止できます。

10. SELinux の確認

SELinux(Security-Enhanced Linux)は、プロセスのアクセス権限をカーネルレベルで制御するセキュリティ機構です。不正なプロセスがファイルやネットワークリソースにアクセスすることを防止します。

実行コマンド:

# getenforce

実行結果:

Enforcing

Enforcing はポリシー違反のアクセスをブロックしている状態です。設定ファイルでも Enforcing が永続化されていることを確認します。

実行コマンド:

# grep ^SELINUX= /etc/selinux/config

実行結果:

SELINUX=enforcing

SELinux の状態は以下の 3 種類があります。

状態動作
Enforcingポリシー違反をブロックし、ログに記録する
Permissiveポリシー違反をブロックせず、ログに記録のみ行う
DisabledSELinux が無効

SELinux を無効化しないでください

「SELinux が原因でアプリケーションが動かない」という場合でも、SELinux を Disabled にするのではなく、audit2allowsemanage でポリシーを調整してください。SELinux を無効化すると、サーバーのセキュリティレベルが大幅に低下します。

11. firewalld の確認

firewalld は AlmaLinux 9 のデフォルトのファイアウォールです。初期設定の段階では、firewalld が有効になっていることと、現在のルールを確認します。ルールの追加・変更については第6回 firewalld の設定で取り扱います。

実行コマンド:

# firewall-cmd --state

実行結果:

running

running と表示されれば、firewalld が稼働中です。現在適用されているルールを確認します。

実行コマンド:

# firewall-cmd --list-all

実行結果:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1 eth2 eth3
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: yes
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

最小インストール直後のデフォルト設定では、cockpit(管理用 Web UI)、dhcpv6-client、ssh の 3 サービスが許可されています。アプリケーションの要件に応じたポート開放は、サービス設定の段階で行ってください。

firewalld を停止・無効化しないでください

「firewalld が原因で通信できない」という場合でも、firewalld を停止するのではなく、必要なサービスやポートを個別に許可してください。firewalld を停止すると、すべてのポートが開放された状態になり、セキュリティリスクが生じます。

12. カーネルパラメータの基本設定

カーネルパラメータは OS の動作をカーネルレベルで制御する設定値です。sysctl コマンドで確認・変更します。ここではセキュリティに関連する基本的なパラメータを設定します。

現在の値を確認する

実行コマンド:

# sysctl net.ipv4.ip_forward net.ipv4.conf.all.accept_redirects net.ipv4.conf.all.accept_source_route net.ipv4.tcp_syncookies net.ipv4.conf.all.rp_filter

実行結果:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 0

セキュリティ関連のパラメータを設定する

設定ファイルを作成して、再起動後も永続化されるようにします。

実行コマンド:

# vi /etc/sysctl.d/99-security.conf

記載内容:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

各パラメータの意味は以下の通りです。

パラメータ推奨値意味
net.ipv4.ip_forward0IP フォワーディングを無効化(ルーターとして動作させない)
net.ipv4.conf.all.accept_redirects0ICMP リダイレクトを受け入れない(経路の改ざん防止)
net.ipv4.conf.all.accept_source_route0ソースルーティングを拒否(パケットの経路指定攻撃を防止)
net.ipv4.tcp_syncookies1SYN Flood 攻撃への対策を有効化
net.ipv4.conf.all.rp_filter1リバースパスフィルタリングを有効化(送信元偽装パケットを破棄)

設定を即時反映します。

実行コマンド:

# sysctl -p /etc/sysctl.d/99-security.conf

実行結果:

net.ipv4.ip_forward = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

設定したパラメータが出力されれば反映完了です。sysctl -p で即時反映されると同時に、/etc/sysctl.d/ 配下のファイルは再起動後も自動で読み込まれるため、永続化も完了しています。

切り戻し方法

設定を元に戻す場合は /etc/sysctl.d/99-security.conf を削除し、sysctl --system を実行してデフォルト値に復元してください。

13. 不要サービスの無効化

不要なサービスが起動していると、攻撃の対象となる通信ポートが増えます。最小インストールでは起動サービスは少ないですが、サーバーの用途に応じて不要なものがないか確認します。

実行コマンド:

# systemctl list-unit-files --state=enabled --type=service

実行結果(主要部分):

auditd.service                     enabled enabled
chronyd.service                    enabled enabled
crond.service                      enabled enabled
firewalld.service                  enabled enabled
irqbalance.service                 enabled enabled
kdump.service                      enabled enabled
NetworkManager.service             enabled enabled
rsyslog.service                    enabled enabled
sshd.service                       enabled enabled

最小インストール直後の有効サービスを確認し、サーバーの用途に不要なサービスがあれば無効化します。以下は各サービスの役割です。

サービス役割最小構成での要否
auditd監査ログの記録必要(セキュリティ要件)
chronydNTP 時刻同期必要
crond定期実行ジョブ必要
firewalldファイアウォール必要
irqbalanceIRQ 割り込みの CPU 分散推奨(マルチ CPU 環境)
kdumpカーネルクラッシュダンプ推奨(障害解析用)
NetworkManagerネットワーク管理必要
rsyslogシステムログ必要
sshdSSH リモート接続必要

最小インストール直後のサービスは基本的にすべて必要なものです。上記の一覧に含まれないサービスが有効になっている場合は、そのサービスの用途を確認した上で無効化を検討してください。

サービスを無効化するコマンドは以下の通りです(例として サービス名 の部分を置き換えてください)。

実行コマンド:

# systemctl disable サービス名 --now

--now オプションを付けることで、次回起動時の自動起動無効化と、現在動作中のサービスの即時停止を同時に行います。

切り戻し方法

無効化したサービスを再度有効にする場合は systemctl enable サービス名 --now を実行してください。

14. 操作履歴・auditd の基本設定

操作履歴にタイムスタンプを記録することで、「いつ・誰が・何を実行したか」を追跡できるようになります。障害発生時の原因調査やセキュリティインシデントの対応に必要です。

HISTTIMEFORMAT の設定

bash の操作履歴(history コマンド)にタイムスタンプを付加します。全ユーザーに適用するため、/etc/profile.d/ にスクリプトを作成します。

実行コマンド:

# vi /etc/profile.d/history.sh

記載内容:

export HISTTIMEFORMAT="%F %T "

%F は日付(YYYY-MM-DD)、%T は時刻(HH:MM:SS)を意味します。この設定は次回ログイン時に反映されます。現在のセッションに即時反映する場合は source /etc/profile.d/history.sh を実行してください。

設定後の history コマンドの出力例:

    1  2026-03-24 14:30:05 hostnamectl set-hostname web-server01.example.corp
    2  2026-03-24 14:30:12 cat /etc/hosts

auditd の稼働確認

auditd はカーネルレベルの監査ログを記録するサービスです。ファイルへのアクセス、権限の変更、ユーザーの認証などを記録します。

実行コマンド:

# systemctl status auditd

active (running) と表示されれば稼働中です。最小インストール直後から auditd は有効になっているため、追加の設定は不要です。監査ルールの追加が必要な場合は、/etc/audit/rules.d/ 配下にルールファイルを作成してください。

auditd は systemctl restart で再起動できない

auditd はセキュリティ上の理由から systemctl restart auditd での再起動が制限されています。監査ルールを変更した場合は service auditd restart を使用するか、OS を再起動してください。

15. ログ永続化(journald)

AlmaLinux 9 では systemd-journald がシステムログを管理しています。デフォルトでは journald のログはメモリ上(/run/log/journal/)に保存されるため、再起動するとログが消失します。障害調査のためにログを永続化します。

ログ保存ディレクトリの作成

実行コマンド:

# mkdir -p /var/log/journal

journald.conf の編集

実行コマンド:

# vi /etc/systemd/journald.conf

[Journal] セクションの Storage= を以下のように変更します。

変更前:

[Journal]
Audit=

変更後:

[Journal]
Storage=persistent
Audit=

journald を再起動して設定を反映します。

実行コマンド:

# systemctl restart systemd-journald

ログが永続化されていることを確認します。

実行コマンド:

# ls /var/log/journal/

/var/log/journal/ 配下にマシン ID のディレクトリが作成されていれば、ログの永続化が完了しています。これにより、再起動後も過去のログを journalctl コマンドで参照できます。

切り戻し方法

ログ永続化を無効に戻す場合は、journald.conf の Storage=persistentStorage=volatile に変更し、systemctl restart systemd-journald を実行してください。/var/log/journal/ ディレクトリは手動で削除します。

16. kdump の確認・有効化

kdump はカーネルパニック発生時にメモリダンプ(vmcore)を保存するための機能です。vmcore があることで、障害の原因をカーネルレベルで解析できます。本番サーバーでは有効にしておくことを推奨します。

現在の状態を確認する

実行コマンド:

# systemctl status kdump

inactive (dead) と表示された場合は、kdump が動作していません。crashkernel パラメータがカーネルコマンドラインに含まれていないことが原因です。

crashkernel パラメータの確認

実行コマンド:

# cat /proc/cmdline

実行結果:

BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.14.0-570.12.1.el9_6.x86_64 root=/dev/mapper/almalinux-root ro resume=/dev/mapper/almalinux-swap rd.lvm.lv=almalinux/root rd.lvm.lv=almalinux/swap

出力に crashkernel= が含まれていない場合、kdump 用のメモリが予約されていないため、kdump は動作しません。

crashkernel パラメータの追加

grubby コマンドで crashkernel パラメータを追加します。

実行コマンド:

# grubby --update-kernel=ALL --args="crashkernel=auto"

kdump サービスを有効化します。

実行コマンド:

# systemctl enable kdump

この設定は再起動後に有効になります

crashkernel パラメータはカーネル起動時に読み込まれるため、設定の反映には OS の再起動が必要です。再起動後に systemctl status kdumpactive (exited) と表示されることを確認してください。

切り戻し方法

kdump を無効に戻す場合は systemctl disable kdump を実行し、grubby --update-kernel=ALL --remove-args="crashkernel=auto" で crashkernel パラメータを削除してください。反映には再起動が必要です。

17. スワップの確認

スワップは、物理メモリが不足した場合にディスクをメモリの代替として使用する領域です。スワップが存在しないと、メモリ不足時に OOM Killer(Out of Memory Killer)がプロセスを強制終了します。

実行コマンド:

# swapon --show

実行結果:

NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 3.9G   0B   -2

この出力から、/dev/dm-1(LVM のスワップパーティション)に 3.9G のスワップ領域が確保されていることが分かります。USED が 0B なので、現時点ではスワップは使用されていません。

スワップが表示されない場合は、スワップ領域が未作成または無効化されています。サーバーのメモリ容量と用途に応じて、スワップの追加を検討してください。

トラブルシューティング

chronyc sources で同期先が表示されない

chronyc sources の出力で同期先が表示されない場合や、Reach の値が 0 のまま変わらない場合は、NTP サーバーとの通信が到達していません。以下の原因を確認してください。

  • ファイアウォール(firewalld や上位ネットワーク機器)で NTP ポート(123/udp)がブロックされている
  • /etc/chrony.conf に記載した NTP サーバーのホスト名が名前解決できない(DNS 設定を先に完了してください)
  • NTP サーバーのアドレスが誤っている

dnf update でタイムアウトする

dnf update 実行時に接続がタイムアウトする場合は、以下を確認してください。

  • /etc/dnf/dnf.conf に proxy= の設定が入っているか
  • /etc/profile.d/proxy.sh の環境変数が読み込まれているか(echo $http_proxy で確認)
  • 社内にパッケージミラーサーバーがある場合は、/etc/yum.repos.d/ のリポジトリ設定をミラーサーバー向けに変更する必要がある

hostnamectl set-hostname 後にプロンプトに反映されない

hostnamectl set-hostname で設定したホスト名は即時反映されますが、シェルのプロンプト(PS1)に表示されるホスト名は、シェルの起動時に読み込まれた値を使用しています。新しいシェルを開くか、ログインし直すことでプロンプトに反映されます。

kdump が起動しない

systemctl status kdump で inactive (dead) と表示される場合は、crashkernel パラメータが未設定の可能性があります。cat /proc/cmdlinecrashkernel= が含まれているか確認してください。含まれていない場合は、本記事の「16. kdump の確認・有効化」の手順で crashkernel パラメータを追加し、OS を再起動してください。

AlmaLinux 9 総合リファレンスガイド シリーズ一覧

  1. システム基本情報の確認
  2. 初期設定(この記事)
  3. ネットワーク設定(nmcli)
  4. SSH の設定と鍵管理
  5. ユーザー・グループ・パーミッション管理
  6. firewalld の設定
  7. SELinux の運用
  8. ストレージ管理(LVM・XFS・パーティション)
  9. パッケージ管理(dnf・リポジトリ)
  10. systemd とサービス管理
  11. ログ管理(journald・rsyslog・logrotate)
  12. cron・タイマーによるジョブ管理
  13. バックアップとリストア
  14. 監視の基礎(リソース・プロセス・ログ)
  15. セキュリティ強化(脆弱性対応・アクセス制御)
  16. トラブルシューティング手法
  17. 構成管理ツールとの連携(Ansible 基礎)