So-net無料ブログ作成
検索選択

存在しないホスト名が127.0.0.1に名前解決される [CentOS]

1. 発生事象


CentOS 6.9 において、存在しないホスト名が 127.0.0.1 に名前解決される。

% ping aaa
PING aaa.private.net (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): \
icmp_seq=1 ttl=64 time=0.034 ms
…


(補足)
・名前解決は、/etc/hosts、DNS の順に参照する。
 (/etc/nsswitch.conf の設定)
・/etc/hosts に当該ホスト名は存在しない。
・DNS では当該ホスト名が名前解決されない(host aaa の実行)。
・/etc/resolv.conf には、ISP のネームサーバーの設定のみを行っている。
 (domain/search の設定は行っていない。)
・ローカル・ドメインには、ダミーのドメイン名を付いている。
 (private.net: 192.168.0.0)
・CentOS 7.3 でも同様である。
・Debian 7/8 では発生しない。


2. 対処方法


/etc/resolv.conf において、domain または search で ISP のドメイン名を設定する。

% ping aaa
ping: unknown host aaa


リストア後のsystemd-journaldのエラー [CentOS]

CentOS 7.3 において、システムのリストア後に systemd-journald のエラーが発生するようになってしまった。
発生事象と対処方法は、以下の通りである。

1. 発生事象


システムのリストア後に systemd-journald のエラーが発生する。

systemd-journald[807]: Failed to write entry (9 items, 267 bytes), \
ignoring: Bad address

2. 対処方法


下記の手順を実施する。

(1) ファイルの特定

# journalctl --verify


(2) 当該ファイルの削除


FAIL: と表示されるファイル(*.journal) を削除する。


(3) systemd-journald の再起動

# systemctl restart systemd-journald

3. 備考


systemd-journald のバグとのこと。

cf.
https://bugzilla.redhat.com/show_bug.cgi?id=1069828
https://access.redhat.com/discussions/2100681



CentOS 7でgpmが機能しない [CentOS]

1. 発生事象


CentOS 7 で gpm が機能しない。

[ソフトウェアのバージョン]
gpm-libs-1.20.7-5.el7.x86_64
gpm-1.20.7-5.el7.x86_64
kernel-3.10.0-514.10.2.el7.x86_64

(補足)
・当該サービスの起動は正常にできている。
・当該サービスを再起動しても状況は変わらない。
・稀に機能することがある。


2. 対処方法


カーネルを下記のバージョンに変更すると機能するようになる。
・kernel-3.10.0-229.20.1.el7.x86_64



CentOS 7のMD+LVM化で/が認識されない [CentOS]

CentOS 7.3 において、標準パーティション環境から MD+LVM 環境への移行を行った。
実施した手順は、下記の通りである。

・mdadm での MD デバイスの作成
・MD デバイス上での LVM の作成(ただし、/boot 用のデバイスを除く)
・PV/VG/LV/FS の作成(ただし、/boot 用デバイスでは FS のみ作成)
・当該ファイルのコピー
・/etc/mdadm.conf の更新、initrd ファイルの更新

その際、ブート時に / (root) パーティションが認識されない状況になってしまった。
以下は、備忘録として発生事象と対処方法をまとめたものである。

1. 発生事象


MD+LVM 環境で、ブート時に / 用の LV が認識されない。

[出力されるメッセージ]
dracut-initqueue[pid]: Warning: dracut-initqueue timeout \
- starting timeout scripts

(補足)
・MD なしの LVM 環境では、問題は発生しない。
・下記の状態から進まない。
 Started dracut pre-mount hook.
 A start job is running for .service


2. 対処方法


下記のカーネル・オプション(kernel 行に設定するオプション)を追加する。

・rd.auto rd.auto=1


3. 参考資料


(1) dracut のマニュアル - DRACUT.CMDLINE(7)


rd.auto rd.auto=1
 enable autoassembly of special devices like cryptoLUKS, dmraid,
 mdraid or lvm. Default is off as of dracut version >= 024.

 cf. http://man7.org/linux/man-pages/man7/dracut.cmdline.7.html



CentOS 6.9へのアップデート [CentOS]

CentOS 6.8 から 6.9 へのアップデートを行った。
インストールするパッケージに依存するが、今回のアップデートは以下のような結果であった。

1. アップデートによるパッケージ数の増減はない。

2. 新たな不具合の発生はない。

3. rsh、telnet でログインした時のログイン処理の不具合が改善されている。


[該当する不具合]
http://dan-project.blog.so-net.ne.jp/2016-07-02

該当するパッケージは、下記の通り。
・libblkid-2.17.2-12.28.el6.i686
・libuuid-2.17.2-12.28.el6.i686
・util-linux-ng-2.17.2-12.28.el6.i686



chronyでのNTPサーバーの構築 [CentOS]

CentOS 7.3 上で NTP サーバーの構築を行った。
ntpd を使用することも可能であるが、今回は chrony を使用した。
最低限必要な手順は、以下の通りである。

1. ファイアウォールの設定確認


下記の通信が許可されていることを確認する。

・上位 NTP サーバーの 123/udp ポートへのアクセス
・NTP クライアントからの 123/udp ポートへのアクセス


2. /etc/chrony.conf の編集


(1) 上位 NTP サーバーの指定

server <ntp-server-1> iburst
...


iburst: 起動時に短い間隔で問い合わせ、初回の同期に要する時間を短縮する。


(2) 時刻同期を許可する NTP クライアントの指定

