Edited at

Elasticsearch + Logstash + Kibana + SudachiプラグインでTwitterを可視化したときのtemplate


使用した環境

上の1つ目の手順でセットアップした環境に、2つ目の「手順2:Logstashの設定ファイルを作成->起動する」部分の手順で、Logstashの設定と起動を実施。


Elasticsearchのテンプレート

Tweet情報から、以下のFieldに対し指定したtypeで扱うよう指定。


  • field名:coordinates を geo_point に

  • field名:created_at を date に (日付フォーマット指定も)

参考:Index twitter data with coordinates geo_point parse exception

環境セットアップ時の情報に記載の、dynamic templateでsudachi_analyzerが利用できるようにする設定も合わせて行う。


テンプレートの設定ファイル


mytweet.json

{

"template": "mytweet*",
"settings":{
"index": {
"analysis": {
"tokenizer": {
"sudachi_tokenizer": {
"type": "sudachi_tokenizer",
"mode": "search",
"discard_punctuation": true
}
},
"analyzer": {
"sudachi_analyzer": {
"filter": [
],
"tokenizer": "sudachi_tokenizer",
"type": "custom"
}
}
}
}
},
"mappings": {
"_default_": {
"dynamic_templates":[
{
"texts": {
"match_mapping_type": "string",
"match": "text",
"mapping": {
"type": "text",
"analyzer": "sudachi_analyzer",
"fielddata": true
}
}
}
],
"properties": {
"coordinates":{
"properties": {
"coordinates": {
"type": "geo_point"
},
"type":{
"type": "text",
"fields": {
"keyword":{
"type":"keyword",
"ignore_above": 256
}
}
}
}
},
"created_at": {
"type": "date",
"format": "EEE MMM dd HH:mm:ss Z YYYY"
}
}
}
}
}


Indexにテンプレートを適用する

上のmytweet.jsonを使って以下を実行。

$ curl -X PUT -H "Content-Type: application/json" http://localhost:9200/_template/mytweet -d "@mytweet.json"


追記(備忘録)

冒頭の Elasticsearch+Logstash+Kibanaで作るTwitter分析ダッシュボード 作成手順まとめ

「手順2:Logstashの設定ファイルを作成->起動する」部分の手順で、Logstashの設定と起動を実施。

のところの作業ログ。


Logstashの設定ファイルを準備

/usr/share/logstash/kibana_twitter.conf を準備


kibana_twitter.conf

input {

twitter {
# TwittrAPIの認証情報を入力
consumer_key => "xxx"
consumer_secret => "yyy"
oauth_token => "zzz"
oauth_token_secret => "aaa"
# つぶやきの検索対象に含めるキーワードを配列で指定する
keywords => ["#紅葉"]
full_tweet => true
}
}
output {
elasticsearch {
# ElasticSearchのホストパス
hosts => ["http://public_ip_address:9200/"]
# インデックス名
index => "koyotweet"
}
}


起動とログ監視

# /usr/share/logstash/bin/logstash --path.settings=/etc/logstash --path.data /tmp -f /usr/share/logstash/kibana_twitter.conf 

$ tail -f /var/log/logstash/logstash-plain.log

停止は kill -9