この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
藤本です。
昨日、今日と弊社佐々木がBeats PlatformのTopbeat、Filebeatをご紹介しました。私からはPacketbeatをご紹介します。
環境
私はDocker使い(え)ません!
- OS
- Amazon Linux 2015.09
- ミドルウェア :
- elasticsearch-2.1.0-1.noarch
- kibana-4.3.0
- httpd24-2.4.16-1.62.amzn1.x86_64
- mysql-server-5.5-1.6.amzn1.noarch
やってみた
インストール
パッケージやバイナリは各種ファイル形式(今回はrpmファイル)でelasitc社のページからダウンロードできます。
$ sudo rpm -ivh https://download.elastic.co/beats/packetbeat/packetbeat-1.0.0-x86_64.rpm
Retrieving https://download.elastic.co/beats/packetbeat/packetbeat-1.0.0-x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:packetbeat-1.0.0-1 ################################# [100%]
$ rpm -ql packetbeat
/etc/init.d/packetbeat
/etc/packetbeat/packetbeat.template.json
/etc/packetbeat/packetbeat.yml
/usr/bin/packetbeat
/usr/bin/packetbeat-god
パッケージの中身はこれだけです。
インデックステンプレート作成
パッケージに内包されているJSONファイルを使ってインデックステンプレートを作成します。
$ curl -XPUT localhost:9200/_template/packetbeat -d @/etc/packetbeat/packetbeat.template.json
{"acknowledged":true}
$ curl "localhost:9200/_template/packetbeat?pretty"
{
"packetbeat" : {
"order" : 0,
"template" : "packetbeat-*",
"settings" : {
"index" : {
"refresh_interval" : "5s"
}
},
"mappings" : {
"_default_" : {
"dynamic_templates" : [ {
"template1" : {
"mapping" : {
"index" : "not_analyzed",
"ignore_above" : 1024,
"doc_values" : true,
"type" : "{dynamic_type}"
},
"match" : "*"
}
} ],
"properties" : {
"response" : {
"index" : "analyzed",
"norms" : {
"enabled" : false
},
"type" : "string"
},
"client_location" : {
"type" : "geo_point"
},
"@timestamp" : {
"type" : "date"
},
"query" : {
"index" : "not_analyzed",
"doc_values" : true,
"type" : "string"
},
"request" : {
"index" : "analyzed",
"norms" : {
"enabled" : false
},
"type" : "string"
},
"params" : {
"index" : "analyzed",
"norms" : {
"enabled" : false
},
"type" : "string"
}
},
"_all" : {
"enabled" : true,
"norms" : {
"enabled" : false
}
}
}
},
"aliases" : { }
}
}
ダッシュボード生成
Topbeatでも紹介しましたが、elasticはTopbeat、Packetbeat用のダッシュボードを用意しています。
$ git clone https://github.com/elastic/beats-dashboards.git
Cloning into 'beats-dashboards'...
remote: Counting objects: 929, done.
remote: Compressing objects: 100% (40/40), done.
remote: Total 929 (delta 24), reused 0 (delta 0), pack-reused 889
Receiving objects: 100% (929/929), 2.31 MiB | 1.10 MiB/s, done.
Resolving deltas: 100% (662/662), done.
Checking connectivity... done.
$ cd beats-dashboards/
$ ./load.sh -url localhost:9200
Loading dashboards to localhost:9200 in .kibana using curl:
Loading search Cache-transactions:
(中略)
Loading index pattern topbeat-*:
{"_index":".kibana","_type":"index-pattern","_id":"topbeat-*","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}
ダッシュボードの登録が完了しました。
httpdのデータ取得
まずはWEBアクセスし、データを収集します。
Kibanaへアクセスします。
Discoverを見てみます。データが収集できていますね。
どのようなデータが取れているのでしょうか。
接続元IPアドレス、転送Byte数、HTTPステータスコード、レスポンスタイム、パス、ポート番号などなどなど。スゴイ!!こんなにたくさんの情報がこんなに簡単に取れました!
次はDashboardを見てみます。
ロードすると、いくつかの既に用意されています。
今回はHTTPを選択します。
これ見てるだけで仕事した気になりそう。
MySQLのデータ取得
まずはSQLを流して、データを収集します。
Kibanaへアクセスします。 まずはDiscover。データを収集できています。
データの内容はどうでしょう。
接続元IPアドレス、転送Byte数、出力行数・列数、レスポンスタイム、SQLなどなどなど。
次はDashboardを見てみます。
今回はMySQL Performanceを選択します。
まとめ
いかがでしたでしょうか?
これで現在リリースされている3つのofficially supported Beatsを一通りご紹介しました。次回はFilebeat + Logstashによるログの可視化、そもそもBeats Platformとは、といったところをご紹介できれば、と思います。