plain => { charset => "BINARY" }
依然出现此问题。 avro 数据原文( 16 进制)
00000000: 00 80 40 00 cc e1 85 98 0e 00 3a 32 30 32 34 2d ..@.......:2024- 00000010: 30 34 2d 31 38 54 30 36 3a 33 32 3a 30 34 2e 30 04-18T06:32:04.0 00000020: 30 30 2b 30 38 3a 30 30 00+08:00
logstash 获取到的内容
00000000: 00 ef bf bd 40 00 ef bf bd ef bf bd ef bf bd ef ....@........... 00000010: bf bd 0e 00 3a 32 30 32 34 2d 30 34 2d 31 38 54 ....:2024-04-18T 00000020: 30 36 3a 33 32 3a 30 34 2e 30 30 30 2b 30 38 3a 06:32:04.000+08: 00000030: 30 30 0a 00.
logstash 是通过 docker 起的 8.13.0 ,以下是容器相关配置
docker-compose.yml
logstash: image: logstash:8.13.0 volumes: - /root/kafka-2-es/logstash.conf:/usr/share/logstash/pipeline/logstash.conf environment: - "XPACK_MONITORING_ENABLED=false" - "KAFKA_GROUP_ID"
logstash.conf
input { kafka { bootstrap_servers => "kafka:9092" topics => ["urllog-test-01"] codec => plain { charset => "BINARY" } group_id => "${KAFKA_GROUP_ID}" auto_offset_reset => "earliest" } redis { host => "192.168.4.101" port => 6379 password => "Fle7YuG22qIh7ZNPkceopo3oZb1UFZrX" data_type => "list" key => "urllog-test-01" codec => plain { charset => "BINARY" } } } output { stdout { codec => rubydebug } elasticsearch { hosts => ["https://192.168.1.4:9200"] index => "urllog-test-01" user => "elastic" password => "123456" ssl => true ssl_certificate_verification => false manage_template => true } }
已经确认的是:
ef bf bd
的情况有没有大佬知道是这么回事,给指条路呗?万分感谢。
]]>因为项目更新,打算弃用原来的日志流架构,换用 logstash 处理日志。为了保持后续流程不动,所以需要 logstash 的输出要保持于之前架构的格式一致。
问题:
日志流需要处理的是 nginx 的日志,日志体中已经有一个时间字段(在这里记作 ST1 吧,原始格式是"23/Jul/2021:14:25:29 +0800"),然后输出的内容中会涉及到时间的字段,格式以及来源分别如下:
字段 1:"2021/7/23 14:25",记录 logstash 处理的时间
字段 2:"20210723",根据 nginx 原始日志时间 ST1 转换出的日期
字段 3:"2021/7/23 14:25",根据 nginx 原始日志时间 ST1 转换出的时间
字段 4:"23/Jul/2021:14:25:29 +0800",原始的 nginx 原始日志时间 ST1
我现在能正确填充字段 4,其他 3 个字段(特别是字段 2 )没有思路,请教有大佬能指点一二么?
]]>Elasticsearch + Logstash + Kibana ( ELK )是一套开源的日志管理方案,分析网站的访问情况时我们一般会借助 Google/百度 /CNZZ 等方式嵌入 JS 做数据统计,但是当网站访问异常或者被攻击时我们需要在后台分析如 Nginx 的具体日志,而 Nginx 日志分割 /GoAccess/Awstats 都是相对简单的单节点解决方案,针对分布式集群或者数据量级较大时会显得心有余而力不足,而 ELK 的出现可以使我们从容面对新的挑战。
ELK (Elasticsearch + Logstash + Kibana )
2015 年 08 月 31 日 - 初稿
阅读原文 - http://wsgzao.github.io/post/elk/
扩展阅读
CentOS 7.x 安装 ELK (Elasticsearch+Logstash+Kibana ) - http://www.chenshake.com/centos-install-7-x-elk-elasticsearchlogstashkibana/
Centos 6.5 安装 nginx 日志分析系统 elasticsearch + logstash + redis + kibana - http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=17291169&id=4898582
logstash-forwarder and grok examples - https://www.ulyaoth.net/threads/logstash-forwarder-and-grok-examples.32413/
三斗室 - http://chenlinux.com/
elastic - https://www.elastic.co/guide
LTMP 索引 - http://wsgzao.github.io/index/#LTMP
if [type] == "targeted_coupon" { elasticsearch { host => ["127.0.0.1:9300"] cluster => "cluster_spark" protocol => "node" index => "coupon_%{+YYYYMMdd}" max_retries => 10 } #stdout { codec => rubydebug } } else { elasticsearch { host => ["127.0.0.1:9300"] cluster => "cluster_spark" protocol => "node" index => "gift_%{+YYYYMMdd}" document_type => "%{type}" max_retries => 10 } #stdout { codec => rubydebug } }