ついに登場です!約11か月の開発作業、5つのAlpha版、1つのBeta版、そして1つのRCを経て、人気のデータシッパーの新しいメジャーバージョンが遂に完成しました。しかも、本日リリースされるのは、Beatsだけではないのです。本リリース以降、Elastic Stackのプロジェクトはすべて同時リリースとなり、パッチレベルのバージョン番号も同じになります。Beatsのバージョンが1.3.1からいきなり5.0.0になったのはこのためです。
Alpha版とBeta版を使ったことがあるなら、すでに機能についてはご存じだと思います。 今すぐダウンロードリンクを探しているだけなのであれば、ここの説明は飛ばしていただいて結構です。そうでない方は、このブログ記事で5.0でどんな大きな変更があるのかをぜひご一読ください。
1.xからアップグレードされる方は、 重要な変更点ドキュメントとアップグレードガイドをお読みください。
Metricbeat - お察しのとおり、メトリックス用です
Topbeatに代わってElastic Stackのメトリクスを収集する主なツールとなるのがMetricbeatです。Topbeatと同様に、Metricbeatも、「top」のように、ホストやプロセス単位のリソース(CPU、メモリ、ディスク、ネットワーク)に関する統計情報を収集します。Topbeatと異なるのは、MetricbeatがApacheやHAProxy、MongoDB、MySQL、Nginx、PostgreSQL、Redis、 Zookeeperなどのシステムからもメトリクスを収集できるところです。また、今後は対応システムもさらに増えていく予定です。
Metricbeatのシステムモジュールは、Topbeatのすべての機能に加えて、コンテナごとのメトリックス、ディスクIOメトリックス、ネットワークIOメトリックスなどの新機能も提供します。2つのBeatの設定は互換性がありますが、1つのBeatから別のBeatへの移行も難しくはありません。
朗報はまだ続きます:Metricbeatは、新しいnumber型とElasticsearch 5.0のストレージ実装を利用して、数字のインデキシングと検索がさらにスピードアップし、ディスクとメモリの利用も効率化されます。
Filebeat - 内部的な改善
Filebeatが収集されたファイルの状態を保存する方法(どのファイルを開くか、各ファイルのinode番号、各ファイルをどれぐらいまで読み込むか、など)を改善しました。また、どのような場合にファイルを閉じるか、無視するか、または状態を考慮しないかに関する設定を整理しました。こういった変更により、滅多に発生しないが厄介な問題(inodeの再利用や、非常に速いファイルローテーションなど)に対するFilebeatの堅牢性が高まることを期待しています。
また、Filebeatはネイティブにログ行からJSONオブジェクトを復号できるようになりました。これは、ロギングライブラリがメタデータを直接フォーマットされたJSONとして書き込む、構造化ロギングに便利です。
Packetbeat Flows
Packetbeatは、上位レイヤーのプロトコルに関係なく、IP flowsとTCP flowsについてパケット数やバイト数などの統計情報をレポートするようになりました。これで、Packetbeatを利用できるユースケースが広がり、トラフィックがネットワークをどのように流れるかを把握できる上に、暗号化されたトラフィックについてもある程度の可視性が得られます。
また、Packetbeatには、AMQP、Cassandra、EDNS、DNSSEC、NFSなどのアプリケーションプロトコルのサポートも追加されています。
プロセッサによるフィルタリング
Beats「プロセッサ」とは、Beatから送信される直前のイベントを操作する簡単なルールです。Ingest NodeプロセッサやLogstashフィルタと性質的には同じですが、同等のパワーを期待するのは無理です。Beatsプロセッサは軽量で、データをフィルタリングして、ネットワークに余計なデータが送信されないようにすることが主な仕事です。大量にデータを送信しても、どうせLogstashによって廃棄されてしまうからです。
というわけで、プロセッサは送信するべきデータの選択に大幅な柔軟性を提供してくれます。簡単な例をご紹介しましょう:
processors: - drop_event: when: equals: http.code: 200 - drop_fields: fields: [“http.phrase”]
Kafka Output
みなさんのご意見に耳を傾け、既存のRedisアウトプットを大幅に改善すると同時に、ネイティブなKafkaアウトプットのサポートをBeatsに追加しました。つまり、Kafkaキューを通じてすべてのメッセージを渡しているのなら、BeatsとKafkaの間の変換に追加のLogstashインスタンスはもう要らない、ということです。
Beats Kafkaアウトプットは、Kafkaのバージョン0.8、0.9、そして0.10に対応しており、暗号化、認証はもちろん、ダイナミックトピックやパーティション選択もサポートしています。
設定の柔軟性
Beats 5.0では、設定フォーマットは同じYAMLベースですが、Beatsの導入をもっと楽で簡単にしてくれる小さな機能が多数追加されています。こうした新しい機能には、ネームスペーシングの改善、参照変数、正規表現サポートの強化、コマンドラインから-E
フラグで設定の上書きができる機能などが含まれます。
新しいBeats設定言語についての詳細は、ドキュメントをご覧ください。
より詳しく知りたい方へ
5.0の新機能の詳細は、リリースノートと、プレリリースに関するブログ記事をご覧ください。
- Beats 5.0.0-alpha1
- Beats 5.0.0-alpha2
- Beats 5.0.0-alpha3
- Beats 5.0.0-alpha4
- Beats 5.0.0-alpha5
- Beats 5.0.0-beta1
- Beats 5.0.0-rc1
謝辞とコミュニティのクレジット
さて、ここからは祝賀会です!
まずは、5.0のプレリリースに協力してくださった方、発見した問題を投稿してくださった方に御礼を申し上げます。みなさんには個別にElasticからささやかな御礼の品をお送りさせていただきます。
また、5.0リリースの重要なコードに特に大きな貢献をしてくださった下記のコミュニティのメンバーをクレジットさせていただきます。
- @kofemannPacketbeatでのNFSのサポート
- @mrkschanMetricbeatのNginxモジュール
- @mkstork PacketbeatでのEDNSとDNSSECのサポート
- Al LefebvreMetricbeatのHAProxyモジュール
- Arnout Engelenマッピングコードを処理するPacketbeatのソケットでのIPv6のサポート
- Chris BlackMetricbeatのRedisモジュール
- Cyrille Verrierパッケージングの改善
- Radovan OndasMetricbeatのApacheモジュール
- Thomas PaulmyerPacketbeatでのAMQPのサポート
コミュニティ全体に代わって御礼申し上げます。ありがとう、そして5.0を楽しんでください!