wordpress

さくらのVPSで障害が起きて、データが吹っ飛んでから復旧した

かなり久々の更新になってしまいました。

前回の更新が4月なので、8ヶ月ぶり。ていうか、今年終わる。ヤバい。

この8ヶ月の間、色々ありました。

FavTube が月間10万PVを超えたり、ブログのテーマを変えたり、6kg程痩せたり、コンタクトにしたり、泥酔して色々失敗したり。

そんな年の瀬に事件発生ですよ奥さん。

経緯

ある日いつもの様に、FavTube にサイトをいいねの数増えてるかなーとアクセスしてみた所サイトに繋がらない。

apacheでも落ちたかな?とコンソールを立ち上げてみたものの、サーバー自体に繋がらない・・

焦る。焦りまくりすてぃ。

さくらに料金払い忘れたかな?と確認するも支払い済み。

そこに、gmail宛にさくらから障害情報のメールが届いた。

             さくらのVPS サービス 障害に関するご報告

さくらインターネット株式会社

平素よりさくらインターネットをご利用いただき、誠にありがとうございます。

発生日時 : 2013年11月26日22時50分~2013年11月27日03時40分

ご利用のVPSサーバの再起動を伴う障害が発生
しました。お客さまにはご迷惑をおかけし大変申し訳ございません。深くお詫
び申し上げます。

障害の詳細につきましては、以下の障害情報をご参照ください。

▼ メンテナンス・障害情報 さくらのVPS1Gプランの一部
http://support.sakura.ad.jp/mainte/mainteentry.php?id=11675

障害の解消後、弊社にてご利用のVPSサーバのOS起動を確認させていただいた
ところ、以下のメッセージが表示されておりました。

EXT4-fs error (device vda3): ext4_lookup: deleted inode referenced: 3801089
ログインプロンプト等を表示しておりませんので、VPSサーバのOS起動が正常に
完了していない可能性がございます。

お客さまにはご迷惑をおかけし、大変申し訳ございません。

VPSコントロールパネルの「リモートコンソール」機能にて、VPSサーバのコン
ソールを直接操作していただくことが可能です。
恐れ入りますが、お客さまにてVPSサーバの動作をご確認いただけますよう
お願いいたします。

▼ VPSコントロールパネル
https://secure.sakura.ad.jp/vpscontrol/

あっちゃー。障害に巻き込まれた。

と初めて気づく。

とは言え、コントロールパネルから再起動すりゃ直るっしょと高を括っていた。

ところが再起動をしても

EXT4-fs error (device vda3): ext4_lookup: deleted inode referenced: 3801089

リモートコンソールとVNCコンソールでこのエラーを吐き続け、入力キーを何も受け付けてくれなかった。

仕方無いので、さくらのサポートにメールするも返信が遅い。

ならばと、サポートセンター電話して対応をお願いするも5時間ほど放置される。

もう一回電話して、サービスが止まっていて困っている旨を伝えて急いでもらう。

んで、やっと返って来たメールがこれ

この度はご不便をお掛けしておりますこと、お詫び申し上げます。

確認いたしましたところ、ファイルシステムが破損しているようで
ございます。

fsckを実行する必要がございますが、お客様にて行なっていただくことは
可能でしょうか。

弊社にて代行させていただくことも可能でございます。

しかしながら、fsckの実行によりファイルが破損する可能性ごございますため
ご了承いただけるようでございましたら、お手数をお掛けいたしますが
本メールの返信にてご依頼いただけますでしょうか。

ご不明な点やご質問等ございましたら、本メール返信にてお問い合わせ
ください。

今後ともさくらインターネットをよろしくお願いいたします。

だから、コンソールからなにもキーを受け付けてくれないって言ってんだろがクソボゲが。

とは言いませんでしたが、fsckを依頼。

ちなみに、fsckというのはファイルシステムの修復をしろーって言うコマンド。

【 fsck 】 ファイル・システムの検査と修復を行う

というか、そもそも障害復旧できてねーじゃん。

勝手にメンテナンスして、障害起こしてろくに確認もしてない。この時点で怒り心頭でした。

でも、まあfsckして直るんならまあいいかと。

翌日まで連絡なかったので、自分でコンソールにアクセスして確認するとfsckコマンド打った形跡がある。

が・・結局ファイルシステムは破損したまま。fsckしたけど、復旧できませんでしたの連絡も無し。

見切りをつけ、OSの再インストールをしてWEBサーバーを再構築 → バックアップファイルをアップロードして復旧。

復旧への道のり

障害が起きたサーバーはさくらのVPSで、このwordpressのブログと FavTube が入っている。

まずは、OSの基本設定とWEBサーバの構築をした。

さくらのVPS を改めて使いはじめる

FavTube はローカルにあるファイルをアップロードすれば終わりなのでこれで復旧した。

とりあえず、一安心。

問題はこのwrodpressのブログだ。さくらVPSのサービスにはバックアップがない。

「さくらのVPS」でバックアップの機能はありますか

仕様なのは分かったけど、勝手にメンテンナンスする時くらい取っておけボケ。

また、腹たって来た。

