ELK Tips 主要介绍一些 ELK 使用过程中的小技巧,内容主要来源为 Elastic 中文社区。
一、Logstash
1、Filebeat :Non-zero metrics in the last 30s
- 问题表现:Filebeat 无法向 Elasticsearch 发送日志数据;
- 错误信息:
INFO [monitoring] 1og/log.go:124 Non-zero metrics in the last 30s
; - 社区反馈:在 input 和 output 下面添加属性 enabled:true。
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://localhost:9200"]
username: "filebeat_internal"
password: "YOUR_PASSWORD"
enabled: true
复制代码
input 和 output 下 enabled 属性默认值为 true,因此怀疑另有其因。
2、Logstash 按月生成索引
output {
if [type] == "typeA"{
elasticsearch {
hosts => "127.0.0.1:9200"
index => "log_%{+YYYY_MM}"
}
}
}
复制代码
按照日的原理类似:%{+YYYY.MM.dd}
3、Filebeat 通过配置删除特定字段
Filebeat 实现了类似 Logstash 中 filter 的功能,叫做处理器(processors),processors 种类不多,尽可能在保持 Filebeat 轻量化的基础上提供更多常用的功能。
下面列几种常用的 processors:
add_cloud_metadata
:添加云服务器的 meta 信息;add_locale
:添加本地时区;decode_json_fields
:解析并处理包含 Json 字符串的字段;drop_event
:丢弃符合条件的消息事件;drop_fields
:删除符合条件的字段;include_fields
:选择符合条件的字段;rename
:字段重命名;add_kubernetes_metadata
:添加 k8s 的 meta 信息;add_docker_metadata
:添加容器的 meta 信息;add_host_metadata
:添加操作系统的 meta 信息;dissect
:类似与 gork 的正则匹配字段的功能;dns
:配置 filebeat 独立的 dns 解析方式;add_process_metadata
:添加进程的元信息。
processors 的使用方式:
- type: <input_type>
processors:
- <processor_name>:
when:
<condition>
<parameters>
...
复制代码
4、LogStash 采集 FTP 日志文件
exec {
codec => plain { }
command => "curl ftp://server/logs.log"
interval => 3000}
}
复制代码
5、Logstash docker-compose 启动失败(Permission denied)
在 docker-compose 中使用 user 选项设置使用