安装Elasticsearch , Logstash, Kibana
安装elasticsearch
安装
docker run \
-d \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:6.2.4
访问 http://localhost:9200
安装kibana
docker run \
-d \
-u 0 \
--name kibana \
-p 5601:5601\
docker.elastic.co/kibana/kibana:6.2.4
进入到容器内部:docker exec -it kibana /bin/bash
找到kibana的配置文件:/usr/share/kibana/config/ kibana.yml
修改配置文件,因为要绕过x-pack的安全检查
elasticsearch.url: http://localhost:9200
xpack.monitoring.ui.container.elasticsearch.enabled: false
重启容器:docker restart kibana
注意:elasticsearch.ur 中的地址必须是 服务器的 ip 地址: 不然会报如图错误
安装logstash
docker run \
-d \
-u 0 \
--name logstash \
-p 5044:5044\
docker.elastic.co/logstash/logstash:6.2.4
进入容器:docker exec -it logstash /bin/bash
找到文件:/usr/share/logstash/pipeline
修改配置文件logstash.conf
input {
tcp {
port => 5044
codec => json_lines
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
action => "index"
index => "%{[appname]}"
}
stdout { codec => rubydebug }
}
重启容器:docker restart logstash
注意:配置中的localhost 替换成服务器地址,如果直接使用localhost 会导致,logstash 服务无法连接上elasticsearch 服务,导致spring cloud 项目服务连接到 logstash 服务时,该服务会报错,将拒绝项目连接elk 日志服务。
访问客户端:http://192.168.1.242:5601/login?next=%2F#?_g=()
Spring cloud 模块服务配置Logstash
新建日志文件logback-spring.xml
${log.pattern}
192.168.1.242
5044
//引入过滤类
{"appname":"ceshi"} // 索引名
pom.xml 引入jar
net.logstash.logback
logstash-logback-encoder
4.9
服务配置完成
1、启动elk所有服务
2、启动spring cloud 项目模块
3、访问kibana服务: http://192.168.1.242:5601 地址
勾选Include system indices 复选框,Your index pattern can match any of your 7 indices, below. 列表就会展示出,项目的日志配置的
注意:如果勾选Include system indices 后,无法在列表中找到项目中日志配置文件中的索引名称,说明,elk 的日志收集配置没有配通,请一步一步查找原因。
查找方法:查看 Logstash 日志,项目启动时,是否有连接数据打印出来,日志中打印的话就继续寻找下步。
查找路径:项目日志 --->Logstash ---->elasticsearch ---->kibana
如顺利配置通后,就可以到该页面查看
到这里,简单的整个配置完成,如果需要更深入的了解,请查看官方文档。