1:ELKB日志监控管理
elk包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。
数据采集:beats
数据解析,清洗:Logstash
数据存储:Elasticsearch
数据可视化:Kibana
1.1:整体架构
2:beats数据采集
Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。
根据不同的采集有不同的采集工具:主要如下
我们根据自己的需要安装不同的beats
beats包含的常用组件如下:
packetbeat(用于服务器间监控网络流量,程序性能等)
filebeat(用于监听日志数据,可以替代logstash-input-file)
topbeat(用于搜集进程的信息、负载、内存、磁盘等数据)
Metricbeat 是一种轻量级的数据摄入器,您可以将其安装在服务器上,以定期从操作系统和服务器上运行的服务收集指标。 Metricbeat会收集它收集的度量标准和统计信息,并将其运送到您指定的输出,例如 Elasticsearch 或 Logstash。
winlogbeat(用于搜集windows事件日志)
具体安装使用:beats轻量化采集工具
3:logstash
1:安装启动logstash
它提供了大量的插件,可帮助您解析,过滤,转换和缓冲来自各种来源的数据
1:安装
下载:curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-6.8.13.rpm
或者自行去官网下载
解压:sudo rpm -i logstash-6.8.13.rpm
2:配置
Logstash提供了用于从各种输入中读取的输入插件。在本指南中,您将创建一个Logstash管道配置,该配置侦听Beats输入并将接收到的事件发送到Elasticsearch输出。
vim demo-metrics-pipeline.conf
该文件配置我们的数据监听哪里,怎么处理,发送到哪里?
input {
beats {
port => 5044
}
}
# The filter part of this file is commented out to indicate that it :filter部分是可选的
# is optional.
# filter {
#
# }
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
3:启动logstash
-f就是我们创建的配置文件
./bin/logstash -f demo-metrics-pipeline.conf
4:logstash单元测试
logstash可不依赖beats使用。elk进行单独测试
前提es,kibana必须按照正常使用
1:创建测试配置文件:vim demo-metrics-pipeline.conf
input {
stdin{} #stdin是监控控制台输入,也就是我们启动后的窗口 可以作为控制台输入数据发送到output
}
# The filter part of this file is commented out to indicate that it :filter部分是可选的
# is optional.
# filter {
#
# }
output { #输出我们是写了两个地方,为了验证logstash的安装正确
# elasticsearch {
# hosts => "localhost:9200"
# manage_template => false
# index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
# }
stdout{ #输出1:控制台,也就是我们的输入会在控制台再输出一次
codec => rubydebug {}
}
elasticsearch { #输出2:正常的话输出到es,存到索引
hosts => "es-ip:9200"
manage_template => false
index => "logsatsh-%{+YYYY.MM.dd}"
}
}
2:启动logstash
./bin/logstash -f demo-metrics-pipeline.conf
此时就是一个交互窗口。我们可以发送数据hh,控制台会输出我们的索引结果
./bin/logstash -f demo-metrics-pipeline.conf
hh
[INFO ] 2021-01-07 06:27:31.495 [Ruby-0-Thread-1: /usr/share/logstash/lib/bootstrap/environment.rb:6] agent - Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
{
"@timestamp" => 2021-01-06T22:27:31.482Z,
"@version" => "1",
"host" => "hdp01",
"message" => "hh"
}
[INFO ] 2021-01-07 06:27:32.176 [Api Webserver] agent - Successfully started Logstash API endpoint {:port=>9600}
3:此时去kibana可以查看:GET logsatsh-2021.01.06/_search
写入成功
2:grok过滤器
grok过滤器文档: https://www.elastic.co/guide/en/logstash/6.8/plugins-filters-grok.html