2013-11-30 22:40:13AIX、UNIX、LinuxCentOS, error, linux, Stack Trace, zabbix

今朝方、上記のようなエントリーを書いたわけですが、Stack Traceからネットワークインターフェース周りが怪しいなぁと思い、色々と見回していたところ、/etc/rc.local に以下の様な設定を書いているのを忘れていました。

2013-11-30 09:25:36AIX、UNIX、LinuxCentOS, zabbix

AdditionalResources/Repositories/CR – CentOS Wiki /
http://wiki.centos.org/AdditionalResources/Repositories/CR

RHEL 6.5が公開され、徐々にですがCentOS側にもバックポートがされるようになってきました。そのうち、先んじてバックポートされるレポジトリである、The Continuous Release ( CR ) Repositoryがあります。

自宅Zabbixサーバとして利用しているサーバに早速適用したところ、Zabbixでの一覧やグラフ描画が著しく遅い症状が見られました。最初はDBが悪いのかと思い、MySQLを5.1から5.5へ変更したり、さらにDBのチューニングをしたりしましたが一向に改善せずにいました。

朝食をとってふと/var/log/messagesをみたところ、以下の様なメッセージが出ていることにようやく気が付きました。

AIX、UNIX、LinuxCentOS, init, NSD4, unbound

自宅環境でKVM上で動作しているCentOS 6.4 x64なサーバがあるのですが、その上でUnboundとNSD4を動かし宅内DNSサーバとして稼働させています。
しかしながら以前から掲題のような問題が発生していました。

問題の出た環境

# cat /etc/redhat-release
CentOS release 6.4 (Final)
# unbound-control status
version: 1.4.22
verbosity: 2
threads: 2
modules: 2 [ validator iterator ]
uptime: 2345 seconds
unbound (pid 1145) is running...
# nsd-control status
version: 4.0.0
verbosity: 1
ratelimit: 200
# cat /var/log/boot.log
FATAL: Module scsi_wait_scan not found.
Welcome to CentOS
Starting udev:                                             [  OK  ]
~中略~
Starting nsd4...                                           [FAILED]
Starting unbound: Nov 27 22:45:15 unbound[1097:0] error: can't bind socket: Cannot assign requested address
Nov 27 22:45:15 unbound[1097:0] debug: failed address 2001:xxxx:xxxx:xxxx:xxxx::249 port 53
Nov 27 22:45:15 unbound[1097:0] fatal error: could not open ports
[FAILED]
# tail /var/log/nsd4/nsd4.log
[1385559915] nsd[1083]: error: can't bind udp socket: Cannot assign requested address
[1385559915] nsd[1083]: error: server initialization failed, nsd could not be started

どうやら、ネットワークインターフェースにIPv6アドレスが付与されるまでの間にサービスが起動しようとして、紐付けが出来なくて起動に失敗しているようです。ただし、bootが終わったあと普通にservice unbound start など実行すれば正常に起動してくるので、単純に起動時のヒモ付の問題だけのようです。

そのことをTwitterで呟いたところ、@wakadannacom さんからアドバイスが。


というありがたいあどばいすを頂いたので、拙い知識ではありますが、起動スクリプトを修正してみることにしました。

具体的には、起動スクリプトのstart句の部分に、ネットワークインターフェースがupしているかどうかの判定をいれ、起動していないようであればSleepさせて起動を待つ、というような感じにしています。

# starting wait
# Source networking configuration.
. /etc/sysconfig/network # check net-if up

if [ $NETWORKING = "no" ]; then
	sleep 3
fi;

これで再起動を実施してみたところ、無事に起動してくることを確認しました。

