日志服务搭建-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日志

  1. 到filebeat目录下修改filebeat.yml 参照已经完成的

 

 在配置完filebeat.yml都要重新执行filebeat容器

docker run -d --name=filebeat  --restart=always
-v对应文件映射
elastic/filebeat:7.8.0

最终实现现在看,根据时间查看

后面可以配置告警功能,优化日志展示格式。

以上是关于日志服务搭建-ES-FileBeat-Kibana的主要内容,如果未能解决你的问题,请参考以下文章

搭建syslog日志服务器

syslog日志服务器搭建

CentOS 搭建 ElasticSearch 日志集群服务器

搭建日志服务器

搭建syslog日志服务器

搭建node服务:日志处理