Tag Archives: Linux

CentOS7 + kibana + Elasticsearch 構築

先日準備したElasticsearchの上にkibanaを構築していく。kibanaで手軽にwordpressのアクセス状況を解析したい。手癖の悪いクローラーがDoS攻撃のようになって、レスポンスタイムが著しく遅くなったことがあった。一見するとサーバ側には何も問題が起きていないため、逆に原因を特定しづらい。こういうときに、HTTPステータス数やIPアドレスごとのレスポンスタイムを集計したグラフがあったりすると、すぐに問題を判別できる。無名のクローラーなんて全部拒否っちゃえばいいんだけどね。... 続きを読む

mirakurun バッファ 枯渇障害 対策編

epgrec UNA + mirakurunによる録画環境で数日に1回くらい録画が失敗する問題。前回、ログの出力内容からmirakurunのTSFilter.jsで問題が起きているところまでわかった。このクラスはstream.Duplexを継承していて、その継承元にbuffered writeのような処理がある模様。素直に考えれば何らかの事情でwriteが進まず、書き込むべきdataがbufferに貯まっていき、いずれoverflowに至ると。根本対策としてはwriteが滞ることの改善、それが無理ならbufferを大きくして枯渇までの時間を稼ぐ。... 続きを読む

CentOS7 + Elasticsearch クラスター 構築

今更だけど、elasticsearchを導入する。モチベーションは、とりあえずダッシュボードとしてkibanaを使っていきたいから。手癖の悪いクローラーが来ると、wordpressのレスポンスがスローダウンするんだけど、いちいちaccess.log見て調べるのも億劫なので、普段から簡単に見れるようにしておきたい。おいおいは全文索引の検索エンジンとしても使っていくつもり。検索エンジンというカテゴリで考えれば、もう幾つか選択肢はあるんだけど、esはクラスターとしての運用が考慮されているのが素敵。... 続きを読む

mirakurun バッファ 枯渇障害 調査編

安定運用に入ったepgrecだったが、稀に録画が失敗してしまう。頻度は読めないが、多くても1週間に数回とか。定期性がないので、自分の作業が影響したのかと思ってしまって調査を先延ばしにしていた。録画に失敗すると、rivarunとリアルタイムエンコードしているffmpegのプロセスが残り続けるので、おいおい何かのきっかけで気が付く。特にffmpegのプロセスが厄介で、QSVエンコードを使っているせいか、割り込み不可の待機状態に入ってしまいkillできなくなってしまう。... 続きを読む

GlusterFS v3.9 の Split-Brain 障害対応

先日、わずかサーバ2台だけの我が家でSplit-Brainを経験した。いくつかSplit-Brainを引き起こすようなマルチマスターのクラスターソフトがあるのだが、見事にSplit-Brainを引き起こしたのがGlusterFSだった。以前にもGlusterFSのSplit-Brainは取り扱ったことがあるが、今回はバージョンアップ後の初めてのSplit-Brainとなる。いつも通りに対応しようと以下のコマンドでsplit-brainしているファイルやディレクトリを確認する。... 続きを読む

録画サーバ構築 epgrec UNA リアルタイム エンコーディング

epgrec UNAをmirakurunと連携させて動かすようにした。細部で仕様が合わないところもあるが、番組更新や予約録画など主要処理が動作するようになったのでよしとする。続いて何とかしたかったのが、トランスコーディング処理。現在のepgrec UNAの作りだと時刻通りにTS録画を行い、その後にトランスコード処理としてmp4へのエンコードとcomskipを使ったチャプター追加を行っている。この録画後の処理が長くてうんざりする。ちょうど番組が終わるから見ようと思ってもしばらく見ることが出来ない。... 続きを読む

録画サーバ構築 epgrec UNA+mirakurun環境 epgrec改造編

epgrec UNA + mirakurun の組み合わせで動作させるために、前回mirakurunの調整を行った。チューナーの利用元はepgrec側に統一したいので、mirakurun側での操作を止めることが目的だった。今回はepgrec側でのチューナー操作をrecpt1からrivarunに変更して、別サーバ上のmirakurunでも録画できるようにする。ちょっとややこしいけど、ローカル2本のチューナーとリモート2本のチューナーを透過的に扱う。具体的にはmirakurunのtuners.ymlを以下のように用意する。... 続きを読む

