非生产环境,经常需要快速搭建一套ELK,选用docker版本最方便,记录以供以后参考
- 安装Docker(步骤省略)
- 下载elk/filebeat镜像
# 默认获取最新版本
docker pull sebp/elk
docker pull prima/filebeat
- 安装配置elk
# 创建存放elk配置以及es数据的目录
mkdir -pv /opt/elk/es_data
# /opt/elk/beats-input.conf 配置内容如下
input {
beats {
host => "0.0.0.0"
port => 5044
}
}
# 启动 elk,配置挂载出来,es数据挂载出来,端口号适当修改避免冲突
docker run -p 19200:9200 -p 15044:5044 -p 15601:5601 \
-v /opt/elk/beats-input.conf:/etc/logstash/conf.d/02-beats-input.conf \
-v /opt/elk/es_data:/var/lib/elasticsearch \
-it -d --name elk sebp/elk
- 在应用服务器安装配置filebeat来采集日志
# 创建filebeat配置目录
mkdir -pv /opt/filebeat/
# 配置/opt/filebeat/filebeat.yml内容如下
filebeat.prospectors:
# 指定文件的输入类型log(默认)或者stdin
- input_type: log
# 指定要监控的日志,可以指定具体得文件或者目录
paths:
- /slogs/*.51ima.lo/*.log
fields:
ip: 10.247.121.7
enabled: true
document_type: "app"
tail_files: true
# 匹配多行放置于一个message
multiline.pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}"
multiline.negate: true
multiline.match: after
# 如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s
scan_frequency: 10s
output.logstash:
hosts: ['elk.51ima.lo:15044']
enabled: true
index: filebeat
compression: gzip
processors:
- drop_fields:
fields: ["beat.hostname", "beat.name", "beat.version"]
# 启动filebeat,配置挂载出来,采集日志slogs挂载为应用日志
docker run -d --name filebeat \
--add-host elk.51ima.lo:10.247.121.6 \
-v /opt/filebeat/filebeat.yml:/filebeat.yml \
-v /home/finance/Logs:/slogs \
prima/filebeat:latest
- 登陆kibana,配置index,展示日志
# kibana地址
http://10.247.121.6:15601
# 配置index
Management -> stack management -> index patterns -> create index pattern -> input "filebeat-*" -> next -> save
# 查看日志
discovery页面