たごもりすメモ

コードとかその他の話とか。

「Fluentd実践入門」を10月8日に出版します

Fluentd実践入門

Fluentdの現バージョン(v1.15)について世界で一番詳しい本です。というか、Fluentdそのものだけについての、おそらく世界で唯一の技術書です。 出版社は技術評論社です。電子版もGihyo.jpやKindleはじめ各社で出ます。買ってね!

gihyo.jp

TL;DR

  • 発売日は10月8日です
    • 一部書店ではちょっと早く9月末に並ぶかも
    • 電子版は発売日よりちょっと前に出るかも1
  • 544ページ、Fluentd本体については考えられる限り盛り込みました
    • Fluentdをなんとなく使っている人が確信を持って使えるようになれるはず
    • 組込みプラグインの頻出用法、本番環境での運用ノウハウ、プラグイン開発からテストなどまで
  • エコシステム的な部分についてはカバーできていません
    • Kubernetes上での運用やFluent Bitとの組み合わせとか
    • AWS FireLensやGCP CloudLoggingなどで使うときのノウハウとか
    • でもそのへんを調べるときの基礎的な知識が得られるでしょう

最後のゲラのチェックと修正はさっき終わらせたぞ!

なお、本の一部に見開きで左右ぶち抜きの表があります。まあまあな数あります。これがもしかしたら、電子版ではちょっと見にくいかもしれません。残念ですが各ページには収まらなかったのでこうなっています。電子版を購入される方にはすみません。

アピールポイント

Fluentdについて、前にけっこうやったしだいたい知ってる、と思う人もいると思います。おそらくその人達の多くは次のことを知らないでしょう。

  • out_forward送信先リスト2、今では再起動なしで増やしたり減らしたりできる
  • Fluentdの設定ファイルはYAMLで書ける

ひとつめはFluentd v1.8でサポートされたService Discoveryプラグインによるもので、ふたつめはFluentd v1.15で入ったばかりのものです。この本で両方とも(後者はコラムでだけど)解説されてます。Service Discoveryプラグインを使ったプラグインの作りかたももちろん解説されています。ということで、最近便利になった情報もがっつり盛り込みました。

また、Fluentdのことは詳しくは知らないけど、なんか設定してみたら使えたしそのまま動かしている、という人もいると思います。というか、おそらくそういう人は世界中にものすごく多くて、それでなんとなく使えるFluentdはいいソフトウェアだということなんです。

が、それだと高負荷時に何か起きてしまうとか、エンタープライズ案件の超高信頼性が要求されるケースで使うことになってあらゆるパラメータを調べないといけなくなったとか、そういう場合にすごく困る。ドキュメントに書いてあることも多いんだけど英語だし、各々のプラグインのパラメータ起点でしか説明されていないから、全体像としてバッファリングやリトライがどうなっているのか、イベントはどこから来てどこへ行くのか、そもそもイベントって、レコードやタグやtimeって何???? みたいなことがたぶん起きてるはずなんですよ。

あとは、プラグイン書けば簡単に済むはずのことをすごく苦労してる人も多いんじゃないかと思ってて、その人たちにプラグインを書くということがどれだけ簡単なことなのかを伝えられてもいないんじゃないかと思います。

ということで、この本ではそのへんのことがだいたい全部書かれています。いるはずです。そのへんのことに世界で二番か、もしかしたら一番目に詳しいのが自分です。なので、この本は世界で自分しか書けなかったと思います3

Fluentdがもうちょっと流行ってる感ある数年前に出せてればよかったかなと思う反面、ログの扱いという需要が消滅することは絶対に無くて、かつ代替OSSも出てきていないと思うので、たぶんみんな静かに当たり前に使うフェイズになっているのかな、と思うんですよ。なので、もしかして今こそ、多くの人に届くのかもしれないな、とも思います。

残念だったけど今後に期待ポイント

で、Fluentdそのものについてはだいたい全部書いたんですが、もちろん書かれていないこともいっぱいあります。

サードパーティプラグイン各々の紹介とか、統合ログ基盤なるものの全体をどう作ってどう使うのかとか、極端に大規模・大トラフィックな環境に特化した運用ノウハウとか。 あと最近ではKubernetes環境での使用方法とか運用ノウハウ、Fluent Bitとの連携やFluentd Bitそのものの解説、AWS FireLensやGCP CloudLoggingなどのFluentdの陰が見え隠れするロギングサービスとの関係、連携、などなど。

もちろん1冊の本で森羅万象をカバーできないので、そのへんは、今後・他の本や記事に期待、ということになります。Kubernetes環境やFluent Bitについては書きたい気持ちもありましたが、ボリューム的な問題や、自分にその周辺のノウハウがほぼ無いことも含めて、ちょっと難しかったです。

