ELK部署笔记(1)Docker版
由于电脑配置有限,目前使用的filebeat + elasticsearch + kibana的搭配作为日志搜集系统
1. docker下载镜像
- 下载elasticsearch
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.13.3
- 下载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
- 下载解决filebeat到本地
# 下载fileBeat
# 下载地址:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.13.3-windows-x86_64.zip
# 解压
- 配置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"]
- 启动本地filebeat
# 这是windows的写法,unix的可以找度娘
.\filebeat.exe -e -c .\filebeat.yml