Mackerelを支える時系列データベース技術

【追記 2018/01/06】現在Mackerelは、時系列データベースという概念をクラウドの技で再構築する - ゆううきブログの時系列データベース実装へ移行しています。

サーバモニタリングサービス Mackerel で採用している時系列データベース Graphite を用いたシステムの構築と運用事情を紹介します。Graphiteについては、プロビジョニングやアプリケーションからの使い方、Graphite自体のモニタリングなど様々なトピックがありますが、特に大規模ならではのトピックとして、Graphiteの内部アーキテクチャ、パフォーマンスチューニングおよびクラスタ構成についての知見を書きます。

続きを読む

ヘビーなGraphite運用について

"Monitoring Casual Talks #6"に参加して、「ヘビーなGraphite運用」についてしゃべってきた。 Graphite ここ数ヶ月ずっと運用してて、そこそこのリクエスト数さばけるようになるまでと冗長化の話をだいたいしてた。 Graphiteのパフォーマンス・チューニングで結構苦労してて、@sonots さんが発表されてた"GrowthForecast/RRDtool チューニング秘伝の書" がすごい参考になった。(Graphite(whisper) のデータ構造と RRdtool のデータ構造はよく似ている。) fadvise(2)とか知らなかった。 ぜひ試してみたい。

スライド

結構口頭で補足してた。Graphite 秘伝の書書きたい。

感想

今回の勉強会、かなり刺さる内容が揃っててよかった。 形式が30~100人くらいいて、数人の発表者がプレゼンするっていう感じじゃなくて、14人くらいで全員発表とかいう形式だったので、カジュアルに議論とかできてよかった。 あと、結構 Mackerel について言及していただいて関係者としては緊張感あった。 Nagios とか Zabbix の話は意外と少なめで Sensu とかあと、Docker のメトリクス収集とか、Auto Scale時のモニタリング方法とかの議論があって、みんなモダンなことにチャレンジにしててすごい。 また参加したい。

関係ないけど、今週 Docker 1.0 がリリースされて、Dockerそのもの + 周辺ツールが充実してきた感があるので、今回と同じような形式の Docker Casual とかあったらよさそう。

会場の提供/準備をしていただいた @takus さん、@sonotsさん ありがとうございました。

Mackerel を使ったサーバメトリクス可視化の背景っぽいやつ #可視化

可視化ツール現状確認会 on Zusaar

可視化ツール現状確認会で Mackerel-Based Server Metrics Visualization とかいう話をしました。 僕はアルバイト入社したときからサーバ管理ツールにずっと関わってて、周辺ツールとかもウォッチしてて、そういう流れで Mackerel がどういう位置づけにあるかみたいな話だったはず。

かつて自作社内サーバ管理ツールで、RRDtool の最悪の引数をURLクエリで互換するようなパーサ作ってたりして、異常な努力をしていましたが、ここ半年くらいで、モダンな Graphite とか Sensu をサーバ管理ツールと組み合わせようとしていて、気づいたら https://macekrel.io っていうサービスができてたという感じです。 Graphite と Sensu(Collectd) を導入しようとそれはそれで運用が思ったより面倒で、パフォーマンスがでないとかモニタリング用のサーバを用意したくないというようなことがあってかけた労力に見合わないという感じなら普通に Mackerel 使うと便利。 あと、サーバのIPアドレスとかホスト情報とサーバメトリクスビューが分散している場合(Munin と AWS consoleとか)に、統合管理するために Mackerel 使ってもらうのも便利。

ちなみに読み方はマケレルではなくてマカレル(英語読みはマッカレル?)っぽい。 なんでもいいけどとにかく RRDtool を使うべきではないと思います。

資料

軽くロードマップみたいなものも書かれています。 もうちょっと突っ込んだ使い方とか何ができるのかみたいな話は来週のモニカジで喋れたら良さそうです。

会場の提供、準備、運営をしていただいた Voyage Groupの皆様ありがとうございました。

インターネットの様子

モニカジ京都に参加して、SensuとGraphiteの話をしました #monitoringcasual

Monitoring Casual Talk in Kyoto on Zusaar

先週のことだけど、モニカジ京都に参加した。 というか、主催者のid:shoichimasuharaさんとかいう人に雑に主催者に入れられた。 といってもなにもしてなくて、ただインターネットで暇そうな人間を勧誘しただけだった。

当日のだいたいの雰囲気は モニカジin京都を開催しました #monitoringcasual - 桝原翔市的博客 に書いている通り。 shoichiさんが無限に営業活動して、人が集まってきてた。 フルスタックっぽいなと思った。 おつかれさまでした。 次回もよろしくおねがいいたします。

自分の発表

当日僕は、SensuとGraphiteの話をしつつ、ひたすら異常な努力をしてはいけないみたいなことを話した。 発表スライドは以下です。

shoichimasuharaさんがRRDtoolの基礎と応用の話をして、そのあとGraduate from RRDtoolワイワイみたいな発表をするという流れがあった。

社内の自作サーバ管理ツールでメトリクス監視部分をRRDtoolで作ってて、何をするにもRRDtoolがネックになって最悪になるっていう体験を1年間やってきた。 本当はGraphiteとかSensuみたいな筋の良いツールが転がっていたのに、異常な努力を使ってRRDtoolでなんとかしようとしていて、とにかく盲目だったことを反省して、今回こういう発表をした。 今年の9月に開催されたYAPCで YAPC::Asia 2013ではてなのサーバ管理ツールの話のはなしをしました - ゆううきブログ っていう発表をしていて、なんかいい気になって、後半にRRDtoolで異常な努力をしてた話をしてしまったのよくなかった。 前半はわりといい話だから前半だけ見るといいと思う。

モニカジ、本来はオレオレツールの話をする場所っぽい。もう意識しかない感じなのがよくなかった。

次は社内からRRDtoolの駆逐に成功した話をしたい。