ELK指的是三个组件Elasticsearch(数据存储全文检索)+Logstash(日志接收过滤输出)+Kibana(可视化)。本篇只介绍搭建过程,详细配置入门在下一篇博客,原理嘛…有时间再探索。
docker的安装可以参考:https://www.runoob.com/docker/docker-tutorial.html
docker pull elasticSearch:7.3.0
(/usr/share/elasticsearch/config/elasticsearch.yml)
,只指定了允许远程访问,如果有需要自定义配置文件需要进行映射。(/usr/share/elasticsearch/data)
通常会映射到本地磁盘上,防止容器崩溃后的数据丢失。综上所述给出启动镜像的启动命令为:
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
docker pull kibana:7.3.0
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.17.0.2:9200" ]
启动命令:
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比较小巧我就直接在CentOS上直接解压使用了。
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 &
filebeat我是跑在windows上的,为了方便输出日志。
filebeat.inputs:
- type: log
enabled: true
paths:
- D:\home\logs\login.log.*
#这里配置的tag和Logstash的相对应
tags: ["login", "ptv6-wf"]
#yml格式要注意缩进
- type: log
enabled: true
paths:
- D:\home\logs\\excep.*
tags: ["excep", "ptv6-wf"]
#============================= 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: ~
配置完毕后,使用cmd命令行去启动filebeat.exe,最后在安装目录下logs文件夹中有日志信息,查看是否报错。
在上述的组件全部启动完毕后,我们模拟程序产生日志。然后在kibana中查看它。