SSブログ

存在しないホスト名が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

(補足)
・当該サービスの起動は正常にできている。
 'systemctl status gpm' で確認
・当該サービスを再起動しても状況は変わらない。
・マウスカーソルが表示されていないだけと思われる。
 コピー・ペースト自体はできるが、マウスの位置が不明なため使用できない。
・稀に機能することがある。


2. 対処方法


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


3. 備考


(1) GPM(Genenal Purpose Mouse)


コンソールにおいて、マウスでのコピー・ペーストを可能にするソフトウェアである。



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



この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。