しかし、今現在、そのへんの技術や製品のドキュメントをちょっと見ると、なんか普通にみんなFluentdについてのごく簡単な説明をするだけとか、「Fluentdについてはオンラインドキュメントを見てください。さて……」みたいな感じになってるんですよ。でも、ちょっとFluentdのドキュメントサイト見て全部分かれっていうの、だいぶ無理があるはずだったと思うんですよね。なので、この本が出たことで、「この本を読んでください」と言える状態まで持っていけたんじゃないかなとは思っています。

また、今までだとそのへんの発展的なトピックについて解説したり本を書こうとしたりしても「ええ……まずFluentdの解説するの……?」みたいな感じがあったんじゃないかなという気がします。今後はそのへんを「この本読め!」でスキップできると思うので、より発展的なトピックについて、もっと気軽に・詳しく解説してくれる人が増えてくれるといいなと期待しています。

経緯や感慨

この本、ほんとはもっと何年も早く出せるといいなと思って書きはじめたんですよねー。最初は編集さんもつけず、単独でやってました。そしたら最初の半分近くまでは一気に書けたものの、ある章のあるトピックを書こうとして「いや、これ全部書くの無理じゃない……?」みたいな感じで手が止まってしまい4、いきなりすごい期間が空いてしまって。んで、その後なんとか再開したもののぜんぜん進まず、そこから編集の @inao さんに泣きついて、もう何から何までお世話になりながら、なんとか出版までこぎつけました。@inaoさんには本当にもう絶対頭が上がりません。

ぶっちゃけ、途中の手が止まった時期には、できてる分の原稿だけで同人誌として出しちゃってお茶を濁そうかな、とか思った時期もあったんですよ。そうしなくて良かったです。今にして思えば、必要なことがまだあれこれ書かれていなかったし、全体の組み立ても考えられていなくて、本としての出来は3割以下だったんじゃないかという。あれで出して終わってたら、世間に出すべき知識と経験が埋もれたまま終わっちゃってたなと思います。

出せてよかったなと思うのは、前にも書いたけど、これ書けるの本当に自分しかいないなっていうのはあって、今回やれるだけのことはやったから肩の荷が降りたと感じてる部分かな。Fluentd v5とかv10とかになるとまた違うんだろうけど、これでFluentdについてやらないといけなかったことを全部やった、という感じはあります。5

まあ何にしろね、単著ですよ単著。自分が通っているあの本屋に自分が書いた本が置かれる! かもしれない! ウヒョー!

雑誌での執筆は何度もあったけど、本を書くとなると雑誌の原稿とは全然違う作業が大量に、死ぬほど大量にあって大変でした。正直ナメてた。みんなこんな大変なことやってたんだな。すごい。でも単著だったから自分で全部やらないといけなくて大変だったのかもしれない。が、ちょっと共著にはトラウマがあってさ……。6

しかし、とにかくこれで出ます。もう自分が何もやらなくても出るはず。いやー、正直な話、前の会社を辞めてから色々やりつつも、ずっとこの原稿のことが頭や直近のTODOにあって、それがキツくて……。自分は大きいタスクを2並行では処理できないんだなと思い知りました。この本の原稿の作業がようやく終わりそうになった最近、ついに脳内のバックグラウンドでいま書いてるサービスの実装をどうするかを考えられるようになってきて、それがちょっと嬉しいです。

まとめ

がんばって書きました。Fluentd使っている・使いそうな方はぜひどうぞ! Fluentdに関係なくてもどうぞ!


  1. 紙版の発売日10/8に対して、Kindle版は10/6で登録されていますね

  2. <server>で並べて書いてたやつ、YAMLJSONファイルに書いて読ませるか、DNSSRVレコードを使う

  3. だって@repeatedlyは技術書とか書かないじゃん、ぜったい

  4. これは実際には書こうとしていたトピックに無理があって、最終的に収録範囲からは外しました

  5. これはなんなんだ、と思ったけど、ISUCONが完全に自分と関係ないイベントとして勝手に続いているのを見るのと似た感じなのかなといま思いました

  6. だいぶ昔にある共著の話に誘ってもらって参加して、原稿の担当分の半分くらいは書いたんだけど、そのまま編集さんがどっか行って話がポシャったことがあって、あれはかなり悲しかった。あるところで技術書の共著が話題になったとき、当時の共著者メンバーが一人いたのでふと目をやると、ばっちりその人と目が合って、思わず二人で笑ったことが忘れられない。