安装环境以及版本
巨坑提醒:ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装成功,现象:ES安装成功了但是kibana链接到ES报错:Elasticsearch plugin is red
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
docker pull elasticsearch:6.6.0
下载需要一段时间,完毕后可以查看镜像
docker images
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.6.0
ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到Docker容器中的9200端口,就可以访问到Docker容器中的ElasticSearch服务了,同时我们把这个容器命名为es
进入容器
docker exec -it es /bin/bash
修改 elasticsearch.yml
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
cd config
# 修改配置文件
vi elasticsearch.yml
elasticsearch.yml 新增如下代码:
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
下载安装中文分词器,分词器的版本最好跟你的es版本一致
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
退出容器.重启es
exit
docker restart es
http://localhost:9200/
显示效果如下就成功了
{
"name" : "SJ4VjWi",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "CIsOgErHSLGVDxHTzVNesw",
"version" : {
"number" : "6.6.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "a9861f4",
"build_date" : "2019-01-24T11:27:09.439740Z",
"build_snapshot" : false,
"lucene_version" : "7.6.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
安装kibana可以不安装这个容器,作用:视图化ElasticSearch,管理界面进行查看ElasticSearch相关信息
docker pull mobz/elasticsearch-head:5
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
http://localhost:9100/
显示效果如下就成功了
解决方案:
docker exex -it 容器id /bin/bash
apt-get update
apt-get install vim
vim _site/vendor.js
1. 6886行 /contentType: "application/x-www-form-urlencoded
改成 contentType: "application/json;charset=UTF-8"
2. 7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded"
改成 var inspectData = s.contentType === "application/json;charset=UTF-8"
exit
docker restart 容器id
Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
docker pull docker.elastic.co/logstash/logstash:6.2.4
docker run --name es_logstash docker.elastic.co/logstash/logstash:6.2.4
进入容器:
docker exec -it es_logstash /bin/bash
进入目录cd config ,打开并修改配置文件
vi logstash.yml
修改内容为:
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.0.104:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme
注意,一定是宿主机的IP4地址。xpack.monitoring.elasticsearch.url: http://192.168.0.104:9200
cd ../pipeline
vi logstash.conf
修改内容如下:
#原来的
#========================================
#input {
# beats {
# port => 5044
# }
#}
#output {
# stdout {
# codec => rubydebug
# }
#}
#========================================
#添加的部分
input {
file {
codec=> json
path => "/usr/local/*.json"
}
}
filter {
#定义数据的格式
grok {
match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
}
}
output {
elasticsearch{
hosts=> "http://192.168.0.104:9200"
}
}
注意,一定是宿主机的IP4地址, hosts=> “http://192.168.0.104:9200”
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志
docker pull kibana:6.5.3
docker run --name es_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://192.168.2.153:9200 kibana:6.5.3
http://localhost:5601/
显示效果如下就成功了
原因:kibana版本与ES的版本不兼容
解决方案:统一kibana版本与ES的版本 或 kibana版本低于ES的版本
好了,本菜鸟在安装的过程中只遇到这么多问题,如果各位大佬还有其他的坑,可以给本人留言共同探讨,感谢欣赏