2019年05月05日(日) - 22:34 | カテゴリ:
Linux
以前、gdnsdとnginxリバースプロキシ機能を使って、
可用性を維持したグローバルロードバランサ(GSLB)を構築したのだが、
“gdnsd+nginx” 構成で1年運用した所、”ns-lab BB” では次の様な問題が出てきた。
- 可用性が高すぎて縮退メンテナンスが面倒
メンテの為にサクッとGSLBの権威DNSから外したい場合、
上位DNSサーバでサブドメイン委譲設定を変更する必要があった。
エンタープライズなら委譲設定変更(NSレコード削除)も実施するが、
自鯖用途だと大げさにせずサクッと外したい場合が出てきた。
- DNSクエリログを取得出来ない
nginxリバプロ構成の場合、クライアントからのDNSクエリはnginxが処理する為、
nginxでクエリログを取得する必要がある。
ただし、nginxの仕様でUDPリバースプロキシでパケットログ取得が出来ないので、
別途構築したログ監視などが出来なかった。
という事で、課題を解決すべくオープンソースカンファレンスでネタを探したり、
twitter上で技術情報も追いかけていた所、dnsdistを使うとDNSに特化したリバプロを構築出来る事が判った。
『善は急げ!』という事で、テスト環境で実際に構築した上で『コレは行けるな!』と感触も得られたので、
休みを使って “ns-lab BB” のインターネット向けGSLB環境にdnsdistを組み込んでみた。
- 構築手順
nowsky system-lab memo > gdnsd
nowsky system-lab memo > dnsdist
構成変更後の構成は下の通り。変更前は「たすき掛け」で負荷分散を行っていたが、
変更後は「シングル」に変更して、DNSクエリが飛んでくる経路を敢えて単純化した。
ただし、いつ何時「たすき掛け」に戻すか判らないので、
dnsdistでもたすき掛けに変更出来る様にもしてみた。

