升级ELK到最新版本
线上ELK运行一段时间了,但是各种小问题不断,logstash经常挂掉,kibana查询缓慢等等,现在决定升级ELK组件到最新版本,看看效果。
一 升级Elasticsearch
Elasticsearch原来的版本是1.7.1,Elasticsearch最新版本是2.3.3
在升级之前首先查看的就是官方文档关于升级的注意事项
1.查看Breaking Changes说明
Elasticsearch的升级总体原则就是:
大版本升级需要重启整个Elasticsearch集群
小版本升级可以一次升级一个集群节点
由于我们这次升级的版本跨度比较大,所以需要详细地了解版本变更
2.使用elasticsearch-migration插件帮助诊断升级
elasticsearch-migration这个插件可以帮助检查是否可以直接升级当前版本到下一个版本,或者是否在升级之前对现有的数据或者集群做一些更改。
目前遇到一个需要更改的,Elasticsearch3.0之后不能使用带" ." 的字段,例如nginx.client这种字段是不能再用了,可以改成nginx_clent这种形式。
Elasticsearch3.0以下版本安装插件
./bin/plugin -i migration -u https://github.com/elastic/elasticsearch-migration/releases/download/v1.18/elasticsearch-migration-1.18.zip
通过http://xxxx:9200/_plugin/migration/
这种url访问,然后根据提示操作
3.升级之前备份数据
4.升级新版本,重启整个Elasticsearch
在升级的过程中注意查看日志,看看是否有报错信息,对于每个报错信息搜索相应的解决办法.
二 升级Logstash
Logstash由版本1.5.5升级到2.3.3
新版本增加了些有用的功能,修复了之前的一些BUG,详细的可以查看官方文档
可以动态加载配置文件
从Logstash3.3开始可以设置Logstash自动检查和加载配置文件
bin/logstash -f apache.config --auto-reload
Logstash默认会每隔3秒检查配置变更,可以通过 --reload-interval 指定检查间隔时间
如果想要强制重新加载可以使用SIGHHUP信号
可以在配置文件中引用变量
input { tcp { port => "${TCP_PORT:54321}" }}
核心组件使用Java重写,性能得到提升
使用bin/logstash-plugin替代bin/plugin
三 升级Kibana
wget https://download.elastic.co/kibana/kibana/kibana-4.5.1-linux-x64.tar.gz
升级完后,再也没有收到logstash 挂掉的报警了
参考文档:
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/setup-upgrade.html
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/breaking-changes.html
https://github.com/elastic/logstash/blob/2.3/CHANGELOG.md#233-june-14-2016
https://github.com/elastic/elasticsearch-migration/tree/1.x