1万PV/月を超えました

2008年からチマチマと更新してきましたが、漸く1万PV/月の大台を超えました。

面白いのは1/3はただ一件の記事(Windows10のディスクアクセス負荷が高い場合の対処)に集中していること。

それに引っ張られるように、その他の記事も検索などでの掲載順位が上がっているのか、一様にアクセスされるようになっている。

ある日突然アクセス数が増えたりすると見聞きはしていたけど、それってこういう記事が突然生まれるからなんだろうな。

無手順通信が好きな人っているよね

掲示板とか見ていると、無手順通信大好きで、無手順でシリアル通信して、データの欠落で困っている人をときどき見かける。開始終端符号やチェックサムすら付けず、ほんとに何もなしで通信してるのだからデータが欠落する場合があるのは当たり前だし、当たり前のことなんだから「仕様です」って受け入れればよいのにといつも思う。

言っておくがデータは欠落したり、エラーで壊れるものだ。エラーになってもリカバリの必要がないと判断したうえで、無手順を選択するのはわかる。あるいは下位のレイヤーでエラー訂正などの手順をサポートしているから上位のレイヤーが無手順なのはわかる。

でも下位の手順がエラー訂正などのプロトコルをサポートしていない状態で、上位レイヤーで無手順通信して、エラーが起きてて困るって「何を考えてるの?」としか言いようがない。

といっても、前任者が馬鹿で無手順通信で設計した上に、相手機器は更新不可で泣いているひともいるのかもしれない。愚痴ってばかりでもなんなので、現実的な解決方法を挙げておこう。

PCIバスに接続する通信ボードを使う

オンボードの232Cでも16バイトのFIFOバッファがあるのて大丈夫そうだが、Windowsって数十ms程度の処理遅れは珍しくないんだ。フロー制御もソフトウェア側でやることになるので、オンボードの16バイト程度だと簡単にオーバーランエラーが発生する。PCIバスに接続するタイプだと128バイト程度のFIFOバッファを備えているのが多いのでわりと大丈夫だ。
予算的に可能なら、フロー制御までボード側でやってくれるインテリジェント232Cボードとか使うともっと安心だけどね。

USB接続の232Cポートは避ける

「USBってエラーも発生しないし、高速だし良いかな」と思ってるなら幻想だからね。USBの欠点の一つがオーバーヘッドが大きいことです。
USB2.0ではバスを複数のデバイスで時分割多重化によって共有します。ひとつのデバイスが125μsの間バスを占有したら、次のデバイスが再び125μsの間バスを占有します。こんな感じで動作するので負荷の状態によっては、数十ms程度の遅延が発生する場合があります。負荷が高いときにUSB接続のマウスが動きにくくなることを経験した事がありますよね。
そのためENQ-ACKを定周期で送受信するような通信プロトコルや、相手デバイスのバッファサイズが小さく制御線の状態を頻繁に読み取ったり、制御線の状態を細かく制御するような場合に、タイミングが安定せずに障害の要因になることがあります。

シリアルポートの仕様確認

オンボードのシリアルポートはチップセットの仕様上制御線が無い事もある。その場合CS/RSやDTR/DSRを使ったフロー制御は出来ない。「オンボードでシリアルあるから大丈夫だよね。」などと安易に判断して、後から制御線が繋がってない事に気がついても、ソフトウェアではどうにも出来ない。最初にきっちり仕様を確認するのが重要。

電球型蛍光灯専用照明機器のLED化

2020年を目処に蛍光灯(電球型蛍光灯含む)の製造販売が実質的に中止となる見込です。電球も既に製造中止になっているので、それまでには屋内の照明機器をLEDに切り替えていく必要があります。

そこで困っていたのが、壁面に取り付けてある電球型蛍光灯専用に設計されたブラケット照明。市販の安価なLED電球を買ってきて取り付けようと思っても、白熱電球を誤って取り付けないように儲けられた突起が干渉して取り付けできません。一応メーカーも対応するLED電球は用意しているけど、電球は全部で8個使用しているので8x3000円で4万4千円なり・・・・。

天井取り付け型のシーリング照明なら近所の電気屋さんで買ってきた物に取り替えれば済みますが、壁面に取付られているブラケット照明は個人で簡単には取り替えられません。最低でも電気工事士に取り替えを依頼する必要があります。以前の照明の取り付け後も残さずにきれいにとなると、内装の壁紙まで張り替える大がかりなリフォーム工事に・・・。

