当前位置: 首页 > news >正文

华为云LTS日志上报至观测云最佳实践

华为云LTS简介

华为云云日志服务(Log Tank Service,简称 LTS),用于收集来自主机和云服务的日志数据,通过海量日志数据的分析与处理,可以将云服务和应用程序的可用性和性能最大化,为您提供实时、高效、安全的日志处理能力,帮助您快速高效地进行实时决策分析、设备运维管理、用户业务趋势分析等。

方案说明

目前有两种 LTS 上报至观测云的方案,分别为:

1、通过观测云 Func 平台的官方脚本 观测云集成(华为云-LTS 日志采集)将 LTS 日志通过 API 拉取的方式获取日志,上报至观测云平台。

2、可以通过华为云函数工作流 FunctionGraph,将 LTS 作为触发器,有日志产生时将会触发 FunctionGraph 函数,然后由函数主动推送的方式将日志上报至观测云平台。

在实际验证中,方案 1 在日志量大的时候,接口有非常大的延迟。同时华为云侧会在 API 读取有调用限制,所以很难在生产环境中使用方案 1 。方案 2 为主动触发的方式上报日志,经验证能够承受住较大量的日志上报,所以该方案可以作为最佳方案上报日志至观测云平台。

前置条件

  • 在华为云上创建 FunctionGraph 和 LTS 服务
  • 开通观测云账号
  • DataKit 机器一台

接入步骤

配置DataKit服务

安装 DataKit
# 需要把token 改成观测云空间的实际token值(可在观测云控制台-->集成-->Datakit 上面获取)
DK_DATAWAY="https://openway.guance.com?token=tkn_xxxxxx" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)" 
开启 logstreaming 采集器
cp /usr/local/datakit/conf.d/log/logstreaming.conf.sample /usr/local/datakit/conf.d/log/logstreaming.conf
重启 Datakit
# 在主机终端输入命令
datakit service -R
查看采集器是否开启
# 在主机终端输入命令
datakit monitor

创建 LTS 日志组并输出日志

我们可以通过很多种方式把日志输出至 LTS 服务,本文以 CDN 日志为例,配置 CDN 日志存储至 LTS ,配置完成之后我们可以查看在 LTS 日志组中是否有日志产生。

Guance forwarder functiongraph 函数

在华为云中创建 FunctionGraph 函数,在代码中修改对应的 datakit 的 IP 地址,也可以把datakit 的 IP 地址写入 FunctionGraph 函数的环境变量中。

函数 Github 地址

https://github.com/GuanceCloud/guance-serverless-functions

配置环境变量

同时需要在权限中设置函数配置委托,将 LTS 相关的权限授予 FunctionGraph 工作流

创建完成之后可以手动添加触发器,选择 LTS 日志组作为触发器

数据验证

设置完成之后,我们可以查看 FunctionGraph 是否有接收到 LTS 触发器发出的日志信息。在监控中查到有相应的指标和日志输出,说明日志触发成功。

同时可以登录观测云平台查看日志是否有上报成功。在日志的数据来源中,我们可以看到多出了一条 function_graph_forwarder⁠ 的数据来源(数据来源可以自行修改),这就是从 LTS 上报过来的日志数据。查看该来源可以看到相应的日志输出,说明日志上报成功。

相关文章:

  • EXEAL无法使用宏处理办法
  • chatgpt的ai导师风格设置
  • uniapp修改uni-ui组件样式(对微信小程序/H5有效,vue3)
  • iOS 提取图片的主题色,并支持灵活提取
  • WingetUI:可视化Windows常用的命令行包管理工具
  • php中打印函数
  • 文件的管理
  • 资质申请中常见的错误有哪些?
  • Python酷库之旅-第三方库Pandas(130)
  • net core mvc 数据绑定 《1》
  • 基于php摄影门户网站
  • Springboot+PostgreSQL+MybatisPlus存储JSON或List、数组(Array)数据
  • 机器学习(2):机器学习的相关术语
  • .Net 6.0 监听Windows网络状态切换
  • [CSP-J 2022] 解密
  • 4个实用的微服务测试策略
  • conda常用的命令
  • Flannel解读
  • Flex布局到底解决了什么问题
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Git学习与使用心得(1)—— 初始化
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java深入 - 深入理解Java集合
  • Python3爬取英雄联盟英雄皮肤大图
  • Quartz初级教程
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 读懂package.json -- 依赖管理
  • 聊聊flink的TableFactory
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 批量截取pdf文件
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用common-codec进行md5加密
  • 事件委托的小应用
  • 我与Jetbrains的这些年
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 正则表达式
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 国内开源镜像站点
  • 整理一些计算机基础知识!
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #### go map 底层结构 ####
  • #微信小程序:微信小程序常见的配置传值
  • (52)只出现一次的数字III
  • (k8s)Kubernetes本地存储接入
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (篇九)MySQL常用内置函数
  • (转)Linq学习笔记
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .gitignore文件---让git自动忽略指定文件
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .net(C#)中String.Format如何使用