BigQueryに送ってみる。bigqueryの設定スキーマ定義ファイルの作成td-agentの設定bigqueryの設定bigqueryへアクセスするためにapiを有効化し、アクセスキーを発行するのだが、この工程が長い...。́・_・`)慣れてないと混乱する。認証情報(とサービスアカウント)の作成これでやっと以下のようなjson形式の鍵ファイルがダウンロードされる。td-agnetの設定で使う。"......"}データセットの作成ログの保存先となるデータセットを作成しておく。expirationを7日にしてデータが無限に溜まり続けないようにしている。送信するデータはbigqueryのテーブル内にスキーマとして保存されるが、このスキーマの型やフィールド名を定義するファイルを準備する。送信されるデータはこのスキーマ定義ファイルの内容に従って保存される。ちなみにh2oのログフォーマットは以下のように設定してある。%b"漏れが無いように注意してスキーマファイルを作成。td-agentの設定じゃー!td-agentのインストールは割愛。Fluentdfluent-plugin-bigqueryのインストールbigqueryにログを送るためのプラグインをインストールする。fluent-plugin-bigquerysystemのgemじゃなくてtd-agentにバンドルされて入ってきたgemを使う必要があるので注意(gemがインストールされる場所などが違う)。Fluentd超便利なシミュレータサイトがあるので、実際のログを使って試しながら作れる。/var/log/td-agent/h2o.access.pos</source>matchの設定でbigqueryにログを送る設定を書く。ここで先程取得したbigqueryのアクセスキーを使う。kaizenplatform/fluent-plugin-bigqueryjqで指定された形式に変換すればそのまま使えて楽ちん。trueすることで自動的に生成されるようにしている。あとは先程作成したスキーマを指定しているくらい。/etc/td-agent/schema-bigquery-h2o.json</match>動作確認bqコマンドでデータが保管されているか確認すると管理画面行かなくていいので楽。gcloudコマンドをインストールする。Platform認証する。プロジェクトIDデータセット/テーブル一覧。データセット名クエリ実行。10'Ansibletd-agent周りのインストールや設定はプレイブックで管理している。BigQueryh2oのログにUesr-Agent情報も追加した。ログのフォーマットで%{HEADERNAME}iとすると、任意のレスポンスヘッダを出力させることが出来る。Dashboardみたいなやつです。設定は簡単で以下のように管理画面からぽちぽちするだけだった。ドメインも設定している。DNSにCNAMEレコードを追加する必要があるので追加する。terraformでね。