【发布时间】:2021-04-08 13:37:32
【问题描述】:
我正在尝试使用 filebeat 将数据从 kafka 放入 clickhouse,我的配置如下所示
filebeat 配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/access.log
output.kafka:
# specifying filebeat to take timestamp and message fields, other wise it
# take the lines as json and publish to kafka
codec.format:
string: '%{[@timestamp]} %{[message]}'
# kafka
# publishing to 'log' topic
hosts: ["kafka:9092"]
topic: 'myfirst'
partition.round_robin:
reachable_only: false
required_acks: 1
compression: gzip
max_message_bytes: 1000000
在 Kafka 中,我正在获取我的登录主题,一切都很好,数据插入到这样的 kafka 主题的一部分
2021-01-01T21:51:25.225Z {"remote_addr": "192.168.222.1","remote_user": "-","time_local": "01/Jan/2021:21:51:17 +0000","request": "GET / HTTP/1.1","status": "304","body_bytes_sent": "0","http_referer": "-","http_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"}
我创建了 clickhouse 表和 MATERIALIZED
CREATE TABLE accesslog (
...
) ENGINE = Kafka SETTINGS kafka_broker_list = 'kafka:9092',
但是在没有数据的情况下,clickhouse 中的查询输出是这样的!为什么?
┌─remote_addr─┬─remote_user─┬─time_local─┬───────date─┬─request─┬─status─┬─body_bytes_sent─┬─http_referer─┬─http_user_agent─┐
│ │ │ │ 0000-00-00 │ │ 0 │ 0 │ │ │
│ │ │ │ 0000-00-00 │ │ 0 │ 0 │ │ │
│ │ │ │ 0000-00-00 │ │ 0 │ 0 │ │ │
└─────────────┴─────────────┴────────────┴────────────┴─────────┴────────┴─────────────────┴──────────────┴─────────────────┘
【问题讨论】:
-
检查日志/var/log/clickhouse-server/clickhouse-server.log。
-
你确定 accesslog 即将到来的任何事件吗?要检查它:1) 通过 "detach table log_consumer" 停止 MV,2) 向 Topic 添加一些事件,3) 运行这个查询来检查它:"从访问日志中选择 *".
-
谢谢你的回答,是的,即使在 kafka 中,accesslog 也是由事件更新的,我做了这 3 步,但 select * from accesslog 有每个事件的记录,也没有我说的数据。
-
和 clickhouse 服务器日志:2021.01.01 23:20:03.466759 [51] {}
StorageKafka(访问日志):已分配给:[myfirst[0:#]] 2021.01.01 23 :20:03.466942 [ 47 ] {} StorageKafka (accesslog): 已分配给: [ ] 2021.01.01 23:20:03.980754 [ 48 ] {} StorageKafka (accesslog): 轮询批次 1 条消息。偏移位置:[myfirst[0:1]] 2021.01.01 23:20:03.981755 [48] {} IRowInputFormat:在读取输入流时跳过 1 行错误 2021.01.01 23:20:04.489136 [48] {} StorageKafka(访问日志):停滞 -
您使用哪个版本的 ClickHouse?我无法在版本 20.12.3.3 上重现此错误。或者更好地提供您的 docker-compose.yml.