ネットワーク起因で真の Split-Brain 障害発生

今までも何度か扱ってきたSplit-Brain問題。うちの環境で起き得るのは、マルチマスターになっているGlusterFSやMariaDB、ElasticSearchなど。これまで経験したSplit-Brainは、そうは言いながらも片側のみ更新されて、もう一方が更新されないというもの。正しく更新されている方にキャッチアップさせればいいだけなので、それほど難易度は高くない。あるいはSplit-Brain対策で書き込み停止してしまったサービスをどうするか、というものもあったかもしれない。真の意味でのSplit-Brainを経験することはなかった。... 続きを読む

録画サーバ構築 epgrec UNA+mirakurun環境 mirakurun準備編

2台のサーバに2台のPT3で運用する構成を考える。主目的は冗長化でどちらのサーバでも2並列までは録画できるようにする。また、通常運用時は2台のPT3で4並列まで録画できるようにするのが理想だ。ネットワーク越しに2つのPT3を透過的に扱いたいので、チューナーを抽象化してくれるmirakurunはどうしても導入したい。バックエンドがmirakurunだとすると、普通に考えれば録画管理もchinachuに任すのが順当。実際にchinachuも使ってみたんだけど、UI的にはepgrec UNAの方がわかりやすいような。... 続きを読む

GlusterFS バージョンアップ 失敗!

自分の環境においては、すっかり中心的なインフラとなったGlusterFS。唯一の悩みがバージョンアップ運用をどうするかだった。というのも以前マイナーバージョンを上げてみた際に、著しくI/O性能が劣化してしまって、バージョンを切り戻した経緯がある。加えて、自分の環境のkickstartやchefなどの構成管理システムがGlusterFSに依存してしまっており、GlusterFSに問題が起きるとOS再構築すらままならない。この状態に陥ると手詰まりになってしまうため、GlusterFSのバージョンアップは悩ましかった。... 続きを読む

録画サーバ構築 PT3 Rev.A @ LXC

今まで仮想サーバ上で動かそうとしていた録画サーバ。チューナーカードをCentOS7でも問題なく動作するPT3に変更したので、今回はCentOS7上のLXCコンテナとして録画サーバを構築する。コンテナの方がストレージ周りをホストOSと共有しやすく、性能的なオーバーヘッドも少ないのでKVMより扱いやすい。ホストOS上そのものに録画サーバを構築してしまうと、自宅インフラが硬直的になってしまうので避けておく。また、ドライバの関係でノードを分けていたチューナーサーバとエンコードサーバも1つのノードとして統合する。... 続きを読む

録画サーバ構築 PT3 Rev.A vs PX-Q3PE 比較 検証編

前回より構築し始めたPT3環境。デバイスの認識に思った以上に時間をかけてしまったが、今はf痛に動くようになったので録画環境を構築していく。PT3の場合、CentOS7でも動くので最終的にはQSV環境と共存させる形でLXCコンテナでの運用を想定している。しかし、今回は旧PX-Q3PE環境との比較のため、仮想環境上にCentOS6を用意して、そこにMirakurun環境を構築する。PX-Q3PEはrivarun経由で別サーバにDisk I/Oしてもノイズが乗ったので、それがPT3でも再現するかどうかがポイント。... 続きを読む

録画サーバ構築 PT3 Rev.A vs PX-Q3PE 比較 構築編

1年近くPX-Q3PEを使いこなそうとしてきたのだけれど、仮想環境においてDisk I/OあるいはNetwork I/Oに弱いよるノイズを回避できないため、現在の環境での利用を断念。QSVが使えるCentOS7に同居させたいという希望もあって、遂にPT3 Rev.Aへの移行を決意。PX-Q3PEの不安定さがチューナーカードとして一般的なものなのか、製品固有なものなのかを評価してみたくもあったので、ちょうどよい機会。PX-Q3PEが若干値上がりしているので、PT3 Rev.Aの中古価格も悪くないレベルかも。チューナー数半減だけど。... 続きを読む

zabbix ( nginx + php-fpm + MariaDB ) 導入