# cat /var/log/boot.log
FATAL: Module scsi_wait_scan not found.
Welcome to CentOS
Starting udev:                                             [  OK  ]
Setting hostname dns1.kometch.local:                       [  OK  ]
Remounting root filesystem in read-write mode:             [  OK  ]
Mounting local filesystems:                                [  OK  ]
Enabling /etc/fstab swaps:                                 [  OK  ]
Entering non-interactive startup
Starting monitoring for VG VolGroup:   2 logical volume(s) in volume group "VolGroup" monitored
[  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:                                [  OK  ]
Starting sshd:                                             [  OK  ]
Starting ntpd:                                             [  OK  ]
Starting nsd4...                                           [  OK  ]
Starting unbound:                                          [  OK  ]
Starting tuned:                                            [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
Starting crond:                                            [  OK  ]

今回はunboundもNSDもソースからコンパイルし、その中に入っているinitファイルを使用してこの問題に直面しましたが、他の方でこの問題に遭遇している人はいないのか気になっています。

また、今回の問題の対処方法以外にも以下のような方法もあるようです。


ただ、今回は起動スクリプト中にしっかりと「Required-Start: $network」が指定されているにもかかわらず、それに準じた動きをしていないのが、非常に気になりました。この辺りの事情をご存じの方がいらっしゃいましたら、是非ともご教授ください。

今回の問題に付き合っていただいた@wakadannacom さん、本当にありがとうございました。

参考:

LSBInitScripts – Debian Wiki /
https://wiki.debian.org/LSBInitScripts

DVD付 CentOS徹底入門 第3版
DVD付 CentOS徹底入門 第3版
(2012/03/09)
中島 能和、飛田 伸一郎 他

 

商品詳細を見る

Linuxエンジニア養成読本 [仕事で使うための必須知識&ノウハウ満載!] (Software Design plus)
Linuxエンジニア養成読本 [仕事で使うための必須知識&ノウハウ満載!] (Software Design plus)
(2011/04/08)
SoftwareDesign編集部

 

商品詳細を見る

うつ

名称 色・形・記号 用法 服用タイミング
アモキサンカプセル25mg 淡赤褐:白/赤 1夕食後服用 内服薬    1cap
ジェイゾロトフ錠50mg 白/楕円形 1夕食後服用 内服薬    1錠
ドグマチール錠50mg 白帯/黄白/錠 1夕食後服用 内服薬    1錠
リボトリール錠2mg 白/錠 1夕食後服用 内服薬    1錠

相変わらず通院生活が続いています。
医師に近況を報告したところ、そろそろ負荷を増やしていってもいいのではないかとのこと。というか今まで緩やかな期間が長過ぎると忠告を受けました。そうしないと社会復帰が難しくなるよ、と言われたので、リハビリ先と相談しながらうまい勤務時間を見つけていければいいなぁと思います。

医者の私が薬を使わず「うつ」を消し去った20の習慣 医者の私が薬を使わず「うつ」を消し去った20の習慣
(2012/09/24)
宮島 賢也

商品詳細を見る

2013-11-28 10:38:48zabbixzabbix, テンプレート

https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates

自宅環境のZabbix2.0.9から2.2.0へアップグレードしてから気がついたのですが、2.2.0からの新機能であるVMware監視に関するテンプレートは、アップグレードする手順だと付いてきません。

gearbest

2013-11-27 13:48:36AIX、UNIX、Linux, 仮想化KVM, linux, snapshot, スナップショット, 仮想化

https://blog.etsukata.com/2013/07/virsh.html

自宅環境のKVMで少し仮想マシンを弄らないといけなくなったのですが、とりあえずの手段としてスナップショットを取って保険とするために、ちょっと操作方法について調べてみました。

2013-11-26 10:31:38AIX、UNIX、Linuxchrony, linux, warnsig, warntime, 時刻同期

自宅の時刻合わせ環境ではntpdとchronyを併用しているのですが、そのうちの一台、chronyを導入しているサーバで何故かネットワークに問題が無いのに、offline状態で起動してくる事に気が付きました。

2013-11-25 09:59:54Ubuntukernel, ubuntu

Ubuntu向けのKernel 3.12.1が公開されていたので、自宅環境に適用してみることにしました。

雑記IYH, 荷物追跡

Track your package or shipment with FedEx Tracking

フランス、インド、上海を経由してようやく成田に入ってきました。
ただし、平日配送になっているので、早くても月曜日なのかなと。早く来ないかな・・・

2013-11-22 10:13:38AIX、UNIX、Linuxipv6, nginx

以前、ZabbixのWebフロントエンドをApacheからnginxへ切り替えましたが、その際になぜかIPv6での通信ができない事に気が付きました。調べてみるとどうやら追加設定が必要とのことで、早速設定を変更してみることにしました。