欢迎访问我的博客,你的支持,是我最大的动力!

nginx日志使用clickhouse做计算分析

Linux 小马奔腾 56℃ 评论
目录:
[显示]

nginx日志使用json格式存储,日志通过filebeat采集到kafka,之后,一份通过elasticsearch消费,做查询;一份通过clickhouse消费,做聚合计算

nginx日志标准化 json格式

nginx配置文件

日志轮换

有时候,日志比较大,磁盘不够用,可以再添加定时任务,按需轮换日志

filebeat采集日志到kafka

filebeat配置如下

搭建clickhouse服务

clickhouse内建有kafka表引擎,可以消费kafka中消息,消费性能也非常高,在一台16c32g的云主机上,消费速率最高可以到220k/s,所以,这里仅使用单台就够用了,不介绍集群模式

挂载磁盘

准备数据目录
mkdir /data/clickhouse
chown -R clickhouse:clickhouse /data/clickhouse/

安装clickhouse

/etc/clickhouse-server/config.xml修改以下内容

建库建表

计算逻辑

clickhouse日志输出
/var/log/clickhouse-server

output_format_json_quote_denormals = 0 返回null,默认; 1 返回 inf,-nan,-inf

select area/period from account_orders format JSON;

时间参数
WHERE time > date_add(second, -65, now()) AND time < date_add(second, -5, now())

kafka消费延时监控

资料参考

ClickHouse 手记系列之二:关于 Kafka Engine 你需要知道的

kafka延时问题

ClickHouse 在实时场景的应用和优化

Also tried setting the kafka_max_block_size parameter to 512k as well at the stream_poll_timeout_ms =100, stream_flush_interval_ms = 800 settings and we were able to pull at about 60k rows per second. which is a big improvement it appears. so this might have been the issue. I'll update if we get more data.

users.xml
<stream_poll_timeout_ms>5000</stream_poll_timeout_ms>
<stream_flush_interval_ms>1500</stream_flush_interval_ms>
<max_streams_to_max_threads_ratio>4</max_streams_to_max_threads_ratio>

第三方库 kafka 数据导入
官方客户端
clickhouse_sinker

 

 

转载请注明:轻风博客 » nginx日志使用clickhouse做计算分析

喜欢 (3)or分享 (0)