整合kafka->telegraf->influxdb来记录日志

本文介绍了如何将日志数据从kafka通过telegraf收集并发送到influxdb进行存储。首先,日志数据进入kafka,然后telegraf配置为以json格式读取数据,重命名字段,并指定特定的tag。通过json_query提取消息中的data字段,最后使用telegraf配置文件启动数据采集流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.cnblogs.com/siodoon/p/11422608.html
https://jasper-zhang1.gitbooks.io/influxdb/Write_protocols/line_protocol.html#

采集
https://www.jianshu.com/p/469648907036

1.本地流程 切面日志进kafka

package com.sdyy.common.aop;

import com.sdyy.common.annotation.OperLog;
import com.sdyy.common.controller.BaseController;
import com.sdyy.common.entity.KafkaMessage;
import com.sdyy.common.entity.Log;
import com.sdyy.common.kafka.KafkaProducer;
import com.sdyy.common.retobj.BaseEntity;
import com.sdyy.common.utils.DateUtils;
import com.sdyy.core.auth.operator.entity.AuthOperator;
import lombok.extern.log4j.Log4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

/**
 *
 *    * @className: LogAspect
 *   * @description:日志切面
 *   * @param:
 *   * @return:
 *   * @throws:
 *   * @author: lizz
 *   * @date: 2020/03/15 18:37
 *
 */
@Log4j
@Component
### 配置和使用 InfluxDB 和 Telegraf 进行监控数据采集 #### 安装 InfluxDB 为了开始配置和使用 InfluxDB 与 Telegraf 的组合,首先需要安装 InfluxDB。可以通过官方仓库获取稳定版本的软件包[^3]。 对于基于 Red Hat 的系统,可以按照如下命令来添加仓库并安装: ```bash cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF sudo yum install influxdb ``` 启动并启用 InfluxDB 服务以便于开机自启: ```bash sudo systemctl start influxdb sudo systemctl enable influxdb ``` #### 安装 Telegraf 接着安装 Telegraf 来作为数据收集器。同样地,在同一仓库中也可以找到 Telegraf 的安装包[^2]。 执行以下命令完成安装: ```bash sudo yum install telegraf ``` 启动并设置 Telegraf 开机自动运行: ```bash sudo systemctl start telegraf sudo systemctl enable telegraf ``` #### 配置 Telegraf 插件 Telegraf 支持大量的输入插件用于从不同类型的源读取数据,并且有多个输出插件能够把数据写入不同的目的地。要将数据发送给 InfluxDB,则需编辑 `/etc/telegraf/telegraf.conf` 文件中的 `[outputs.influxdb]` 部分[^4]。 下面是一个简单的例子展示如何向本地 InfluxDB 实例发送 CPU 使用率的数据: ```toml [[inputs.cpu]] percpu = true totalcpu = false collect_cpu_time = false report_active = false [[outputs.influxdb]] urls = ["http://localhost:8086"] database = "mydb" skip_database_creation = true username = "admin" password = "password" ``` 保存更改后的文件后重启 Telegraf 让新的配置生效: ```bash sudo systemctl restart telegraf ``` 此时,Telegraf 将会定期抓取系统的 CPU 利用情况并将这些时间序列化之后存储到名为 `mydb` 的 InfluxDB 数据库里去。 #### Grafana 可视化 如果希望进一步利用所收集的时间序列数据分析业务性能指标的话,还可以考虑引入像 Grafana 这样的可视化工具。Grafana 提供了一个友好的 Web UI 接口让用户创建仪表盘查看历史趋势图等图表形式呈现出来的信息流变化状况。通过导入特定模板或手动构建面板的方式实现对来自 InfluxDB 存储区内的各项统计数据的有效展现[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值