自宅とIDCFクラウド環境のopenvpnによるLAN to LAN接続が成功したので、ようやく監視環境を構築する。nagiosを割と使い込んでいたんだけど、サービス監視とリソースウォッチが統合されているzabbixを使ってみたかった。データもRDBに貯められるので冗長構成を作り易い。いまいちだったら別のものを作るという考えで、とりあえず使い始めてみる。インストールはもはや何の問題にもならない。zabbixリポジトリを設定してyum installするだけ。依存関係を解決する形でphpやhttpdもインストールされる。DBサーバには別サーバdb1のMariaDBを使うので構築済みの前提で進める。... 続きを読む

MariaDB Galera Cluster の Split-Brain 問題

MySQLのマスター・スレーブ構成からMariaDBのマルチマスター構成に移行してから、DB側の運用は非常に楽になった。wordpressに関して言えばWeb+DBのセットが2つあるので、その単位でラウンドロビンしている限り、まったく問題なく複数台構成を取れる(Webの接続先DBがlocalhostという状態)。しかし、DBのみを分離してreadもwriteも関係なくラウンドロビンさせると、どうしてもdead lockが頻発してしまって不都合が起きやすい。... 続きを読む

録画サーバ構築 PX-Q3PE + Mirakurun 検証編

コンセプトが非常に素晴らしいMirakurunサーバ、自分の想定している使い方に合わせていくには多少の改造は必要そうだけど、チューナーサーバと録画サーバを分離してくれたことは非常にありがたい。若干、Chinachuで使うことを前提とした構造に思えるので、もっと汎用的な位置付けのものになってくれると尚嬉しい。それでもPX-Q3PEについて言えば、OSを限定するが故に仮想化したいチューナー側と、仮想サーバが苦手とする録画処理を分離できるのだから、最強のソリューションと言っても過言ではない。... 続きを読む

録画サーバ構築 PX-Q3PE + Mirakurun 導入編

いい加減手離れかなあと思っていた録画サーバ。他にも作りたいものはいっぱいあるのに、何故かもやもやがやまず、ついつい触ってしまう。大抵は頭の中で改善される環境がぼんやり思い浮かんでいるのに、それを具体化できていなかったりするから。という訳で、きちんと頭の中の課題を整理してみる。PX-Q3PEはドライバの関係でCentOS6系に限定されるが、我が家では物理OSにCentOS7を使いたい。しかし、PX-Q3PEとKVM上で使うとI/O時にノイズが入ってしまう。どうすればよいか。... 続きを読む

IDCFクラウド openvpn による LAN to LAN 接続

IDCFクラウドで不意の障害に見舞われることが増え始めたので、もう少しまともな運用を考える。たまたま自分でアクセスしたときに障害に気付くような状況をまずは改善する。IDCFクラウドのリソースはケチケチで運用しているので、自宅のサーバからクラウド側のサーバを監視するのが理想的。できればウェブ系の監視だけでなく、サーバごとのリソースウォッチも行いたいので、自宅から個々のサーバ、あるいはそのサーバ内のコンテナにアクセスできるように設定したい。そこでVPNの導入を検討してみる。... 続きを読む

録画サーバ epgrec UNA トランスコード設定

仮想サーバをやめて、やっと安定的な録画体制が築けた。長らく先送りとなっていた、録画後処理の自動化を進めていく。録画し終わったデータはTSファイルとして記録される。これを保管および視聴しやすいデータに自動で作り変えたい。検証してきた処理はCPUのハードウェアエンコードを使ったQSVエンコードとcomskipを使ったCMチャプター処理。また、カーナビ用の動画データもついでに自動生成するが、こちらは更に小さいデータでよいのと、うちのカーナビがチャプターあると正しく動作しないのでチャプターなしで生成する。後処理としては以下のような流れを想定している。... 続きを読む

IDCFクラウド wordpress 障害対応

今までVPSやGMOクラウド時代に、wordpress運用で障害らしい障害は起こしたことなかった。サーバ運用が硬直的だったので大きな変更を行えなかったというのも理由の1つではあるが。IDCFクラウドへの移行後は、vmwareノード上にlxcコンテナを作成して、そのコンテナ上でwordpressを運用している。更にwordpressのphp部分はGlusterFSで、データ部分はMariaDBで2台を同期している。これだけ構成を複雑化させてしまったせいかもしれないが、遂にwebサーバにて予期しない障害が発生した。... 続きを読む