CentOS7
CentOS7:記事リスト
CentOS7のカテゴリーには以下の記事がリストされています。
CentOS7でネットワークデバイス名を変更する
任意の名前を付けるようになりました。
例としては「eno1」、「eno2」や、「p4p2」など本当にバリエーションは様々です。
※CentOS6系では、eth0、eth1と付けていました。
しかし、この新しいネットワークデバイス名だと
システム的に不具合がある場合があります。
例えば、古いソフトウェアを使用したいという場合、
eth0やeth1でないと正しく動作しないというケースです。
そのような場合は、ネットワークデイバイス名を
従来のCentOS6系のものに編集することで対応できます。
現在のネットワーク状況を確認
下記例では、ネットワークデバイス名がp4p2になっています。これをeth0に変更します。
# ip addr
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: p4p2:
link/ether 58:8a:5a:29:2b:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.0.37/24 brd 192.168.0.255 scope global noprefixroute p4p2
valid_lft forever preferred_lft forever
inet6 fe80::5a8a:5aff:fe29:2bba/64 scope link
valid_lft forever preferred_lft forever
3: wlan0:
link/ether 9c:30:5b:2b:32:6f brd ff:ff:ff:ff:ff:ff
/etc/default/grubファイルの編集
/etc/default/grubファイルを編集します。GRUB_CMDLINE_LINUXの行に「net.ifnames=0」と「biosdevname=0」を追加します。
編集後は「:wq」で保存終了します。
# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_tiger/root
rd.lvm.lv=centos_tiger/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
CentOS7 Hostname(ホスト名)を変更する
変更方法にはいくつか種類があります。
CentOS7のHostname(ホスト名)を一時的に変更する
サーバー起動中のみ変更したHostname(ホスト名)が有効になる方法です。再起動すると元に戻ります。実行にはhostnameコマンドを使用します。
$ su - ←rootになります。 パスワード: 最終ログイン: 2019/10/22 (火) 18:55:57 JST日時 tty1 # hostname ←hostnameコマンドを実行します。 Tiger ←現在のホスト名を表示します。 # hostname Jaguar ←ホスト名を一時的にJaguarに変更します。 # hostname ←再度hostnameコマンドを実行します。 Jaguar ←ホスト名がJaguarに変更されています。
CentOS7で言語ロケールを確認・設定する
localectl コマンドを使用します。
現在設定されている言語ロケールを確認する
現在設定されてる言語ロケールを確認するには、「localectl status」を実行します。# localectl status ←「localectl status」を実行します。 System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp X11 Layout: jp
日本語になっている事が確認できます。
言語ロケールを英語に変更する
言語ロケールを変更するには、「localectl set-locale LANG=」に変更する言語を指定します。
変更後は、ログインし直すことで、言語が変更されます。
# localectl set-locale LANG=en_US.UTF-8 ←「localectl set-locale LANG=en_US.UTF-8」を実行します。 # localectl status ←確認の為「localectl status」を実行します。 System Locale: LANG=en_US.UTF-8 VC Keymap: jp X11 Layout: jp
CentOS7でrootのSSHログインを無効化する
/etc/ssh/sshd_configファイルを編集します。
SSHは、暗号化された状態でリモート接続することができるサービスで、
sshdデーモンが提供しています。
CentOSでは、デフォルト環境のままだと、
SSHでのrootログインが行えてしまいます。
インターネットに公開するサーバーを構築する場合、
その設定のままだとセキュリティ上非常に好ましくないので
無効化する必要があります。
CentOS7でfirewalldの確認と停止(ファイアウォール)
CentOS7のファイアウォールでは、これまでのCentOS6系で使用されていた
iptablesよりもfirewalldを使用することが推奨されています。
※CentOS7でもiptablesが使用できます。その場合、firewalldを停止する必要があります。
逆に、firewalldを使用する場合は、iptablesを停止する必要があります。
インターネットに公開するサーバーでは、ファイアウォールは必須になりますが、
信頼できる内部ネットワーク、開発環境及びテスト環境では無効にしておいた方が
良い場合もあります。
本ページでは、CentOS7から推奨されているfirewalldの状態の確認と、
停止方法を紹介します。
CentOS7でSELinuxを無効化する
ディレクトリビューションではありません。
現在のLinuxシステムの問題点として挙がっているものに、
root(スーパーユーザー)の権限が強すぎるというものがあります。
正規のユーザーが、rootを使用する分には問題ないのですが、
万が一、不正ユーザーがrootを奪取した場合、
システムを完全に乗っ取られてしまい、被害が大きくなりすぎるのです。
そこで誕生したのがSELinuxになります。
アメリカ国家安全保障局 (NSA) が開発し、GPL下で提供しています。
機能を簡単に説明すると、rootの権限を弱くすることがSELinuxの役割になります。
rootに集中している権限を、ユーザーやプロセスごとに振り分けることで、
root権限を奪取されたとしても、被害を限定的に抑えるというのが目的になり、
前提として、サーバーに侵入された場合に、その機能が役立つというものです。
従って、サーバー侵入を防ぐというものではありません。
また、扱うデータの重要度や他のセキュリティ対策での防衛、
設定の複雑さなどからくるサーバー管理のしにくさなどを
総合的に鑑みて、敢えてSELinuxを無効にしているシステムも多く存在します。
CentOS7でSElinux(Security-Enhanced-Linux)を無効化する手順を紹介します。
SELinux無効化設定を行う前に、現在のSElinuxの状態を確認しましょう。
SELinuxの状態を確認するには、getenforceコマンドを使用します。
このコマンドを実行すると、SELinuxの状態が確認できます。
ステータスは、次の通りです。
| Enforcing | 有効な状態 |
| Permissive | 無効な状態であるが、SELinuxのログは記録している状態 |
| Disabled | 無効な状態 |
CentOS7バージョンアップ手順
CentOSを最新バージョンにアップデートする手順を紹介します。
本作業を行うことで、常に最新のCentOS を利用することが可能になります。
注意
実行タイミングやサーバー環境によっては、システムやアプリケーションの誤作動や
不具合、場合によっては、サーバー自体が起動しなくなる可能性があります。
そうなっても良いように、実行する場合は、必ずテスト環境(壊れても良い環境)で
事前確認を行ってください。
今回の例では、CentOS7.4を使用していますが、
他のバージョンでも基本的に手順は同じになります。
1.Linux のバージョンを確認します。
$ su -
パスワード: ←rootパスワードを入力します(パスワードは入力しても表示されません)
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
2.カーネルバージョンを確認します。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
3.カーネルをアップデート対象から除外する設定を行います。
バージョンアップの多くのトラブル原因は、
カーネルアップデートなので、取り敢えず除外します。
13 行目に「exclude=kernel*」を追加します。
# vi /etc/yum.conf
--------------------------------------------------------------------
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
exclude=kernel* ←「exclude=kernel*」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。
4.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 147 kB 00:00:03
(2/4): updates/7/x86_64 /primary_db | 2.0 MB 00:00:08
〜中略〜
libinput x86_64 1.8.4 -2.el7 base 142 k
libwayland-client x86_64 1.14.0-2.el7 base 32 k
libwayland-cursor x86_64 1.14.0 -2.el7 base 20 k
libwayland-server x86_64 1.14.0 -2.el7 base 38 k
llvm-private x86_64 5.0.0 -3.el7 base 20 M
lz4 x86_64 1.7.5 -2.el7 base 98 k
mesa-libwayland-egl x86_64 17.2.3 -8.20171019.el7 base 17 k
unbound-libs x86_64 1.6.6 -1.el7 base 405 k
volume_key-libs x86_64 0.3.9-8.el7 base 140 k
トランザクションの要約
============================================================
インストール 4 パッケージ(+20 個の依存関係のパッケージ)
更新 613 パッケージ ←この辺りの数字は、実行タイミングによって異なります。
合計容量: 642 M
総ダウンロード容量: 641 M
Is this ok [y/d/N]: y ←「y」を入力します。
〜中略〜
xorg-x11-server-common.x86_64 0:1.19.5-5.el7
xorg-x11-xinit.x86_64 0:1.3.4-2.el7
yum.noarch 0:3.4.3-158.el7.centos
yum-plugin-fastestmirror.noarch 0:1.1.31 -45.el7
yum-utils.noarch 0:1.1.31-45.el7
置換:
grub2.x86_64 1:2.02-0.64.el7.centos grub2 -tools.x86_64 1:2.02-0.64.el7.centos
完了しました!
--------------------------------------------------------------------
5.サーバーを再起動します。
# shutdown -r now
6.再起動後、Linux のバージョンを確認します。
下記の例では、CentOS7.5 にバージョンアップしていますが、
実行タイミングによってバージョンが異なる場合があります。
$ su -
パスワード:
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
7.カーネルバージョンを確認します。
カーネルのバージョンはアップデートから除外しているので、変わっていません。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
8.カーネルのバージョンアップをします。
13 行目の「exclude=kernel*」行頭に「#」を追加します。
# vi /etc/yum.conf
--------------------------------------------------------------------
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
#exclude=kernel* ←行頭に「#」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。
9.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
〜中略〜
---> パッケージkernel-tools-libs.x86_64 0:3.10.0-693.el7 を更新
---> パッケージkernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7 をアップデート
--> 依存性解決を終了しました。
依存性を解決しました
============================================================
Package アーキテクチャーバージョン リポジトリー 容量
============================================================
インストール中:
kernel x86_64 3.10.0-862.3.2.el7 updates 46 M
kernel-devel x86_64 3.10.0-862.3.2.el7 updates 16 M
更新します:
kernel-headers x86_64 3.10.0-862.3.2.el7 updates 7.1 M
kernel-tools x86_64 3.10.0-862.3.2.el7 updates 6.2 M
kernel-tools-libs x86_64 3.10.0-862.3.2.el7 updates 6.2 M
トランザクションの要約
============================================================
インストール 2 パッケージ ←この辺りの数字や内容は、実行タイミングによって異なります。
更新 3 パッケージ
総ダウンロード容量: 81 M
Is this ok [y/d/N]: y ←「y」を入力します。
〜中略〜
検証中 : kernel-headers-3.10.0-693.el7.x86_64 7/8
検証中 : kernel-tools-libs-3.10.0-693.el7.x86_64 8/8
インストール:
kernel.x86_64 0:3.10.0-862.3.2.el7 kernel -devel.x86_64 0:3.10.0-862.3.2.el7
更新:
kernel-headers.x86_64 0:3.10.0-862.3.2.el7 kernel-tools.x86_64 0:3.10.0-862.3.2.el7
kernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7
完了しました!
--------------------------------------------------------------------
10.サーバーを再起動します。
# shutdown -r now
11.カーネルバージョンを確認します。
カーネルがバージョンアップしています。
$ su -
パスワード:
[root@Tiger ~]# uname -a
Linux Tiger 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
本手順を実施することで、常に最新のCentOS を利用することが出来ます。
しかし、冒頭でも説明しましたが、アップデートによるトラブルが発生する場合も
ありますので、実施する際は、必ずテスト環境で問題がないことを確認してから、
本番環境で実施してください。
CentOS7のNICをCentOS6系のeth0にする
CentOS7では、NICのパーティション名を自動で割り当てるよう仕様変更されています。
しかし、その仕様でNICを命名されると、一部正しく動作しないソフトウェアが存在します。
そのようなソフトウェアを利用したい場合、従来のCentOS6系で使用されているeth0に
NICの名前を変更します。
1.「/etc/default/grub」を編集します。
[root@Tiger src]# grep net.ifnames /etc/default/grub || sed '/^GRUB_CMDLINE_LINUX/s/\"$/ net.ifnames=0 biosdevname=0\"/g' /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos_tiger/root rd.lvm.lv=centos_tiger/swap net.ifnames=0 rhgb quiet"
2.設定を反映させます。
[root@Tiger src]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8680acc02b184dddaeb10d6dafc68539
Found initrd image: /boot/initramfs-0-rescue-8680acc02b184dddaeb10d6dafc68539.img
done
3.NICの設定ファイルをリネームします。
※ifcfg-p4p2 の「ip4p2」の箇所は環境によって異なりますので変更してください。
[root@Tiger src]# mv /etc/sysconfig/network-scripts/ifcfg-p4p2 /etc/sysconfig/network-scripts/ifcfg-eth0
4.デバイス情報を表示し、MACアドレスを確認します。
[root@Tiger ~]# nmcli device show
GENERAL.デバイス: p4p2
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 58:8A:5A:29:2B:BA ←控える
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eth0
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.36/24
IP4.ゲートウェイ: 192.168.0.1
IP4.DNS[1]: 192.168.0.1
IP6.アドレス[1]: fe80::5a8a:5aff:fe29:2bba/64
IP6.ゲートウェイ: --
GENERAL.デバイス: wlan0
GENERAL.タイプ: wifi
GENERAL.ハードウェアアドレス: C6:A5:AA:5F:4B:0A
GENERAL.MTU: 0
GENERAL.状態: 30 (切断済み)
GENERAL.接続: --
GENERAL.CON パス: --
GENERAL.デバイス: lo
GENERAL.タイプ: loopback
GENERAL.ハードウェアアドレス: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.状態: 10 (管理無し)
GENERAL.接続: --
GENERAL.CON パス: --
IP4.アドレス[1]: 127.0.0.1/8
IP4.ゲートウェイ: --
IP6.アドレス[1]: ::1/128
IP6.ゲートウェイ: --
5.NICのデバイスファイルを編集します。
3でリネームしたファイルを編集します。
[root@Tiger ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0 ←eth0に修正します。
HWADDR=58:8A:5A:29:2B:BA ←4で確認したMACアドレスを追加します。
UUID=22f748d6-6718-47ac-bc27-7188a419465f
DEVICE=eth0 ←eth0に修正します。
ONBOOT=yes
IPADDR=192.168.0.36
PREFIX=24
GATEWAY=192.168.0.1
DNS1=192.168.0.1
6.サーバーを再起動します。
[root@Tiger ~]# shutdown -r now
7.再起動後、NIC名をを確認します。
[root@Tiger ~]# nmcli device show
CentOS7でログ容量制限を設定する
ログが肥大化すると、システムファイルの空き容量が無くなり、
システムの動作に悪影響を及ぼします。
そのため、ログ容量を予め設定しておくのが一般的です。
CentOS7から採用されているjournaldは、デフォルトでファイルシステムの
10%がログの容量として割り当てられています。
また、journaldには、ログの肥大化を防ぐために、ログの最大サイズの指定して、
古いログを自動的に削除するログローテート機能、従来のsyslogデーモン、
カーネルログバッファ(kmsg)にログ転送するなどの機能があります。
■ログの容量制限をする
journaldで生成されるログの容量を制限するには、
「/etc/systemd/journald.conf」ファイルの「SystemMaxUse」パラメータを設定します。
下記例ではログの容量を256MBに制限しています。
# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details
[Journal]
#Storage=auto
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=login
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
SystemMaxUse=256M ←追加します。
追加したら「:wq」で保存終了します。
■journaldサービスを再起動します。
設定を変更したら、journaldサービスを再起動します。
# systemctl restart systemd-journald.service
■journaldで管理されているすべてのログ容量を確認する
journalctlコマンドに「--disk-usage」を付けて実行します。
# journalctl --disk-usage
Journals take up 24.0M on disk.
CentOS7でログ保存設定をする
CentOS7のjournaldのログファイルは、/run/log/journalディレクトリに保存されます。
しかし、/runディレクトリは、tmpsファイルシステムでマウントされているため、
OSの再起動を行うと、/run/log/journalディレクトリ配下に保存されている
ログファイルは、削除されてしまいます。
# df -HT | grep tmpfs
devtmpfs devtmpfs 504M 0 504M 0% /dev
tmpfs tmpfs 514M 0 514M 0% /dev/shm
tmpfs tmpfs 514M 14M 501M 3% /run ←tmpfsでマウント
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup
そこで、OSを再起動してもログが削除されないようにするには、
journaldの設定ファイル「/etc/systemd/journald.conf」に
「Storage=persistent<」を追加します。
■ファイルを編集します。
# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details
[Journal]
#Storage=auto
Storage=persistent ←追加する
追加したら「:wq」で保存終了します。
■journaldサービスを再起動します。
# systemctl restart systemd-journald.service
「Storage=persistent」設定を行うと、ログの保存先ディレクトリが、
「/run/log/journal」から「/var/log/journal/」に変更され、
その配下にmachine-id名が付与されたディレクトリが作成されます。
そのディレクトリ内にログが永続的に保存されます。
# ls -l /var/log/journal/
合計 0
drwxr-xr-x 2 root root 27 8月 8 15:40 c035188450f4455691b947425145773d
※「c035188450f4455691b947425145773d」がmachine-id名が作成されたディレクトリ
※machine-idは、/etc/machine-idファイルで確認できます。
また、/etc/systemd/journald.confファイルに「Storage=auto」を設定した場合、
「/var/log/journal/」ディレクトリが存在する場合は、「/var/log/journal/」に保存し、
存在しない場合は、「/run/log/journal」に保存します。
CentOS7のログ管理(systemd、journald)
systemdがログ管理を行う新しい仕組みが導入されています。
従来のsyslogは、複数システムのログをネットワーク経由で一括管理出来たり、
多くの管理ソフトウェア製品とも連携が可能でしたが、
膨大なログの中から欲しい情報を抽出するには、
様々なコマンドやツールを駆使する必要がありました。
そこでCentOS7では、syslogでのログ抽出作業量を軽減するために、
以前と比べて格段に情報を抽出しやすい仕組みに変更されています。
■journaldの状態を確認する
CentOS7では、ログ収集の仕組みとして、「journald」を使用します。
サービス名は「systemd-journald.service」です。
journaldの起動確認は、systemctlコマンドを実行します。
# systemctl status systemd-journald.service
systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since 金 2017-08-04 13:39:06 JST; 46min ago
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 712 (systemd-journal)
Status: "Processing requests..."
CGroup: /system.slice/systemd-journald.service
mq712 /usr/lib/systemd/systemd-journald
8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Journal started
8月 04 13:39:07 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
Hint: Some lines were ellipsized, use -l to show in full.
■ブートログを確認する
journaldが収集したログを出力するためのコマンドは、「journalctl」になります。
サーバーに搭載されている各種ハードウェアの情報を確認するには、
CentOS7が起動した時のブートログを確認します。
ブートログを確認するには、journalctlコマンドにオプション「-b」を付けて実行します。
# journalctl -b
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:29:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:
■ログを日時でフィルタリングする
journalctlコマンドには、日時でログをフィルタリングする機能が備わっています。
日時開始を「--since=""」で、日時終了を「--until=""」で指定します。
下記例では、2017年8月4日 14時29分〜14時33分1秒までのログを出力しています。
# journalctl --since="2017-08-04 14:29:00" --until="2017-08-04 14:33:01"
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:35:01 JST. --
8月 04 14:29:01 Tiger systemd[1]: Starting Session 62 of user root.
8月 04 14:29:01 Tiger systemd[1]: Started Session 62 of user root.
8月 04 14:29:01 Tiger CROND[5038]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 63 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 63 of user root.
8月 04 14:30:01 Tiger CROND[5046]: (root) CMD (/usr/lib64/sa/sa1 1 1)
8月 04 14:30:01 Tiger CROND[5047]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:31:01 Tiger systemd[1]: Starting Session 65 of user root.
8月 04 14:31:01 Tiger systemd[1]: Started Session 65 of user root.
8月 04 14:31:01 Tiger CROND[5056]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:32:01 Tiger systemd[1]: Starting Session 66 of user root.
8月 04 14:32:01 Tiger systemd[1]: Started Session 66 of user root.
8月 04 14:32:01 Tiger CROND[5061]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
デフォルトでは、自動的にlessページャが起動するので、
スペースでページ送りをしますが、
不要な場合は、「--no-pager」オプションを付与します。
■今日のログを出力する
実行日当時のログを出力したい場合は、--sinceオプションに「today」を指定します。
# journalctl --since=today
- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:40:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:
他にも「yesterday」や何に使うか分かりませんが「tomorrow」も指定できます。
■特定のサービスに絞ってログを表示する
特定のサービスのみのログを出力したい場合は、
「-u」オプションにサービス名を付けて実行します。
下記例では、SSHサービスのログを出力しています。
# journalctl --since="2017-08-03 14:29:00" --until="2017-08-04 14:33:01" -u sshd.service
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:44:01 JST. --
8月 04 13:39:09 Tiger systemd[1]: Starting OpenSSH server daemon...
8月 04 13:39:09 Tiger systemd[1]: Started OpenSSH server daemon.
8月 04 13:39:09 Tiger sshd[1106]: Server listening on 0.0.0.0 port 2222.
8月 04 14:24:24 Tiger sshd[3972]: Accepted publickey for pakira from 192.168.0.80 port 50700 ssh2:
■リアルタイムでログを確認する
現在、リアルタイムで出力しているログを表示させたい場合は、
journalctlコマンドに「-f」オプションを付けて実行します。
従来の「tail -f /var/log/messages」と同様な表示ができます。
# journalctl -f
-- Logs begin at 金 2017-08-04 13:39:02 JST. --
8月 04 18:32:01 Tiger systemd[1]: Started Session 267 of user root.
8月 04 18:32:01 Tiger CROND[11781]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:33:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:33:01 Tiger systemd[1]: Starting Session 268 of user root.
8月 04 18:33:01 Tiger systemd[1]: Started Session 268 of user root.
8月 04 18:33:01 Tiger CROND[11787]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:34:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:34:01 Tiger systemd[1]: Starting Session 269 of user root.
8月 04 18:34:01 Tiger systemd[1]: Started Session 269 of user root.
8月 04 18:34:01 Tiger CROND[11793]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
■プライオリティによるログのフィルタリング
syslogでは、ログのプライオリティ(緊急度)に応じた管理ができましたが、
journalctlでも同様の出力が行なえます。
プライオリティには、緊急度の高いものからemerg、alert、err、warning、
notice、debugがあります。
■warningプライオリティを表示する
特定のプライオリティを表示させるには、journalctlにオプション「-p」を付けて、
フィルタリングしたいプライオリティを指定します。
下記例では、warningプライオリティを表示しています。
# journalctl -p warning
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:42:01 JST. --
8月 04 13:39:02 Tiger kernel: ACPI: RSDP 00000000000f6a10 00024 (v02 PTLTD )
8月 04 13:39:02 Tiger kernel: ACPI: XSDT 000000003feea65b 0005C (v01 INTEL 440BX 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: FACP 000000003fefee73 000F4 (v04 INTEL 440BX 06040000 PTL
8月 04 13:39:02 Tiger kernel: ACPI: DSDT 000000003feec3fc 12A77 (v01 PTLTD Custom 06040000 MSFT
8月 04 13:39:02 Tiger kernel: ACPI: FACS 000000003fefffc0 00040
8月 04 13:39:02 Tiger kernel: ACPI: BOOT 000000003feec3d4 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: APIC 000000003feeb8bd 00742 (v01 PTLTD ? APIC 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: MCFG 000000003feeb881 0003C (v01 PTLTD $PCITBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: SRAT 000000003feea757 008A8 (v02 VMWARE MEMPLUG 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: HPET 000000003feea71f 00038 (v01 VMWARE VMW HPET 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: WAET 000000003feea6f7 00028 (v01 VMWARE VMW WAET 06040000 VMW
8月 04 13:39:02 Tiger kernel: kexec: crashkernel=auto resulted in zero bytes of reserved memory.
■errプライオリティを表示する
# journalctl -p err
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:44:01 JST. --
8月 04 13:39:02 Tiger kernel: Detected CPU family 6 model 78
8月 04 13:39:02 Tiger kernel: Warning: Intel CPU model - this hardware has not undergone upstream t
8月 04 13:39:03 Tiger kernel: sd 0:0:0:0: [sda] Assuming drive cache: write through
8月 04 13:39:07 Tiger kernel: piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!
8月 04 13:39:08 Tiger NetworkManager[839]: _nl_get_vtable: assertion 'vtable.handle' failed
8月 04 13:39:23 Tiger systemd[1]: Failed to start Crash recovery kernel arming.
これまでの例では各プライオリティ名を指定してフィルタリングしましたが、
これをプライオリティの値で指定することも可能です。
各プライオリティと値は下記の対応となっています。
| emerg | 0 |
| alert | 1 |
| crit | 2 |
| err | 3 |
| warning | 4 |
| notice | 5 |
| debug | 6 |
■emergプライオリティのログをプライオリティ値で表示する
emergログが存在しないので、loggerコマンドを使用してテストログを吐き出し、
その後プライオリティ値「0」でemergログを表示します。
# logger -p daemon.emerg "TEST LOG EMERG"
#
Message from syslogd@Tiger at Aug 7 16:23:46 ...
pakira:TEST LOG EMERG
# journalctl -p 0
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:23:46 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG
■alertプライオリティのログをプライオリティ値で表示する
プライオリティ値「1」でalertログを表示します。
# logger -p daemon.alert "TEST LOG ALERT"
# journalctl -p 1
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:26:26 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG
8月 07 16:26:26 Tiger pakira[3789]: TEST LOG ALERT
journalctlを実行すると、alertよりプライオリティの高い
emergプライオリティも表示されていることが分かります。
■カーネルログを表示する
カーネルログを表示するには、
journalctlコマンドにオプション「-k」を付けて実行します。
従来の「dmesg」コマンドに相当します。
# journalctl -k
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:29:01 JST. --
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuset
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpu
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuacct
8月 07 15:57:16 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 07 15:57:16 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 07 15:57:16 Tiger kernel: Disabled fast string operations
8月 07 15:57:16 Tiger kernel: e820: BIOS-provided physical RAM map:
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000100000-0x000000003fedffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003fee0000-0x000000003fefefff] ACPI data
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003feff000-0x000000003fefffff] ACPI NVS
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003ff00000-0x000000003fffffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
■特定のプロセスIDのログを表示する
特定のプロセスIDに関係するログを表示する場合は、
journalctlコマンドに「_PID=プロセス番号」を付けて実行します。
# journalctl _PID=1112
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:32:01 JST. --
8月 07 15:57:23 Tiger clamd[1112]: clamd daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
8月 07 15:57:23 Tiger clamd[1112]: Running as user amavis (UID 991, GID 991)
8月 07 15:57:23 Tiger clamd[1112]: Log file size limited to 1048576 bytes.
8月 07 15:57:23 Tiger clamd[1112]: Reading databases from /var/lib/clamav
8月 07 15:57:23 Tiger clamd[1112]: Not loading PUA signatures.
8月 07 15:57:23 Tiger clamd[1112]: Bytecode: Security mode set to "TrustSigned".
■実行ファイルのパス指定でのログ表示
journalctlコマンドにサービスを提供する実行ファイルのパスを指定して
それに関連するログを表示することができます。
下記例では、SSHサービスの実行ファイルである「/usr/sbin/sshd」関連のログを
表示しています。
# journalctl /usr/sbin/sshd
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:34:06 JST. --
8月 07 15:57:23 Tiger sshd[1105]: Server listening on 0.0.0.0 port 22.
8月 07 16:22:03 Tiger sshd[3308]: Accepted publickey for pakira from 192.168.0.80 port 54097 ssh2:
8月 07 16:22:04 Tiger sshd[3308]: pam_unix(sshd:session): session opened for user pakira by (uid=0)
CentOS7のホスト名設定(nmcliコマンド)
CentOS6までは、ホスト名の設定は「/etc/sysconfig/network」ファイルで
管理していましたが、CentOS7では、「/etc/hostname」ファイルで管理します。
ホスト名を変更するには、、「/etc/hostname」ファイルを直接編集するか、
または、nmcliコマンドでもホスト名設定が可能です。
現在設定されているホスト名を確認するには下記コマンドを実行します。
[root@Tiger ~]# nmcli general hostname
Tiger.linuxmaster.jp
上記の例ではホスト名に「Tiger.linuxmaster.jp」が設定されていることが確認できます。
ホスト名を「Leo.linuxmaster.jp」に変更します。
[root@Tiger ~]# nmcli general hostname Leo.linuxmaster.jp
変更後のホスト名を確認します。
[root@Tiger ~]# hostname
Leo.linuxmaster.jp
「/etc/hostname」ファイルの内容も確認します。
[root@Tiger ~]# cat /etc/hostname
Leo.linuxmaster.jp
CentOS7のネットワーク管理
CentOS7のネットワーク管理はNetworkManagerを利用して行います。
CentOS6系では、Network Administration Toolに含まれる
system-config-networkを使用した管理、管理ファイルを直接編集する
運用が一般的でしたが、CentOS7では、NetworkManagerを使用した
管理が推奨されています。
従来のNetworkManagerは、すべてのネットワーク機能を制御できなかった為、
直接ファイルを編集し、サービスの起動や停止を行っていましたが、
CentOS7のNetworkManagerでは、ネットワーク関連の操作が大幅に強化され、
設定ファイルを直接編集しなくても、コマンドラインやGUIツールで設定ファイルを
生成することが可能になっています。
また、NIC(Network Interface Card)に付与されるインタフェース名の命名管理も
これまでのCentOS6系とは全く異なる仕様となっています。
CentOS7では、ネットワークインタフェース名に永続的に変わらない名前が付与がされます。
この永続的な命名をConsistent Network Device Namingと言い、一般的なx86サーバーに
搭載されているオンボードのNICでは、eno1、eno2、拡張カードスロットに装着するNICでは
ens1、ens2、またはens7f0、ens7f1などの名前が付与されます。
■nmcliコマンド
nmcli(Network Manager Command Line Interface)コマンドは、
CentOS7のネットワーク設定を行なうNetworkManager基本コマンドになります。
nmcliコマンドには、下記パラメーターが用意されています。
・connection:接続の設定
・device:デバイス管理
・general:ホスト名設定、ロギング、権限操作、状態の表示
・networking:コネクティビティのチェック、有効化、無効化管理
・radio:ワイヤレスネットワークの設定有効化、無効化管理
■インタフェースの接続状態確認
[root@Tiger ~]# nmcli connection
名前 UUID タイプ デバイス
eno1 4a181dd8-0bac-43c5-8d4f-9e89c31e14b1 802-3-ethernet eno1
上記の例では、NICのインタフェース名がeno1として割当られています。
デバイスの項目にインタフェース名が表示されている場合は
ネットワークに接続されていることを表します。
■インタフェースの接続と切断
「nmcli connection」でupやdownを指定すると、
インタフェースの接続、切断を制御できます。
下記例ではインタフェースeno1を切断しています。
[root@Tiger ~]# nmcli connection down eno1
[root@Tiger ~]# nmcli connection
名前 UUID タイプ デバイス
eno1 4a181dd8-0bac-43c5-8d4f-9e89c31e14b1 802-3-ethernet --
デバイスの項目gが「--」になり、切断されていることが分かります。
再度接続するには、下記コマンドを実行します。
[root@Tiger ~]# nmcli connection up eno1
■デバイス名とデバイスの状態確認
インタフェースのデバイス名とその状態を確認するには「device」を指定します。
[root@Tiger ~]# nmcli device
デバイス タイプ 状態 接続
eno1 ethernet 接続済み eno1
lo loopback 管理無し --
物理NICが1ポートあるサーバーで、デバイス名がeno1と割り当てられています。
またループバックデバイスとしてloが認識されています。状態と接続からeno1が
ネットワークに接続されていることが分かります。
■詳細なデバイス情報を表示
デイバイスのMACアドレス、IPアドレス、MTUなどの詳細を確認するには、
「nmcli device」に「show」を付けて実行します。
[root@Tiger ~]# nmcli device show
GENERAL.デバイス: eno1
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:0C:29:37:80:B6
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eno1
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.36/24
IP4.ゲートウェイ: 192.168.0.1
IP4.DNS[1]: 192.168.0.1
IP6.アドレス[1]: fe80::20c:29ff:fe37:80b6/64
IP6.ゲートウェイ:
GENERAL.デバイス: lo
GENERAL.タイプ: loopback
GENERAL.ハードウェアアドレス: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.状態: 10 (管理無し)
GENERAL.接続: --
GENERAL.CON パス: --
IP4.アドレス[1]: 127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]: ::1/128
IP6.ゲートウェイ:
「nmcli device show」だけでは複数のNICが存在した場合、
そのすべての状態を表示してしまいます。
しかし、インタフェース名を指定することで出力を絞ることができます。
[root@Tiger ~]# nmcli device show eno1
GENERAL.デバイス: eno1
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:0C:29:37:80:B6
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eno1
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.36/24
IP4.ゲートウェイ: 192.168.0.1
IP4.DNS[1]: 192.168.0.1
IP6.アドレス[1]: fe80::20c:29ff:fe37:80b6/64
IP6.ゲートウェイ:
■接続情報の変更
・IPアドレス・ゲートウェイの変更
インタフェースに割り当てたIPアドレスやゲートウェイを変更するには、
「nmcli connection」に「modify」を指定します。
下記例では、IPアドレス192.168.0.36/24、ゲートウェイが192.168.0.1が
割り当てられている環境で、eno1のIPアドレスを192.168.0.20/24、
ゲートウェイを192.168.0.254に変更しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.addresses "192.168.0.20/24 192.168.0.254"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
「nmcli connection down eno1」が従来のifdown、
「nmcli connection up eno1」がifupに相当し、eno1を再起動しています。
・DNS・静的ルーティング変更
DNSサーバーと静的ルーティングを変更するには「ipv4.dns」、「ipv4.routes」を指定します。
下記の例では、eno1のDNSサーバーのIPアドレスを「8.8.8.8」、「4.4.4.4」を指定しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.dns "8.8.8.8 4.4.4.4"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
下記の例では、静的ルーティングとして、「10.0.0.0/24」のネットワークアドレスで
ルーターのIPアドレス「10.0.0.1」を指定しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.routes "10.0.0.0/24 10.0.0.1"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
CentOS7での日付、時刻、タイムゾーン設定
CentOS7では、日付、時刻の設定コマンドとして従来のdateコマンド、hwclockコマンドが
存在していますが、新たにsystemdで制御されるtimedatectlコマンドが用意されています。
■日付、時間、タイムゾーンの表示
timedatectlコマンドをオプションなしで実行すると、
日付、時間、タイムゾーン、NTPの同期設定の有無などを表示できます。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl
Local time: 木 2016-01-14 13:51:12 JST
Universal time: 木 2016-01-14 04:51:12 UTC
RTC time: 木 2016-01-14 04:51:11
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■日付の設定
timedatectlで日付設定を行う場合は、オプションに「set-time」を付けて実行します。
下記の例では、2016年1月15日に設定しています。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-time 2016-01-15
[root@Tiger system]# timedatectl
Local time: 金 2016-01-15 00:00:03 JST
Universal time: 木 2016-01-14 15:00:03 UTC
RTC time: 木 2016-01-14 15:00:04
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■時刻の設定
timedatectlで時刻設定を行う場合も、オプションに「set-time」を付けて実行します。
下記の例では、15時54分00秒に設定しています。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-time 15:54:00
[root@Tiger system]# timedatectl
Local time: 金 2016-01-15 15:54:00 JST
Universal time: 金 2016-01-15 06:54:00 UTC
RTC time: 金 2016-01-15 06:54:00
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■タイムゾーンの表示
timedatectlでタイムゾーンを表示するには、オプション「list-timesones」を付けて実行します。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
〜中略〜
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Thimphu
Asia/Tokyo
-----------------------------------------------------------------
■タイムゾーンの変更
タイムゾーンを変更するには、timedatectlコマンドにオプション「set-timesone」を付けて実行します。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-timezone Asia/Tokyo
-----------------------------------------------------------------
CentOS7でのロケール、キーボード設定
CentOS7でロケールとキーボードの設定変更するには、localectlコマンドを使用します。
<<ロケール設定>>
■ロケール状態の確認
現在のロケールの状態を確認します。
-----------------------------------------------------------------
[root@Tiger system]# localectl
System Locale: LANG=ja_JP.UTF-8
VC Keymap: jp
X11 Layout: jp
-----------------------------------------------------------------
■ロケールを日本語に設定
-----------------------------------------------------------------
[root@Tiger system]# localectl set-locale LANG=ja_JP.utf8
[root@Tiger system]# localectl
Syststrongm Locale: LANstrong=ja_JP.utf8
VC Keymap: jp
X11 Layout: jp
-----------------------------------------------------------------
■ロケールの設定ファイル
ロケールの設定ファイルは、「/etc/locale.conf」になります。
-----------------------------------------------------------------
[root@Tiger system]# ls -l /etc/locale.conf
-rw-r--r-- 1 root root 16 1月 14 13:28 /etc/locale.conf
[root@Tiger system]# cat /etc/locale.conf
LANG=ja_JP.utf8
-----------------------------------------------------------------
ja_JP.utf8に設定ファイルが変更されています。
<<キーボード設定>>
■キーマップの表示
利用可能なキーマップを表示します。
-----------------------------------------------------------------
[root@Tiger system]# localectl list-keymaps
ANSI-dvorak
amiga-de
amiga-us
applkey
〜中略〜
it-us
it2
jp
jp-OADG109A
jp-dvorak
jp-kana86
jp106
-----------------------------------------------------------------
■キーボードの設定
日本語のキーマップはjp106になるので、キーボード設定を日本語106キーボードに設定します。
-----------------------------------------------------------------
[root@Tiger system]# localectl set-keymap jp106
[root@Tiger system]# localectl
System Locale: LANG=ja_JP.utf8
VC Keymap: jp106
X11 Layout: jp
X11 Model: jp106
X11 Options: terminate:ctrl_alt_bksp
-----------------------------------------------------------------
■キーマップ設定ファイル
キーマップの設定ファイルは、「etc/vconsole.conf」になります。
-----------------------------------------------------------------
[root@Tiger system]# cat /etc/vconsole.conf
KEYMAP=jp106
FONT=latarcyrheb-sun16
-----------------------------------------------------------------
CentOS7のサービス・デーモンの起動
具体的なコマンドとしては、systemctlを利用して起動、停止、状態確認などを行います。
これらはユニットと呼ばれる単位で管理を行い、下記の幾つかのタイプが存在ます。
| start | httpdを起動します。 |
| stop | httpdを停止します。 |
| service | 各種デーモンやサービスを起動 |
| target | 起動プロセスやサービスなどの複数のユニットをグループにしてまとめたもの |
| mount | ファイルシステムのマウントポイント制御 |
| device | ディスクデバイス |
| socket | FIFO、UNIXドメインソケット、ポート番号などに関する通信資源 |
CentOS7に登録されているサービスのOS起動時の自動起動の有効化、
無効化の設定を確認するには、
ユニット「sevice」を指定し、更に「list-unit-files」を指定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files
UNIT FILE STATE
abrt-ccpp.service enabled
abrt-oops.service enabled
abrt-pstoreoops.service disabled
abrt-vmcore.service enabled
abrt-xorg.service disabled
abrtd.service enabled
arp-ethers.service disabled
以下省略
-----------------------------------------------------------------
■サービスの登録状況確認
サービスの設定例として、WEBサービスの起動、停止、状態確認、
OS起動時の自動起動の有効化、無効化の設定を紹介します。
WEBサービスのがsystemdのユニットで
どのような名前で登録されているのかを確認します。
(例ではApacheがインストールされている環境を利用しています。)
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files | grep -i httpd
httpd.service enabled
-----------------------------------------------------------------
WEBサーバーのサービスは「httpd.service」になります。
「httpd.serviceの右側に「enabled」と表示されています。
これはOS起動時に「httpd.service」が自動起動する
設定になっている事を意味します。
「disabled」だと自動起動しない設定という意味になります。
■サービスの状態確認
サービスの状態確認は、systemctlコマンドに「status」を指定します。
systemctlコマンドを利用する場合、サービス名の「.service 」は省略できます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since 水 2016-01-13 15:40:13 JST; 9min ago
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/httpd.service
tq2114 /usr/local/apache2/bin/httpd -k start
tq2115 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_error_log_%Y%m%d ...
tq2116 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_access_log_%Y%m%d...
tq2117 /usr/local/apache2/bin/httpd -k start
tq2118 /usr/local/apache2/bin/httpd -k start
tq2119 /usr/local/apache2/bin/httpd -k start
tq2120 /usr/local/apache2/bin/httpd -k start
mq2121 /usr/local/apache2/bin/httpd -k start
1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果「Active: active (running) 」となっており、
プロセスも正常起動していることから、Apacheサービスが正常に起動していることが分かります。
■サービスの起動と停止
Apacheを停止してみます。
停止は「systemctl stop httpd」で行えます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl stop httpd
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: inactive (dead) since 水 2016-01-13 15:52:20 JST; 4s ago
Process: 2384 ExecStop=/usr/local/apache2/bin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
1月 13 15:52:20 Tiger systemd[1]: Stopping The Apache HTTP Server...
1月 13 15:52:20 Tiger systemd[1]: Stopped The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果が「Active: inactive (dead)」になっていることから
Apacheが停止していることが分かります。
因みに、起動は「systemctl start httpd」で行えます。
■起動時の自動実行、停止設定
CentOS7が起動した時に、Apacheサービスが自動的に起動するように設定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service'
'/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------
自動起動を無効にする場合は、下記コマンドになります。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl disable httpd
rm '/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------
「enable」を「disable」に変更します。
CentOS7が起動した際、Apacheサービスが自動起動するように 設定されているか確認します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service is-enabled httpd
enabled
-----------------------------------------------------------------
| 機能 | CentOS6 | CentOS7 |
| サービスの開始 | # service httpd start | # systemctl start httpd |
| サービスの停止 | # service httpd stop | # systemctl stop httpd |
| サービスの再起動 | # service httpd restart | # systemctl restart httpd |
| サービスの設定ファイル再読み込み | # service httpd reload | # systemctl reload httpd |
| サービスの状態確認 | # service httpd status | # systemctl status httpd |
| サービスが既に稼働している場合、サービスを再起動する | # service httpd condrestart | # systemctl condrestart httpd |
| 次回OS起動時に自動的にサービスを起動する | # chkconfig httpd on | # systemctl enable httpd |
| 次回OS起動時に自動的にサービスを起動しない | # chkconfig httpd off | # systemctl disable httpd |
| ランレベルごとに全サービスが有効・無効になっているかを表示する | # chkconfig --list | systemctl -t service list-unit-files または # ls /etc/systemd/system/*.wants/ |
| ランレベルごとに指定したサービスが有効・無効になっているかを表示する | # chkconfig --list httpd | # ls /etc/systemd/system/*.wants/httpd.service |
CentOS7の新機能
CentOS7では、CentOS6と日赤くして以下の様な変更、機能強化がされています。
■64ビット版のみをサポート
CentOS7は、32ビット版が廃止され、64ビットのx86_64アーキテクチャのみをサポートしています。32ビット版x86アーキテクチャのマシンを利用する場合には、CentOS4、CentOS5、CentOS6系を利用する必要があります。
■カーネル3.10を採用
Linuxカーネルに3.10が採用されたことで次のような特徴があります。
・テラバイトクラスメモリに対応とそのメモリが搭載された場合のkdumpに対応
・OSのスワップメモリを圧縮する「zswap」により、ディスクI/Oを低減してパフォーマンス向上を図る。
・プロセスの配置を自動的に行うことで、パフォーマンス向上を図る。
・システムを稼働させたままカーネルパッチ適用が可能。
CentOS7で特に注目すべき機能は、「システムを稼働させたままカーネルパッチ適用が可能」です。これは、ダイナミック・カーネル・パッチング(kpatch)と呼ばれ、OSを再起動せずにカーネルにパッチを適用できる機能なため、ダウンタイムの大幅な削減に貢献します。但し、RHEL7ではあくまで実験的要素としての搭載になりますので、CentOS7でもその範囲での利用に留めておくべきです。
※kdumpとは、Linuxカーネルがクラッシュした際、原因特定するためのダンプを取得するツールです。
■xfsファイルシステムを標準サポート
標準ファイルシステムがext4からxfsに変更されました。ジャーナリングに関するIOPS(I/O Per Second)を出来るだけ減らすことで、高スループットでデータの読み書きを実現できるファイルシステムです。
■インストーラーの改良
インストーラーが全面刷新され、従来の手順を追って作業を行うものから、必要なものだけを設定していくという直感的なユーザーインタフェースに改良されています。
操作性としては、インストール実行中にrootパスワード設定や一般ユーザーの作成が行えるなどの向上が図られています。
■ブートローダーの変更
ブートローダーがGRUB2に変更されています。UEFIセキュアブートをサポートし、RAIDやLVMの対応が強化され、高速ブートが可能になっています。
■systemdによるリソース管理とサービス管理を採用
CentOS7ではinitに変わり、systemdが採用されています。これはプロセスをグループ化する機能を持ち、グループごとにリソース制限をかけることが可能になっています。また、initで必要だったアプリケーションの起動と停止用スクリプトが不要となり、これらを管理する煩わしさが解消されています。OSの起動と停止処理においては、並列実行することで、従来よりも素早い起動と停止を実現しています。
■firewalldを採用
ファイアウォール機能が従来のiptablesからfirewalldに変更され、ネットワークインタフェースをゾーンというグループで管理を行うようになっています。ゾーン毎にセキュリティポリシーを適用することで管理性が大幅に向上しています。また、動的にルールを変更することが出来るようなっています。
■NetworkManagerの高機能化
CentOS7では、NetworkManagerの機能が大幅に強化され、ネットワークに関する設定や制御をコマンドやGUIツールによって行えるようになっています。それに伴い、従来のように設定ファイルを直接書き換えることが非推奨になっています。
■仮想サーバー上での利用を想定した改善
仮想サーバー上で利用するドライバ等が改良されています。特に時刻同期においては、chronyが採用されたことで、システムが頻繁に一時停止になったり、断続的にネットワークが切断されても正常に動作するよう改善されています。
■CentOSのバージョン番号
CentOS6までは、バージョン番号として「メジャーバージョン」+「マイナーバージョン」の組み合わせで表記されていました。例えば、メジャーバージョンが6で、マイナーバージョンが6の場合、CentOS6.6と表記されていました。しかし、CentOS7では、「メジャーバージョン」+「マイナーバージョン」+「リリースされたソースコードの年月」を付与する表記に変更されています。例えば、CentOS7.1の場合、RHEL7.1をベースに2015年3月にリリースされたソースコードを基にしているため、CentOS 7.1.1503というバージョン表記になっています。
CentOS7で変わったinit廃止とsystemd導入
initを採用していました。このinitは、BSD系UNIXと、System V系UNIXの2系統が存在し、
従来のCentOSはSystem V系UNIXのinitに似たものを採用しています。
System V系UNIXのinitのメリットは、ランレベルと呼ばれる値によって、
システムの状態を変更できるという単純な仕組みと、OSの起動、停止に関わる
デーモンやプログラムの登録が容易である点です。
しかし、デメリットとして、下記のような点も存在します。
・デーモンやアプリケーション数が増加すると、起動、停止順序の管理や制御が複雑になる。
・initからの起動は、並列処理がされないため、数が増えるとOSの起動処理時間が長くなる。
・プロセスの親子関係が崩れた場合、子プロセスの挙動を適切に制御できない。
そこで、CentOS7からは、initに置き換わる仕組みとしてsystemdを採用しています。
systemdの主なメリットは下記の通りです。
・従来必要だったアプリケーションの起動、停止スプリクトが不要。
・起動処理を並列処理できるので、OSの起動、停止を素早く行える。
・親子関係にあるプロセスの起動と停止制御を適切に行える。
CentOS7では、ランレベルに変わる「ターゲット」が導入されています。
ターゲットとは、systemdにおける複数のサービス(デーモン)などの
制御対象をまとめたものを指します。
CentOS6系のランレベルとCentOS7のsysytemdターゲットを
対応表にすると下記のようになります。
| アーキテクチャ | CentOS6のランレベル | CentOS7のsystemd |
| システム停止 | 0 | # systemctl isolate poweroff.target |
| シングルユーザーモード | 1 | # systemctl isolate rescue.target |
| マルチユーザーモード | 3 | # systemctl isolate multi-user.target |
| グラフィカルログイン | 5 | # systemctl isolate graphical.target |
| OSの再起動 | 6 | # systemctl isolate reboot.target |
| 緊急モード | - | # systemctl isolate emergency.target |
また、CentOS7で定義されてる各種ターゲットが従来のCentOSで採用されていた
ランレベルのどれに相当しているかをコマンドで確認することができます。
[root@Tiger ~]# ls -l /lib/systemd/system/runlevel*target
lrwxrwxrwx. 1 root root 15 2月 23 14:36 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 2月 23 14:36 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 2月 23 14:36 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 2月 23 14:36 /lib/systemd/system/runlevel6.target -> reboot.target
multi-user.targetはランレベル「3」、「graphical.target」はランレベル「5」に
相当することが分かります。
CentOS7のアーキテクチャ変更点
CentOS7は、従来のバージョンと比較して、サポートする論理CPU数やメモリ容量、
ファイルシステムサイズなどの最大値が大幅に引き上げられています。
このページでは主だった変更点を公開しています。
■CentOS7のプロセッサアーキテクチャ
CentOS7は、32ビット版が廃止され、
64ビットのx86_64アーキテクチャのみをサポートしています。
32ビット版x86アーキテクチャのマシンを利用する場合には、
CentOS4、CentOS5、CentOS6系を利用する必要があります。
| アーキテクチャ | 32ビット版 x86 | x86_64 | IA64 | IBM s390,s390x | IBM Power,Mac | SPARC | DEC Alpha | ARM |
| CentOS4 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 対応 | 非対応 |
| CentOS5 | 対応 | 対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS6 | 対応 | 対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS7 | 非対応 | 対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
■論理CPU数
CentOS6では、対応する論理CPU数が、最大64でしたが、
CentOS7になり、CentOS5と同様に、最大論理CPU数が160になっています。
| アーキテクチャ | 32ビット版 x86 | x86_64 | IA64 | IBM s390,s390x | IBM Power,Mac | SPARC | DEC Alpha | ARM |
| CentOS4 | 32 | 64 | 64 | 8 | 64 | 8 | 8 | 非対応 |
| CentOS5 | 32 | 160 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS6 | 32 | 64 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS7 | 非対応 | 160 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
■最大メモリ容量
CentOS7でサポートされる最大メモリ容量は、CentOS6と同様に3TBになりますが、
論理的には64TBまで利用できる可能性があります。
| アーキテクチャ | 32ビット版 x86 | x86_64 | IA64 | IBM s390,s390x | IBM Power,Mac | SPARC | DEC Alpha | ARM |
| CentOS4 | 64GB | 128GB | 256GB | 64GB | 128GB | 64GB | 64GB | 非対応 |
| CentOS5 | 16GB | 1TB | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS6 | 16GB | 3TB(理論上は64TB) | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
| CentOS7 | 非対応 | 3TB(理論上は64TB) | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 |
■ファイルシステム
CentOS7のファイルシステムは、これまでサポートしていたext3、ext4に加え、
XFSがサポートされました。XFSの最大ファイルシステムサイズは500TBになります。
| アーキテクチャ | 最大ファイルサイズ(ext3) | 最大ファイルシステムサイズ(ext3) | 最大ファイルサイズ(ext4) | 最大ファイルシステムサイズ(ext4) | 最大ファイルサイズ(XFS) | 最大ファイルシステムサイズ(XFS) | 最大ブートLUNサイズ(BIOS搭載マシン) | 最大ブートLUNサイズ(UEFI搭載マシン) | プロセス当たりの仮想アドレス空間(x86_64) |
| CentOS4 | 2TB | 8TB | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 非対応 | 512GB |
| CentOS5 | 2TB | 16TB | 16TB | 16TB | 非対応 | 非対応 | 2TB未満 | 非対応 | 2TB |
| CentOS6 | 2TB | 16TB | 16TB | 16TB | 非対応 | 非対応 | 2TB未満 | 2TB超可能 | 128TB |
| CentOS7 | 2TB | 16TB | 16TB | 50TB | 500TB | 500TB | 2TB未満 | 50TB | 128TB |
ジャーナリングに関するIOPS(I/O Per Second)を出来るだけ減らすことで、
高スループットでデータの読み書きを実現できるファイルシステムです。
CentOS7は、x86_64アーキテクチャに絞ったディストリビューションになっており、
コア数増加や最大メモリの増加、新ファイルシステム対応は、仮想化技術の普及及び、
クラウド基盤の導入、ビックデータ用途を反映した内容となっています。
CentOS7でサポートされるこれらの値は、RHEL7の制限値が参考になります。
詳細は、「RHEL7リリースノート」や「CentOS Product Specifications」を
参考にしてください。