などと半年ぐらいに思っていたのですが、いつの間にか1,000円台前半でLEDが出ていますね。この手の電球型蛍光灯専用照明機器の置き換えのためのLED電球は、T型LED電球と言うそうです。

残るは調光器付き長型蛍光灯のブラケット照明だけど、こちらは補助照明ですし、まぁ使えなくなったとしても困らないので良し。

情報処理安全確保支援士登録制度開始

情報処理安全確保支援士の維持費用が3年間で約15万円ほどかかる見込らしい。

なるほど「情報処理気出者試験-セキュリティスペシャリスト」のホルダーの内、新資格に移行するのが10%と言う見込なのはこういう事か。たんなる名称独占資格(しかも名前から実務を想像できないくそダサい名称)で、設置義務も無しで、年額5万円を自己負担だとするとちょっと考えるよなぁ。

入札の条件などに情報処理安全確保支援士の設置を求めるなどとしているが、ぶっちゃけIT系の入札では情報処理技術者試験合格者の設置が既に組み込まれているので何も変わらない・・・いや、もしかして、土建関連や一般消費財の購入、清掃や警備などの管理業務の入札にも情報処理安全確保支援士の設置を求めるのだろうか。でもエンジニアとしてキャリアを考えた場合、そういうところに採用されたいかというと・・・・微妙だよなぁ。

登録する気満々だったのだが、2年の猶予期間もあるし様子見することに変更。

参照:IPA 独立行政法人 情報処理推進機構 情報処理安全確保支援士

サーバー復旧しました

昨夜からサーバーが不安定となっていましたが復旧しました。

<<以下雑文>>
ある朝、ブログに接続してみるとNginxがエラーを返しくる。再起動すると一時的に表示できるが、再びエラーを返すようになってしまう。

Nginxのerror.logを見るとphp7.0-fpmがエラーを返している。

2016/10/13 16:17:04 [error] 1244#1244: *143694 connect() to unix:/run/php/php7.0-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: 191.96.249.53, server: www.code-lab.net, request: "POST /xmlrpc.php HTTP/1.0", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "13.78.127.119"

php7.0-fpmのログを見てみるとpm.max_children設定を超えたために終了してしてしまっている。

[13-Oct-2016 23:51:42] NOTICE: fpm is running, pid 1224
[13-Oct-2016 23:51:42] NOTICE: ready to handle connections
[13-Oct-2016 23:51:42] NOTICE: systemd monitor interval set to 10000ms
[13-Oct-2016 23:51:47] WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
[14-Oct-2016 00:00:18] NOTICE: Terminating ...

「そういえば、導入時にはデフォルト設定のままだった。最近漸く月間9000PVを超えたし、デフォルトのままだと負荷に耐えなくなる場合も出てきたのか♪」とホクホクしながら、pm.max_childrenの数字を4倍に増やした。メモリにはまだ余裕があるし問題はないだろう。

サービスを再起動して正常に表示できるようになった。メモリの使用量が想定内なのを確認するため、htopでプロセスを見ると負荷が10%程度の状態が続いている。「こ・・・これは、バズった?」等とwktkしながらaccess.logをのぞいてみた。そこには以下のようなログが延々と続いている。

191.96.249.54 - - [14/Oct/2016:00:45:26 +0000] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6
.0)"
191.96.249.53 - - [14/Oct/2016:00:45:27 +0000] "POST /xmlrpc.php HTTP/1.0" 499 0 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6
.0)"

何のことはない。WORDPRESSのxmlrpc.phpを狙った攻撃を延々と受けていたのである。・・・と言うか、Nginxのerror.log見た時点で気付こうよ>自分。
こんな時クラウドは便利だ。Azureのネットワーク管理画面から191.96.249.53-54のアドレスを接続拒否リストに追加した。

参考資料
php-fpmのエラーにぶつかりながら設定の最適化を図る
サーバーが高負荷の原因はWordPressのxmlrpc.phpを狙った攻撃だった

Windows Essentialsサポート終了

