ELK一般是由 Elasticsearch、Logstash和Kibana 三部分组件组成。
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
Logstash 是一个开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用。
Filebeat 是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到 Logstash 或 Elasticsearch。
Winlogbeat将Windows事件日志发送到Elasticsearch或Logstash。可以将其安装为Windows服务。Winlogbeat是Elastic Beat。它基于libbeat框架
Winlogbeat使用Windows API从一个或多个事件日志中读取,根据用户配置的条件过滤事件,然后将事件数据发送到配置的输出(Elasticsearch或Logstash)。Winlogbeat监视事件日志,以便及时发送新的事件数据。每个事件日志的读取位置都保留在磁盘上,以允许Winlogbeat在重新启动后恢复。
Winlogbeat可以从系统上运行的任何事件日志中捕获事件数据。例如,您可以捕获以下事件:
官网镜像地址:https://hub.docker.com/_/elasticsearch
我使用的版本是 7.7.0,下载镜像 查看镜像:
# 下载镜像 查看镜像
docker pull elasticsearch:7.7.0
docker images
结果如下:
运行elasticsearch
# 创建自定义的网络(用于连接到连接到同一网络的其他服务
docker network create onenetwork
# 运行 elasticsearch
docker run -d --name elasticsearch --net onenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.7.0
# 查看容器状态
docker ps
# 检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
官网镜像地址:https://hub.docker.com/_/kibana
我使用了版本 7.7.0
下载镜像 查看镜像
# 下载镜像 查看镜像
docker pull kibana:7.7.0
docker images
Kibana使用默认配置,并连接到正在运行的Elasticsearch实例http://localhost:9200
# 运行 Kibana
docker run -d --name kibana7.7 --link elasticsearch7.7:elasticsearch --net onenetwork -p 5601:5601 kibana:7.7.0
# 查看容器启动状态
docker ps
结果如下:
访问 http://127.0.0.1:5601。结果如下:
官网镜像地址:
https://www.elastic.co/cn/downloads/beats
可以下载winlogbeat-7.7.0-windows-x86_64.msi的安装包,运行安装包。
调整配置:
win10_64位配置文件的路径,C:\ProgramData\Elastic\Beats\winlogbeat\winlogbeat.yml ,没有该文件就copy一个模板的配置文件过来。
在该event_logs部分中,指定要监视的事件日志。默认情况下,Winlogbeat设置为监视应用程序,安全性和系统日志
winlogbeat.event_logs:
- name: Application
- name: Security
- name: System
日志输出默认如下,可以调整为elasticsearch服务器的ip:
output.elasticsearch:
hosts:
- localhost:9200
测试配置
.\winlogbeat.exe test config -c C:\ProgramData\Elastic\Beats\winlogbeat\winlogbeat.yml
配置Kibana仪表板
.\winlogbeat.exe setup --dashboards -c C:\ProgramData\Elastic\Beats\winlogbeat\winlogbeat.yml
Start-Service winlogbeat
可以在services.msc里看到启动的服务
在C:\ProgramData\Elastic\Beats\winlogbeat\logs下可以看到转发的情况。
打开kibanna,点击discover,就可以看见日志了。(如果看不见会提示Create index pattern,选择winlogbeat-*创建一个就好了)