Elasticsearch:将Logstash日志存到elasticsearch中

配置Logstash

TypeScript 复制代码
# cat syslog02.conf
#filename:syslog02.conf #注意这个是要用#号注释掉
input{
    file{
        path => ["/var/log/*.log"]
    }
}
output{
    elasticsearch {
        #建议将搜索引擎不要和应用部署到一台服务器,我们介绍就同台服务器
        hosts => ["192.168.1.1:9200"]  
    }
}

查看配置文件是否有问题:

TypeScript 复制代码
# ../bin/logstash -f syslog02.conf -t
Sending Logstash's logs to /usr/local/logstash/logs which is now configured via log4j2.properties
[2016-12-01T09:54:46,512][FATAL][logstash.runner ] The given configuration is invalid. Reason: Expected one of #, input, filter, output at line 1, column 1 (byte 1) after

在output -> elasticsearch下增加一个index配置:

TypeScript 复制代码
cat syslog02.conf
#filename:syslog02.conf
input{
    file{
        path => ["/var/log/*.log"]
        format => json
    }
}
output{
    elasticsearch {
        hosts => ["192.168.1.1:9200"]
        index => "syslog02_log%{jsonsrt}"
    }
}

再次简测配置文件:

TypeScript 复制代码
# ../bin/logstash -f syslog02.conf -t
Sending Logstash's logs to /usr/local/logstash/logs which is now configured via log4j2.propertiesConfiguration OK
[2016-12-01T11:40:56,791][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

启动并在后台执行:

TypeScript 复制代码
# ../bin/logstash -f syslog02.conf &

hosts:"127.0.0.1:9200","127.0.0.2:9200"

action:指定es的行为,index, delete, create, update

默认为index:index a document(该document就是一个来自于logstash的event)

delete:通过id删除一个document(需要指定document_id)

create:index a document(如果该document已经在index中存在,则失败)

update:通过id更新一个document

cacert:验证server合法性的.cer或.pem文件路径

codec:

document_id

document_type

index:默认值:logstash-%{+YYYY.MM.dd}

便于删除老数据

在语法解析的时候,看到+号开头的,会自动认为后面是时间格式,尝试用时间格式来解析后续字符串。所以,之前处理过程中不要给自定义的字段起一个+号开头的名字

索引名中不能有大写字母

有时也会自定义为:logstash-%{servicename}-%{+YYYY.MM.dd}

user:进入es cluster的用户

password:进入es cluster的密码

timeout:Set the timeout for network operations and requests sent Elasticsearch. If a timeout occurs, the request will be retried.

flush_size:默认500,logstash攒够500条数据再一次性向es发送

idle_flush_time:默认1s,如果1s内没攒够500条还是会一次性将攒的数据发出去给es

相关推荐
.冰块.5 小时前
ELK 日志分析系统实验:部署 Elasticsearch 双节点集群实现 Apache 日志采集与 Kibana 可视化
elk·elasticsearch·apache·日志
顧棟11 小时前
Elasticsearch Scroll :分页进度到底记在哪?
大数据·elasticsearch·搜索引擎
一枕槐安48717 小时前
线上检索延迟 2 秒,我把向量库从 ES 换成了 Chroma
大数据·elasticsearch·搜索引擎
Rock Chin69719 小时前
把 Claude Code 和 Codex 接进微信、飞书、钉钉:LangBot Runner 插件实战
elasticsearch·钉钉·飞书
Elasticsearch19 小时前
Jina AI:Elasticsearch 集成
elasticsearch
吃饱了得干活1 天前
用 PageHelper 同步数据到 ES:能跑,但这几个坑得先知道
后端·elasticsearch
吃饱了得干活1 天前
从 LIKE 查询到毫秒级搜索:Elasticsearch 核心原理与 Java 实战
后端·elasticsearch
Flynt1 天前
我把真实的 ES 查询怼到 7059 星的 Rust 搜索引擎上:1366/1369 的兼容承诺,裂了 3 个缝
elasticsearch·搜索引擎·rust
AscendKing2 天前
Docker Compose 一键部署 SkyWalking 10.2.0 + Elasticsearch8.11,分布式链路追踪完整实战
elasticsearch·docker·skywalking·链路追踪·微服务监控