日志服务搭建-ES-FileBeat-Kibana
Posted 6个日的梦想
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志服务搭建-ES-FileBeat-Kibana相关的知识,希望对你有一定的参考价值。
1次订单量突增问题,导致了有几个数据没有录库,但是确有支付的记录,啥玩意,还能有这个操作,组内安排问题定位,解决,一看打出来的日志,只有支付有,生成订单这边没有,就相当于是俩眼一抹黑。 处理方案,销售确定有下订单后先按照支付的日志,把订单信息维护上。
搞在线日志和核心业务监控,这看linux的日志还是挺费事的。
如果我们是在springboot的每个服务下面都配置了
1. 不影响程序和不给程序更多的带宽消耗,就没有在xml中直接配置日志同步给es
采用的是本地服务生成日志后,通过FileBeat去监听指定log文件有变化,就同步数据到es中。
这里就要对所有服务提供log日志模板:
参考:
log.info("业务标识 | 业务操作 | 主要记录日志内容 : ", 变化的参数)方式输出。
log.error("业务标识 | 业务操作 | 主要错误日志内容 : ", 变化的参数)方式输出。
搭建 elasticsearch / filebeat / logstash/ kibana服务
先安装docker 和docker-compose
version: "2.2"
services:
es:
image: elasticsearch:7.8.0
container_name: elasticsearch
ports:
- "9200:9200"
- "9300:9300"
environment:
discovery.type: single-node
##es的密码
ELASTIC_PASSWORD: changeme
ES_JAVA_OPTS: "-Xmx512m -Xms256m"
volumes:
- /mydata/elasticsearch/:/usr/share/elasticsearch/data
- /opt/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /opt/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
ls:
image: logstash:7.8.0
container_name: logstash
ports:
- "5000:5000/tcp"
- "5000:5000/udp"
- "9600:9600"
environment:
discovery.type: single-node
ES_JAVA_OPTS: "-Xmx512m -Xms256m"
volumes:
- /opt/elk/logstach/pipeline:/usr/share/logstash/pipeline
- /opt/elk/logstach/logstash.yml:/usr/share/logstash/config/logstash.yml
- /opt/elk/logstach/jars:/usr/share/logstash/logstash-core/lib/jars/
depends_on:
- es
kb:
image: kibana:7.8.0
container_name: kibana
ports:
- "5601:5601"
volumes:
- /opt/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml
depends_on:
- es
在运行docker-compose.yml
然后就是elasticsearch的配置 elasticsearch.yml
## Default Elasticsearch configuration from Elasticsearch base image.
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.license.self_generated.type: trial
xpack.security.enabled: true
xpack.monitoring.collection.enabled: true
logstash.yml 文件配置
## Default Logstash configuration from Logstash base image.
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://ip:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: 账号
xpack.monitoring.elasticsearch.password: 密码
filebeat.yml 文件配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /home/log-info.log # 文件位置
setup.ilm.enabled: false
setup.template.settings:
index.number_of_shards: 1
output.elasticsearch:
hosts: 'ip:9200'
username: "账号"
password: "密码"
indices:
- index: 'springboot-%+yyyy.MM.dd' # 对应的索引
kibana.yml文件
##Default kibana configuration from Kibana base image.
server.name: kibana
server.host: 0.0.0.0
i18n.locale: "zh-CN"
server.basePath: "/kibana"
elasticsearch.hosts: [ "http://ip:9200" ]
xpack.security.enabled: true
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: 账号
elasticsearch.password: 密码
登入kibana ,可以查看索引数据,查看日志,功能比较强大,需要点时间研究。
搭建好:
我要加一个服务到在线日志系统 流程
以A 服务为例子
原来看log-info TAIL -F LOG-INO.LOG
_index : a-log-error-* 查看所有a服务error日志
_index : a-* 查看所有a服务info日志
- 到filebeat目录下修改filebeat.yml 参照已经完成的
在配置完filebeat.yml都要重新执行filebeat容器
docker run -d --name=filebeat --restart=always
-v对应文件映射
elastic/filebeat:7.8.0
最终实现现在看,根据时间查看
后面可以配置告警功能,优化日志展示格式。
以上是关于日志服务搭建-ES-FileBeat-Kibana的主要内容,如果未能解决你的问题,请参考以下文章