しかし、以前入れた BackWpup と言うプラグインのおかげでdropboxにDBからファイルまで全てのバックアップが残っていた。

wordpressのプラグインBackWPupでエラーが出た場合

復元は以下を参考にした。

BackWPup – バックアップデータからの復元手順

phpMyadminをインストールしなければならなかったのが、ちょっと面倒だったが今後も使いそうなのでインストールした。

wrodpressを使っている人は、今すぐbackwpupのプラグインは必ず入れておいた方が良い。

一応、インストールと設定方法を置いておこう。

WORDPRESSのデータをバックアップをする「BACKWPUP」設定

データ復元後に、backwpupが正常に動作するかテストした所エラーを吐いた。

ERROR: Dropbox API: (403) Invalid signature.
ERROR: Job has ended with errors in  You must resolve the errors for correct execution.
上記はdropboxAPIのエラーで再認証を行うことで解決した。
WARNING: require(): Unable to allocate memory for pool
 上記は、phpのメモリ割り当てのエラーらしく
APCの設定ファイルのphpのメモリ割り当てを増やして解決できた。
正直自分にこういう障害が本当に当たるとは夢にも思わなかったが、バックアップをきちんとしておいたおかげで早急な復旧が実現できた。

自分の物だけならまだしも、請け負って作った物などだった場合いやーさくらがーなんて言った所で元には戻らない。

終わりに

さくら側に対して、補償はどうしてくれんの?的なぶち切れメールを送ったら以下の返信が来た。

ご連絡が遅くなりましたこと、お詫び申し上げます。

本件に関しましては、弊社にて復旧を試みましたが改善することが
出来ない状態でございました。

ご案内前にお客様にてOS再インストールを行なわれたとのこと、
お手数をお掛けすることとなり、申し訳ございませんでした。

なお、ご利用いただけなかった期間に関しましては、補償と
いたしましてサービスご利用期間を1ヵ月延長させていただきます。

ご不明な点やご質問等ございましたら、本メール返信にてお問い合わせ
ください。

今後ともさくらインターネットをよろしくお願いいたします。

それだけかよ。

それでも、俺はさくらのVPSをまた使っている。

正直対応の遅さと勝手に壊しといてシラネみたいな対応には、かなり腹が立ったがこの値段と帯域のスピードを考えると他に選択肢が無いからだ。

あと、めんどくさいから。

wordpressのプラグインBackWPupでエラーが出た場合

自分のブログ程度ならいいが、人のwordpressやってあげるならバックアップも取っておかないとなー
とぼんやり考えていたら丁度便利そうなプラグインの記事を見つけた。

dropbox などのクラウドストレージにバックアップを自動で取ってくれる優れものだ。

この記事を参考にしてwordpressのプラグイン「BackWPup」をインストールした。

WordPress テーマファイルもデータベースもクラウドサービスに自動バックアップしてくれる「BackWPup」がおすすめ

インストールや設定は、上記のサイトを参照して貰えればと思うがインストールするとエラーが出た。

画像で見るとこんなん。

WS000027

翻訳してみよう。

/****/****/wordpress/wp-content/plugins/backwpup/tmp/ ってディレクトリがねーよバカ!

/****/****/wordpress/wp-content/plugins/backwpup/tmp/ のディレクトリを書き込み可能にしろハゲ!

/****/****/wordpress/wp-content/backwpup-22c8b-logs/ ってディレクトリがねーよバカ!

/****/****/wordpress/wp-content/backwpup-22c8b-logs/ のディレクトリを書き込み可能にしろハゲ!

と言う意味だ。

wp-content 以下のディレクトリのパーミッションを書き込み可能にしてwordpressの管理画面をリロードするとエラーが消える。

BackWPupのプログラムから、ディレクトリ作成しようとしたら権限がないので上記のエラーが出たと言うことらしい。

 

wordpressを公開する前に最低限必要なプラグイン10個

wordpressのプラグイン名は英語表記が多いので、名前をみてもこれなんのためのプラグインだっけ・・?となることが多い。

最近依頼を受けてwordpressを構築する機会が増えて来たのもあり、これを機会にインストールしているプラグインを整理してみたいと思います。

基本要件

  • wordpress のバージョン 3.5
  • マルチサイト運用はしていない

Akismet

デフォルトで入っているプラグイン。

コメントやトラックバックをスパムから守ってくれる(らしい)。

特に理由が無ければ有効化しておく。俺のサイトはコメント使わないぜと言うのであれば必要なさそうだが。

AntiVirus

そのまんまだが、アンチウイルスプラグイン。

使用しているテーマに悪意のあるコードが無いかをスキャンしてくれる。

wordpressのテーマは無料で使用できる物が沢山溢れているが、テーマはデザイン性のみならずPHPコードなど危険なコードも埋め込めてしまうためwordpress公式サイトに乗っているテーマから選ぶのが基本です。

と解っていてインストールしていたものの、一回もスキャンしてなかったのでしてみたら自分で作った子テーマでウイルスが検出されたw

WS000007

iframeタグなんかに反応していた模様。

ちゃんと仕事してるな。うん。

AntiVirusのダウンロード

cbnet Ping Optimizer

