ELK日志系统Docker搭建与入门
ELK日志系统搭建与入门
- 简介
- 搭建环境
- 安装
- ElasticSearch安装
- Kibana安装
- Logstash安装
- FileBeat安装
- 测试
简介
ELK指的是三个组件Elasticsearch(数据存储全文检索)+Logstash(日志接收过滤输出)+Kibana(可视化)。本篇只介绍搭建过程,详细配置入门在下一篇博客,原理嘛…有时间再探索。
搭建环境
- ELK+Filebeats统一7.3.0版本
- CentOS7
- Windows7
- Docker19.03.1
安装
docker的安装可以参考:https://www.runoob.com/docker/docker-tutorial.html
ElasticSearch安装
docker pull elasticSearch:7.3.0
- 镜像中已经有了默认的配置文件
(/usr/share/elasticsearch/config/elasticsearch.yml)
,只指定了允许远程访问,如果有需要自定义配置文件需要进行映射。 - 存储数据的目录
(/usr/share/elasticsearch/data)
通常会映射到本地磁盘上,防止容器崩溃后的数据丢失。 - 需要绑定9200和9300端口进行使用
综上所述给出启动镜像的启动命令为:
docker run -itd —name elasticsearch -p 9200:9200 -p 9300:9300 -e “discovery.type=single-node” -v /usr/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/elasticsearch/data:/usr/share/elasticsearch/data elasticsearch:7.3.0
启动成功后在浏览器中输入地址:http://192/168/16.12:9200有json格式数据返回既为成功
不同机器安装时可能会出现问题,自行百度或者参考官网:https://www.elastic.co/guide/en/elasticsearch/reference/6.4/docker.html
Kibana安装
docker pull kibana:7.3.0
kibana中默认配置:
官网给出的命令中需要link elasticsearch的容器,但是docker新版本中不建议使用–link 指令,所以我们自定义配置文件重新指定地址。server.name: kibana
server.host: “0”
elasticsearch.hosts: [ “http://172.17.0.2:9200“ ]需要映射5601端口,当然可以在配置文件改。
启动命令:
docker run -itd —name kibana -p 5601:5601 -v /usr/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.3.0
启动完成后在浏览器输入:http://192.168.16.12:5601进入页面没有报错即为成功
参考官网:https://www.elastic.co/guide/en/kibana/current/docker.html
Logstash安装
Logstash比较小巧我就直接在CentOS上直接解压使用了。
- 去官网下载7.3.0版本的压缩包.tar.gz结尾的https://www.elastic.co/cn/downloads/logstash
- tar -zxvf filename 解压到指定目录
- 本次使用的输入源是filebeat,输出到elasticsearch所以暂时不需要安装插件
编写Logstash配置文件
input {
filebeat插件
beats {
port => 5044
# 这个很重要不配置的话filebeat会出现连接被关闭的错
client_inactivity_timeout => 36000
}
}过滤器过滤日志
filter{
#tag 是在filebeat中配置的
if "login" in [tags]{
grok{
match =>{
"message" => "^\[%{DATA:LOGINTIME}\] %{DATA:PROTOCOL} %{DATA:STATUS}\]$"
}
add_field => {"status" => "%{STATUS}"}
}
}
}
输出到elasticsearch
output {
if "login" in [tags] {
elasticsearch {
hosts => ["http://192.168.16.12:9200"]
# 索引名很重要,等下用来搜索日志
index => "login"
}
}
if "excep" in [tags] {
elasticsearch {
hosts => ["http://192.168.16.12:9200"]
index => "excep"
}
}
}
配置暂时简单介绍,官网的文档写的很详细:https://www.elastic.co/guide/en/logstash/current/configuration.html
在后台启动它。
nohup ./bin/logstash -f ./conf/test.conf &
启动后查看启动日志 cat nohup.out
FileBeat安装
filebeat我是跑在windows上的,为了方便输出日志。
- 先在官网下载7.3.0版本的filebeat,注意这次要Windows版本的
更改配置文件,在安装目录下的filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
yml格式要注意缩进
- type: log
enabled: true
paths:- D:\home\logs\excep.*
tags: [“excep”, “ptv6-wf”]
- D:\home\logs\excep.*
============================= Filebeat modules ===============================
filebeat.config.modules:
Glob pattern for configuration loading
path: ${ path.config}/modules.d/*.yml
Set to true to enable config reloading
reload.enabled: false
Period on which files under path should be checked for changes
reload.period: 10s
——————————————- Logstash output ————————————————
output.logstash:
enabled: true
The Logstash hosts
hosts: [“192.168.16.14:5044”]
================================ Processors =====================================
Configure processors to enhance or manipulate events generated by the beat.
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- type: log
配置完毕后,使用cmd命令行去启动filebeat.exe,最后在安装目录下logs文件夹中有日志信息,查看是否报错。
测试
在上述的组件全部启动完毕后,我们模拟程序产生日志。然后在kibana中查看它。
- 首先需要添加索引,这个索引和Logstash中配置的out中的index相对应
- 创建完成后就可以开始查看日志了
还没有评论,来说两句吧...