(例)
allow 192.168.0.0/24


デフォルト値: 全ノード拒否


3. chronyd の再起動
# systemctl restart chronyd

4. 備考


(1) 時刻同期の状況確認

# chronyc [-n] sources


・-n: 逆引きの名前解決を行わない(IP アドレスで表示する)。
・実行結果の S 欄が * の NTP サーバーと時刻同期を行っている。


(2) 上位 NTP サーバーと時刻同期できない場合の発生事象


NTP クライアントが NTP サーバーと時刻同期できない(ntpd の場合と同様)。
よって、通常は 上位 NTP サーバーを複数指定する。


[追記]


CentOS 7.3へのアップデート [CentOS]

CentOS 7.2 から CentOS 7.3 へのアップデート行った。
現在のところ、特に問題は発生していない。

また、今回のアップデートにより、下記の不具合が改善される。

1. X Window System で一部の画像が正しく表示されない。 (on CentOS 7.2)


(1) 発生事象


一部の画像に横方向の隙間が挿入され、不連続な表示となってしまう。
また、再描画で一時的に回復できても、すぐに再発する。

(補足)
GNOME (3.14) で頻繁に発生する。
・[アプリケーション] -> [ユーティリティ] -> [Tweak Tool]
・Firefox のロゴ
( cf. http://dan-project.blog.so-net.ne.jp/2016-02-09 )


(2) 対処方法


xorg-x11-server-Xorg-1.17.2-22 に更新する。 (on CentOS 7.3)


2. 備考


以前からの不具合や仕様の好みの問題で、下記パッケージはアップデートの対象外とした。
・gnome-terminal.x86_64
・kernel.x86_64
・stunnel.x86_64



Firefox ESR 45.4.0でのUnicodeの外国語の文字化け [CentOS]

1. 発生事象


Centos 6 上の Firefox ESR 45.4.0 において、下記の URL を表示すると Unicode で外国語が文字化けする。

https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%B0%E3%83%AB

(補足)
・Firefox ESR 38.8.0 では発生しない。
・Firefox ESR 45.3.0 でも発生する。


2. 対処方法


Fedora の下記のパッケージを追加する。

・unifont-fonts-7.0.06-1.fc22.noarch.rpm

(補足)
・もう少し新しいバージョンの unifont-font パッケージでもインストール可能である。
・Firefox において、使用するフォントに関する仕様が変更されたものと思われる。



CentOS 6.8へのアップデート後のshutdownでblkdeactivateがエラーを発生する件のその後 [CentOS]

1. 発生事象


shutdown 時に /sbin/blkdeactivate のエラーが発生する。
http://dan-project.blog.so-net.ne.jp/2016-07-05


2. 対処方法


下記のパッケージへの更新を行う。

device-mapper-1.02.117-7.el6_8.1.i686
device-mapper-event-1.02.117-7.el6_8.1.i686
device-mapper-event-libs-1.02.117-7.el6_8.1.i686
device-mapper-libs-1.02.117-7.el6_8.1.i686
lvm2-2.02.143-7.el6_8.1.i686
lvm2-libs-2.02.143-7.el6_8.1.i686



Web Pageへのアクセス時のPHPのエラーログへの対応 [CentOS]

久しぶりに CentOS 6 の Apache 上に構築した Web サイトの Web Page (PHP で作成) にアクセスしたところ、エラーログが出力されるようになってしまった。以前には発生していなかったため、原因の調査と対応を行った。
詳細は、以下の通りである。

[ソフトウェアのバージョン]
・httpd-2.2.15-54.el6.centos.i686
・php-pdo-5.3.3-48.el6_8.i686

1. エラーログの内容


下記の 2 種類に大別される。

(1) 未定義の配列要素の参照に関するもの

PHP Notice: Undefined index: xxx in yyy.php on line zzz, referer: http:...


・xxx: 連想配列のキー
・yyy: ソースファイルのパス(拡張子を除く)
・zzz: 当該箇所の行番号

(補足)
下記のような箇所で発生する。

$width = $_GET['width'];
$client = $_SERVER['HTTP_CLIENT_IP'];


(2) タイムゾーンの設定に関するもの

PHP Warning: xxx(): It is not safe to rely on the system's timezone
settings. You are *required* to use the date.timezone setting or the
date_default_timezone_set() function. ...

2. 対応


いずれも深刻なエラーではなく、notice または warning レベルの事象である。
よって、ソースの変更ではなく、これらの事象に関するログ出力を抑制することにする。

(1) エラーログ (1) への対応


/etc/php.ini の error_reporting の設定値を変更する。

(旧) error_reporting = E_ALL & ~E_DEPRECATED    ... (注1)
(新) error_reporting = E_ALL & ~E_NOTICE    ... (注2)


(注1) 運用時の推奨値(インストール直後の /etc/php.ini での設定値)
(注2) デフォルト値(未設定時に採用される値)

(補足)
ソースを変更する場合には、当該部分を下記のように変更する。

$width = isset($_GET['width']) ? $_GET['width'] : '';
$client = isset($_SERVER['HTTP_CLIENT_IP']) ? $_SERVER['HTTP_CLIENT_IP'] : '';


(2) エラーログ (2) への対応


/etc/php.ini の date.timezone を設定する。

(旧) 未設定(インストール直後の /etc/php.ini での設定状況)
(新) date.timezone = Asia/Tokyo

3. 備考


PHP のバージョンアップに時に、デフォルト値の変更、または設定ファイルの更新漏れが発生したものと思われる。