Windows Essentials 2012のサポートを2017年1月で終了する事がきまったようだ。2016年9月初頭に発表されたようだが、Windows 7 SP1の延長サポートが終了する2020年1月までは安泰と思っていたのだが、忙しかったこともあって完全に見落としていた。

Windows Essentialsの終了で一番大きな影響をうけるのはWindows Live Mailだろう。Windows 7はOSにメーラー(MUA)が付属しなかったため、Windows Essentialsの一部であるWindows Live Mailを使っている人が少なくないはずで、もし使っているなら後3ヶ月足らずで速やかに移行しなくてはならない。不特定多数からインターネット経由で送られたデータを受信する以上、MUAで脆弱性が見つかった場合には非常に危険なことになる(例えばメールを受信しただけで感染するなど)と言う状況も想定されるので、そのまま使い続けるという選択肢はとれないだろう。

ちょっと怖いことにGoogle Suggestで「Live Mail 2016 ダウンロード」とか「Windows Essentials 2016 ダウンロード」などと表示される。もちろん。Windows Essentials 2012を最後に後継製品は提供されていない。うっかり騙される人が出ないことを祈っている。

Windows Essentials 2012 リリース ノート
マイクロソフト サポート ライフサイクル
Internet Watch : Microsoft、「Windows Essentials 2012」のサポートを2017年1月10日に終了

Ubuntu 16.x LTSに更新しました

遅ればせながらUbuntu 14.x LTSからUbuntu 16.x LTSへの切り替えを行いました。

以前はdistupgradeオプションを指定して14.xに更新したのだけれど、流石に懲りました(割と彼方此方の設定を見直したり、再構成することが必要。新規インストール状態からの導入マニュアルは多々あるのだけど、中途半端な状態からだと、よほそしっかり理解できてないと設定漏れに悩むことになるからね)。今回はAzureの仮想マシンクラシックからVirtualMachineへの移行も兼ねて、Ubuntu 16.x LTSを新規にインストールすることにしました。同時にWEBサーバーも従来のApatch WEB Server+Apatch Traffic Serverと言う構成から、Nginxに切り替えてシンプル&高速な構成に・・・。

Ubuntu 14.x LTSのサポートは2019年4月までです。あと半年ほどですので、忘れずに移行しましょう。

「シン・ゴジラ」にみる、ニッポンのITインフラの虚構と現実

「シン・ゴジラ」にみる、ニッポンのITインフラの虚構と現実

2004年にあった大規模通信障害(OCNのバックボーンに障害発生、15時ごろから一部でネット接続不可能に)を思い出した。大手町の単一障害点の故障で、日本全国に波及する100万回線規模での通信障害を起こしてから12年も経過しているが、現状余り変わっていないのだろうか?

Microsoft Flowを使ってみた

遅ればせながらMicrosoft Flow(現在ベータ)を使ってみた。Microsoft Flowは簡易なスクリプト言語でOne DriveやFacebook、Google Drive等多様なWEBサービスと連携してするプログラムを簡単に作ることができる。例えば「自分のBlogを更新したら、更新内容をTweetする」って具合の事が、下図のようにシンプルに実現できる。

rss_tweet_flow

同様のコンセプトのサービスにはIFTTTがありますが、条件分岐を記述できたり、一つのレシピの中で3つ以上のサービスを連携できる点でIFTTTよりもプログラミング言語っぽく、より自由度も高そうです。

Kaspersky Password Managerを使ってみた

LastPassの更新が近いことも有り、別のパスワード管理ツールとしてKaspersky Password Managerを試してみた。残念な事にKaspersky Password Managerは日本語対応していない。だが今現在自宅ではKasperskyをウィルス対策ソフトに使っているので、ブランド統一できたらよいなと言う感じ。

結論としては・・・LastPassの方が一日の長があるよね。

KasperskyはユーザーIDやパスワードの自動入力出来ないWEBサイトが目立つ。正式に日本国内でサポートしていないこともあるのだろうけど、むしろIDやパスワードが入力されないサイトの方が多く感じたくらい。

二つ目の問題として、管理しているIDの一覧性が極めて悪い。画面に表示されるのは十数行しかない上に、検索ボックスもないので素早く該当のIDを探すのはほぼ無理。
Kaspersky_Password_Manager

と言うわけで、再びLastPassユーザーに戻りました。