解决"Logstash不能识别unzip解压的文件"

step 1.

find *.zip -exec unzip -j {} \;

change to

find *.zip -exec unzip -aanXj {} \;

step 2.

#Here is a working workaround:

sudo vi /etc/init.d/logstash

#modify

LS_GROUP=logstash
#by

LS_GROUP=adm
#then

sudo /etc/init.d/logstash start

遇到一个两天都没有解决的问题。

启用新的es集群,elk都使用最新的2.0+版本,同时把以前的数据打包复制到新机器上进行解压。
配置好所有文件以后,发现logstash能正常启动却不能索引日志。

好像根本没有包含任何文件。
后来发现手工写的日志可以索引,把解压后的文件cat到新的文件中,也可以索引。

测试的时候,安装了logstash 2.0, 2.1, 2.2都不能解决。Logstash 1.5却正常。

解压的文件和自己生成的文件,用户组,用户权限,md5都完全一样,除了...

update:
logstash2.x增加了ignore_older参数,调整ignore_older参数即可,默认是86400
https://www.elastic.co/guide/en/logstash/2.4/plugins-inputs-file.html#plugins-inputs-file-ignore_older

ELKStack(ELASTICSEARCH)几个常见问题的解决

curl -XPUT 127.0.0.1:9200/_snapshot/backup -d '
{
    "type":"fs",
    "settings":{"location":"/opt/elk/snapshot/"}
}'

出现unassigned shards的手工修复方法

curl -XPOST 'localhost:9200/_cluster/reroute' -d '{
    "commands" : [ {
          "allocate" : {
              "index" : "logstash-ksmobile-2015.05",
              "shard" : 0,
              "node" : "0G0Gu4NNTTOtOi0LH_hdfg",
              "allow_primary" : true
          }
        }
    ]
}'

出现大量unassigned shards的批量修复方法

master=$(curl -s 'http://localhost:9200/_cat/master?v' | grep -v ' ip ' | awk '{print $1}')
for index in $(curl  -s 'http://localhost:9200/_cat/shards' | grep UNASSIGNED | awk '{print $1}' | sort | uniq); do
    for shard in $(curl  -s 'http://localhost:9200/_cat/shards' | grep UNASSIGNED | grep $index | awk '{print $2}' | sort | uniq); do
        echo  $index $shard

        curl -XPOST 'http://localhost:9200/_cluster/reroute' -d '{
            "commands" : [ {
                  "allocate" : {
                      "index" : "'$index'",
                      "shard" : "'$shard'",
                      "node" : "'$master'",
                      "allow_primary" : true
                  }
                }
            ]
        }'

        sleep 5
    done
done

via:http://www.wklken.me/posts/2015/05/23/elasticsearch-issues.html
via:http://keenwon.com/1393.html

elasticsearch离线安装插件, elasticsearch install plugin offline

es版本 1.6
https://www.elastic.co/guide/en/elasticsearch/reference/1.6/modules-plugins.html

离线安装方法
bin/plugin --url file:///path/to/plugin --install plugin-name

$ ./plugin -install mobz/elasticsearch-head (这是安装head插件,在线安装)
$ ./plugin install head -url file:/downloads/elasticsearch-head-master.zip (这是离线安装方式,file后面就是插件路径,去github上直接下载,地址就不提供了,时间久了会变,直接上git上搜就行)

常见的插件
http://www.searchtech.pro/elasticsearch-plugins

推荐插件
./elasticsearch/bin/plugin --install lmenezes/elasticsearch-kopf
./elasticsearch/bin/plugin --install mobz/elasticsearch-head
./elasticsearch/bin/plugin --install jettro/elasticsearch-gui
./elasticsearch/bin/plugin --install lukas-vlcek/bigdesk

ELK中无法启动kibana,解决“Elasticsearch is still initializing the kibana index... ”

kibana出现无法启动的问题,5601端口未连接,但进程存在,查看日志发现有如下报错

"Elasticsearch is still initializing the kibana index... Trying again in 2.5 second."

ps:查看日志可以用 kibana -l xxx.log

{"name":"Kibana","hostname":"kt52","pid":3607,"level":30,"msg":"Elasticsearch is still initializing the kibana index... Trying again in 2.5 second.","time":"2015-07-10T02:40:12.473Z","v":0}

一开始以为是集群中es的索引有问题,将5台机器的索引删除了也不顶用,浪费了一天时间。后来发现需要删除.kibana的索引。

解决办法
1. /_plugin/gui/ 使用gui删除.kibana的索引
2. curl -XDELETE http://localhost:9200/.kibana