Send secure log to BigQuery

/var/log/secureをBigQueryに送ってRe:dashで攻撃っぽいアクセスなどを可視化してみたかったので送ってみました。 準備 /var/log/secureをtd-agentでも読めるようにパーミッションを下げる /var/log/secureがローテートされてもパーミッションが戻らないようにlogrotateの設定を変更する td-agentの設定 td-agentの設定を追加します。 <filter syslog.secure>部分でログの送信元のサーバのホスト名をレコードに追加している # syslog (secure log) <source> @type »

Change H2O log format to LTSV

h2oのログをtd-agentを使ってGoogle BigQueryに送っています。 Send h2o log to BigQuery 今まで私はtd-agentのtailプラグインの設定で、フォーマットを愚直に正規表現で設定していました。 format /(?<remote_address>[^ ]*) (?<remote_logname>[^ ]*) (?<remote_user>[^ ]*) (?<request_time> »

Monitoring Fluentd with Mackerel and Tuning Fluentd buffer config

h2oのログをbigqueryに送り始めました。 Send h2o log to BigQuery 今のところ特に問題は無いのですが、正直バッファの各設定値やリトライ回数のチューニングについてはどうすれば良いのかよくわからないのでなんとかしたいところです。 そこで、mackerel-agent-pluginsを導入してみます。メトリクスを取ることでチューニングしやすくなるだろうと言う目論見です。 mackerel-agent-plugins/mackerel-plugin-fluentd バッファについては、下記のサイトが分かりやすかったです。 Fluentdの仕組み -バッファ機能でログ収集漏れを防ぐ- | Tech-Sketch BufferedOutput pluginの代表的なoptionについて - Qiita td-agent側の準備 まずtd-agent.confでmonitor_agentプラグインを有効化します。 »

Add logsource hostname to record

bigqueryに送るレコードに送り元のホスト名を追加してみます。 送り元ホストを条件に検索できるようになります。今のところ個人で複数のサーバを運用する予定はないので別に送り元ホストを条件に検索することも無いのですが、こまけーこたぁいいんだよ! filterプラグイン(組み込み)を利用して実現します。 record_transformer Filter Plugin | Fluentd filterプラグインを使うと、td-agentのレコード(tailしたログファイルの行など)にデータを追加することが出来ます。 イメージ的には以下のような感じでしょうか。 [time, tag, record = {ip: "1.2.3.4", status: »

Add new column to BigQuery

h2oのログにUesr-Agent情報も追加した。ログのフォーマットで%{HEADERNAME}iとすると、任意のレスポンスヘッダを出力させることが出来る。 Access Log Directives - Configure - H2O - the optimized HTTP/2 server access-log: path: /var/log/h2o/access.log format: »

Send h2o log to BigQuery

h2oのアクセスログをtd-agentを使ってGoogle BigQueryに送ってみる。幾つか手順が必要。 bigqueryの設定 スキーマ定義ファイルの作成 td-agentの設定 bigqueryの設定 bigqueryへアクセスするためにapiを有効化し、アクセスキーを発行するのだが、この工程が長い…。(´・_・`) 慣れてないと混乱する。 gcpアカウントの作成 作る。 Google Cloud Computing, Hosting Services & APIs  |  Google Cloud Platform プロジェクトの作成 »