pingの操作をできるプラグイン。

詳しくは以下のサイトが解りやすかったので参照。

WordPressにcbnet Ping Optimizerを導入しping送信を管理する方法

Google XML Sitemaps

これもそのまんまですが、サイトマップを作成してくれるプラグイン。SEO的に必須かと。

ウェブマスターツールなどへのサイトマップ登録はこれで生成したものを送信すれば便利。

詳しくは以下のサイトが解りやすかったので参照。

WordPressのサイトマップ(sitemap.xml)作成用プラグイン『Google XML Sitemaps』

HeadSpace2

こちらも、SEO系のプラグイン。

有名どころだと All-in-one SEO Pack があるがそちらよりも高機能らしい。

詳しくは以下のサイトが解りやすかったので参照。

WordPressのSEOに千手観音プラグイン、HeadSpace2・使用方法まとめ

Open Graph Pro

所謂、OGP対応をしてくれるプラグイン。

OGPはもんのすごく簡単に言うと、SNSへの投稿した際の見栄えを整えることです。

詳しくは以下のサイトが解りやすかったので参照。

WPプラグイン「Open Graph Pro」でFacebookページを楽々更新!エラーも克服!

SyntaxHighlighter Evolved

これはかなり個人的と言うか、このブログの特性上必須なプラグイン。

ソースコードを記事中に記載したい場合に見栄えよく記述することができるプラグイン。

<?php

echo 'Hello World!!';

?>

こんな感じにソースコードを表現できる。

詳しくは以下のサイトが解りやすかったので参照。

ソースコードをキレイに表示するWordPressプラグイン「SyntaxHighlighter Evolved」

Ultimate Google Analytics

wordpress への google analytics  導入を簡単にしてくれるプラグインです。

インストールして、トラッキングコードを入力するだけでいいのでとっても楽です。

設定の仕方は以下の記事がわかりやすかったです。

アクセス解析Google Analyticsを自動設定してくれるUltimate Google Analyticsプラグイン

WP Multibyte Patch

デフォルトで入っているプラグイン。

日本語で使う場合にいろいろやってくれているようです。

デフォルト入っているので、特に気にしたことは無かったのですが実は色々やってくれてるみたいです。

詳細は以下から。

http://eastcoder.com/code/wp-multibyte-patch/

WP Social Bookmarking Light

ソーシャルボタンを簡単に導入できるプラグイン。

twitter、Facebookなどのボタンが簡単に設置できます。

最近だとLINEへ送るボタンなども追加されているので重宝します。

設定の仕方は以下の記事がわかりやすかったです。

WP Social Bookmarking Lightを導入しソーシャルボタンを設置する方法

こうやって、記事にしてみてプラグインを一つ一つ見直してみるとインストールだけして設定していないプラグインやお、これいいじゃん!でインストールして使っていないプラグインの多いこと・・

無駄なプラグインは、サーバーの容量を消費するだけなのできちんと選定して使用しないとなと反省。

WP Social Bookmarking Lightに「ラインで送るボタン」が追加されている件

以前に wordpressに公式のLINEで送るボタンを設置する方法 と言う記事を書いたがもっと簡単な方法が。

「WP Social Bookmarking Light」 と言うwordpressプラグインをご存知だろうか。

導入方法はこちらのサイトが解りやすいので↓を確認して頂きたい。

WP Social Bookmarking Lightを導入しソーシャルボタンを設置する方法

このプラグインに「ラインで送るボタン」が追加されているので、既に導入している方は設定から簡単に追加することができる。

social-bookmark

設定 > WP Social Bookmarking Light を選択

WS000005

「line」をドラッグ&ドロップで左側に移動して「変更を保存」で完了。

とっても簡単ですね。

wordpressに公式のLINEで送るボタンを設置する方法

本日ついに、LINE公式「LINEで送る」ボタンがリリースされました!

早速、設置してみたのでやり方を記しておきます。

まずは、LINE公式から画像をダウンロードします。(ページ最下部)

WS000001

LINE公式

設置方法|LINEで送るボタン

line_send

メディア > 新規追加

line_send2

ダウンロードした画像を解凍して、使いたいボタンの画像をメディアに追加します。

WS000000

 

画像の編集画面から、アップロードした画像のURLをコピペします。

 


<a href="http://line.naver.jp/R/msg/text/?<?php the_title(); ?>%0D%0A<?php the_permalink(); ?>"><img src="[ボタン画像のURL]" width="[ボタン幅]" height="[ボタン高さ]" alt="LINEで送る" /></a>

先ほどコピペした画像のURLを、[ボタン画像のURL]の部分にコピペします。

WS000002

[ボタン幅][ボタン高さ]は適切なサイズが↑の様に記載されていますので
合わせると綺麗に表示される様です。


<a href="http://line.naver.jp/R/msg/text/?<?php the_title(); ?>%0D%0A<?php the_permalink(); ?>"><img src="http://sugerich.com/blog/wp-content/uploads/2012/12/linebutton_36x60.png" width="36" height="60" alt="LINEで送る" /></a>

以上を踏まえると私のサイトですと、こんな感じのコードになりました。