本示例在windows环境下演示,绝大部分命令和linux通用。
简介
- telegraf:指标收集工具,可收集中间件暴露的性能指标,本文中我们以收集redis指标为例。
- kafka:telegraf收集上来的指标上报到kafka,用于提高系统吞吐量。
- vector:高性能传输管道,支持多种源和目标,本示例中用于消费kafka消息,转换后,写入到ClickHouse中。
- clickhouse: 列式存储数据库,适用于OLAP分析型场景。
- superset:轻量级BI工具,用于快速接入各种数据源实现数据展现。
启动redis用于演示
1 | PS D:\dev_app\Redis-x64-3.0.504> pwd |
telegraf
telegraf采集redis指标,https://github.com/influxdata/telegraf/tree/master/plugins/inputs/redis
可以看到主要是通过执行redis的info命令实现的
配置
1 | [global_tags] |
测试
将采集的redis指标打印到控制台
1 | PS D:\dev_app\collectors\telegraf-1.22.0> .\telegraf.exe --config .\telegraf.properties --test --input-filter redis |
注意指标的格式:
redis_cmdstat,command=info,host=myhost,port=6379,replication_role=master,server=localhost calls=3i,usec=248i,usec_per_call=82.67 1649239129000000000
分为了四部分,对等的json格式为:
1 | { |
kafka
启动
启动kafka内置的zookeeper
1 | PS D:\dev_app\kafka_2.13-3.1.0> ls |
启动kafka
1 | PS D:\dev_app\kafka_2.13-3.1.0> ./bin/windows/kafka-server-start.bat ./config/server.properties |
创建一个topic
1 | ## 创建一个topic |
1 | ## 列出所有topic |
1 | ## 查看topic详情 |
telegraf配置
1 | [[outputs.kafka]] |
vector
在本示例中,我们使用vector消费kafka中的数据,输出给clickhouse。
快速上手vector
先通过几个小示例感受下vector:
1 | PS D:\dev_app\collectors\vector-0.20.0> pwd |
config目录下增加一个配置文件myconfig.toml内容如下:
表示从标准输入设备接收,输出到控制台
1 | [sources.in] |
执行测试:
1 | PS D:\dev_app\collectors\vector-0.20.0> echo 'Hello world!' | ./bin/vector.exe --config ./config/myconfig.toml |
快速入门可参考:https://vector.dev/docs/setup/quickstart/
vector配置
clickhouse中要事先创建好相关表,见下节。
1 | ### 消费kafka ### |
clickhouse
创建表语句
t_redis_keyspace_stat
1 | CREATE TABLE t_redis_keyspace_stat |
t_redis_cmd_stat
1 | CREATE TABLE t_redis_cmd_stat |
t_redis_stat
1 | CREATE TABLE t_redis_stat |