注:本文均采用腾讯云相关产品测试。
相关名词解释:
云服务器CVM:腾讯云提供的可扩展的计算服务,即云服务器。
Logstash:Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。
消息队列Ckafka:基于开源 Apache Kafka 消息队列引擎,提供高吞吐性能、高可扩展性的消息队列服务。
无服务器云函数SCF:腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。 您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。
COS对象存储:腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。腾讯云 COS 使所有用户都能使用具备高扩展性、低成本、可靠和安全的数据存储服务。
私有网络VPC:一块在腾讯云上自定义的逻辑隔离网络空间,与在数据中心运行的传统网络相似,托管在腾讯云私有网络内的是在腾讯云上的服务资源,包括 云服务器、负载均衡、云数据库 等。
1.开始前准备:
一台腾讯云服务器、一个腾讯云Ckafka实例以及一个腾讯云COS存储桶(三者需要在同一地域下,且前两者需要在同一私有网络VPC下)。
2.安装logstash以及kafka客户端:
logstash下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.5.0.tar.gz(腾讯云官网有描述兼容关系,笔者目前使用7.5版本暂未遇到问题)
kafka下载地址:http://kafka.apache.org/downloads(腾讯云Ckafka目前兼容 Kafka 0.9 0.10版本,推荐0.10.2版本的安装包)
下载相关压缩包后解压
3.Ckafka实例配置及测试
创建实例基本信息如下:
新建topic,如下:
kafka客户端测试生产:./kafka-console-producer.sh --broker-list 172.27.0.42:9092 --topic logstash_ckafka_cos
kafka客户端测试消费:./kafka-console-consumer.sh --bootstrap-server 172.27.0.42:9092 --from-beginning --topic logstash_ckafka_cos
4.logstash客户端配置与测试
在logstash安装目录/config/新建配置文件,配置如下:
input {
stdin{}
}
output {
kafka {
bootstrap_servers => "172.27.0.42:9092"
topic_id => "logstash_ckafka_cos"
}
}
使用上述配置文件进行生产测试:
在logstash安装目录下bin目录下执行:./logstash -f ../config/output.conf
kafka客户端进行消费
kafka安装目录下bin目录下执行:./kafka-console-consumer.sh --bootstrap-server 172.27.0.42:9092 --from-beginning --topic logstash_ckafka_cos
5.无服务器云函数配置
新建模板函数(Ckafka消息投递到COS):https://console.cloud.tencent.com/scf/list?rid=16&ns=default
新建API密钥:https://console.cloud.tencent.com/cam/capi
修改函数内配置项:
修改完成后保存(注:appid可在个人信息中查看,api密钥为上一步新建,地域选择对应地域即可,存储桶为准备步骤中新建)
添加触发方式:
添加时选择对应Ckafka实例下的对应topic即可(Ckafka触发可能需要提交工单申请白名单)
6.测试
执行命令:./logstash -f ../config/output.conf后,等待logstash启动,启动后输入相关数据
参考文档:
1.Ckafka快速入门:https://cloud.tencent.com/document/product/597/30932
2.Logstash使用简介:https://blog.csdn.net/tanga842428/article/details/77045028
3.Logstash 接入 CKafka:https://cloud.tencent.com/document/product/597/11487
4.使用SCF自定义Ckafka投递COS:https://cloud.tencent.com/document/product/583/30722