ELK的简单搭建

169 阅读1分钟

ELK部署笔记(1)Docker版

由于电脑配置有限,目前使用的filebeat + elasticsearch + kibana的搭配作为日志搜集系统

1. docker下载镜像
  1. 下载elasticsearch
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.3
  1. 下载kibana
sudo docker pull docker.elastic.co/kibana/kibana:7.13.3
2. docker创建容器
# 1. 创建docker network
sudo docker network create elk

# 2. 启动docker elasticsearch容器
sudo docker run -itd --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms256m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:7.13.3

# 3. 启动docker kibana容器
sudo docker run -itd --name kibana --net elk -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" docker.elastic.co/kibana/kibana:7.13.3
3. 本地启动filebeat
  1. 下载解决filebeat到本地
# 下载fileBeat
# 下载地址:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.3-windows-x86_64.zip
# 解压
  1. 配置filebeat.yml
filebeat.inputs:
  - type: log
    enable: true # 须配置为true,否则不会工作
    paths:  # 采集日志的路径,可配置多个
      - E:\logs\*.log
    # 日志多行合并采集,根据日志格式设置,可忽略
    # 匹配的正则 不是以YYYY-MM-dd HH:mm:ss 格式开头的将合并到上一行,可自定义
    multiline.pattern: '^\d{4}\-\d{2}\-\d{2}\s\d{2}:\d{2}:\d{2}'
    multiline.negate: true #多行匹配模式后配置的模式是否取反,默认false
    multiline.match: after #定义多行内容被添加到模式匹配行之后还是之前,默认无,可以被设置为after或者before
    # 为每个项目标识,或者分组,可区分不同格式的日志
    tags: ["elk-logs"]


output:
  # 输出到es中,es更换为自己的ip
  elasticsearch:
    hosts: ["localhost:9200"]
  1. 启动本地filebeat
# 这是windows的写法,unix的可以找度娘
.\filebeat.exe -e -c .\filebeat.yml