ロギングについては、dnsdistで受けたDNSクエリをローカルログ出力をした上で、
自作プログラムを使ってリアルタイムでsyslog変換しつつ、リモート転送も行う様にした。
結果、DNSクエリログの集約化と監査も可能となり、課題となっていた項目を解決出来た。
1週間稼働させつつテストもしたが、実際のケースで秒間100~500クエリを捌きつつ、
ログ取得・リモート転送も問題無く動いている。
この構成を取ると、gdnsdの弱点であったロギングを補う事も出来る為、
GSLBをOSSで構築したい場合には重宝する構成例になるかも知れない。
ぶっちゃけ、GSLBをOSS使ってまで自前構築するケースは相当稀だと思うが、
アプライアンスを使えなかったり、インターネットと疎通が出来ない様な環境ではRoute53とかを使えないので、
自前で全て構築するケースは多々存在する。
既にあるシステムを使ったとしても、裏の仕組みを把握しているか否かで全体の理解度も変わってくる為、
GSLBを弄っている人については、一度OSSで自前構築してみるのをオススメしたい。
« 続きを隠す
2019年05月01日(水) - 21:19 | カテゴリ:
Linux
結論から書くと、Linux系OSはglibc等のパッケージアップデートと時刻環境変数の設定、
Windows系OSは「月次のロールアッププレビュー」を適用すると令和表記に対応する。
一応、物は試しでWindowsServer2012R2に令和パッチ(KB4493443)を適用しない状況で、
日付を和暦表示に変更した所、想定通りに『平成31年5月1日』表記となった。
元号ネタは既出なので使い古した感もあるが、自鯖の状況を把握する良い機会なので、
稼働している本番系Linux鯖と同じバージョンの検証環境を用いて元号対応状況を確認してみた。
“ns-lab BB” で稼働しているLinuxサーバOS(ディストリビューション)は下記の通り。
ディスク装置として使っているQNAP製NASもLinuxの一種だが、
対応を見据えてアップデートすると全仮想サーバを停止させる必要がある為、今回は割愛した。
そして、実際の確認結果は下記の通り。
全ディストリで対応済と思っていたら、以外とそうでも無かった (´・ω・`)
OS (version) |
glibc (version) |
$ LC_TIME=”ja_JP.UTF-8″ date +’%Ex’ |
CentOS 6.10 |
2.12-1.212 |
令和元年05月01日 |
CentOS 7.6.1810 |
2.17-260 |
令和元年05月01日 |
openSUSE 15.0 |
2.26-lp150.11.17.1 |
令和元年05月01日 |
Debian 9.9 |
2.24-11+deb9u4 |
05/01/19 |
Raspbian 9.9 |
2.24-11+deb9u4 |
平成31年05月01日 |
もしかしたら、利用しているglibcのバージョンによって結果が変化するかもしれないが、
サクッとコマンドを叩いた限りでは実行結果に差が出た。
なんとなく、RPM系・APT系で実行結果に差が出ている気もするが、
ソースレベルの詳細まで追いかけていないのでなんとも言え無い所…
ただ、サーバ用途だと元号などの和暦を使わず、インストール時から “en_US.UTF-8” する事が多いし、
Linuxで元号を使うケースは稀だと思うので、今後修正が入るのを筆者は待とうと思う。
« 続きを隠す
2019年03月23日(土) - 21:57 | カテゴリ:
Linux
旅行とかOSCの様なカンファレンスに行く時はノートPCを持ち歩いているのだが、
メインのWindows機はThinkPad x250、サブのLinux機はThinkPad x240と、
ハイブリッド状態で使っていた。
ただ、ThinkPad x240はタッチパッドに物理ボタンが無いので使いにくかったり、
外に持ち出していたらフロントにヒビが入ってきたりと、入れ替えを検討するタイミングだった。
そんな中、秋葉原のジャンクPC屋を回っていたら状態の良いx250を発見。
「こりゃ幸い」という事でその場でIYHしてLinux機のリプレースに使ってみた。

特に気にしていなかったのだが、購入した筐体はバックライト付きキーボードを使っていた
コレも普通にLinuxからON/OFF含めて利用する事が出来ている
今まで、Linuxノートは「VineLinux > CentOS > Debian > openSUSE > LinuxMint」と色々使ってきたが、
直前に使っていたLinuxMintが結構良かったので、今回もディストリはLinuxMintを利用する事にした。
Linuxなのでドライバ周りが心配だったがこの辺りはMintの作りが良く出来ていて、
特に気にする事も無くインストール直後のデフォルト状態で全てのデバイスを認識した。
指紋認証も “Fingerprint GUI” をインストールしたらログイン画面・権限昇格などで使う事が出来た。
ただ、モニタの明るさは細かい調整がキーボードで出来なく、
詳細調整を行うにはコンフィグを直書きする必要がある。
さらにスピーカーはデフォルト状態だと出力が小さいのか、12~16程度まで音量を上げる必要がある。
この辺りは要改善かもしれないが、コツと注意点を認識すれば使えるレベルなので許容出来ると思う。
今はLinuxアプリも充実していてLinuxからWindowsへのRDPが出来たり、
世間のアプリケーションもLinuxで代替出来る物が用意されているので普段使いでも問題無さそう。
事実、先日ひょんな事で丸一日LinuxノートPCで生活していたが普通に使う事が出来た。
LinuxMint自体をまだ使い込んでいないのでポテンシャルは未知数だが、
OSの仕組み自体はDebian系ディストリを元にしている物なので、後は「慣れ」の問題だと思う。
ハードウェア視点だと、ThinkPad x250はHDD・メモリ交換でコジアケが必要だったり、
メンテナンス性に難有りなのだが、慣れてしまえば物理メンテナンスも普通に行える。
こんな事もあり、歴代ThinkPadから考えるとx250は評価が低めらしいのだが、
エンタープライズで大量に出ている機種なので、今後はリース切れ端末がジャンクPC界隈に出てくる筈。
これを機に安いノートPCを調達して、Linux機を普段使い用にするのも一興。
Linuxを触った事無い人が新年度を前にアタックしているのも良いと思う。