基于日志服务实现企业级统一监控
随着企业信息化的发展,面向云的IT基础设施越来越普遍,如何解决超大软件系统监控问题,成为IT稳定性保障的关键环节。 本方案主要介绍如何使用SLS 对阿里云、企业自有IDC以及第三方云场景下,进行企业级的监控方案。
方案概述
随着企业信息化的发展,面向云的IT基础设施越来越普遍,如何解决超大软件系统监控问题,成为IT稳定性保障的关键环节。 本方案主要介绍如何使用SLS 对阿里云、企业自有IDC以及第三方云场景下,进行企业级的监控方案。
方案优势
自底向上全栈的监控能力
依托于MetricStore/Logstore存储能力,SLS提供了自底向上全栈的监控能力。客户只需要使用一套产品即可完成全栈监控,免去了维护多套监控系统的麻烦。
多种网络场景的监控能力
客户只需要使用一套产品即可完成多种网络场景下的监控覆盖。包括多账号场景下的统一监控、混合云场景、多云场景都可以用一套产品支持。
客户场景
统一告警事件管理
场景描述
客户在云上会有多个业务部署形态,也会用到多款不同的云产品来支撑业务。而这些云产品都会有相应的告警事件触发。客户希望能够把这些告警事件统一管理。
适用客户
- 多个告警事件源
- 统一事件告警
统一监控管理
场景描述
客户在云上有多套监控系统。比如常见的:云监控、ARMS、自建的三方监控软件等。客户希望把这些监控系统的数据统一汇集到一处。
适用客户
- 多套监控系统
- 统一监控管理
客户案例
客户背景
某国内知名的支持云端实时协作的企业办公服务软件(功能类比于Google Docs、Quip)。在初期遇到了一些在云上的运维管理挑战。
客户痛点
- 运维工具分散,事件无法聚合分析
- 运维工具性能瓶颈,查询缓慢、运维复杂
- 团队初期资源少,无法开发运维工具
实施方案
基于SLS搭建了一套统一告警事件管理平台。
架构示意图:
部分功能截图
- 全局管理所有告警规则(容器、业务异常、项目部署...)
- 业务系统指标、异常全面可观测
- 基于告警时间线的根因分析
客户收益
- 接收SLS自动告警,及时发现线上资源风险,提前规避线上故障。
- 基于SLS打造的全渠道事件总线,能够快速定位事件根因。
方案架构
依托于MetricStore/Logstore存储能力,SLS提供了从底向上全栈的监控能力。
产品费用及名词
产品费用
产品名称 |
产品说明 |
产品费用 |
日志服务SLS |
日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升您在研发、运维、运营、安全等场景的数字化能力。 |
收费,详情参见产品定价。 |
云服务器ECS |
云服务器ECS(Elastic Compute Service)是一种简单高效、处理能力可弹性伸缩的计算服务。帮助您构建更稳定、安全的应用,提升运维效率,降低IT成本,使您更专注于核心业务创新。 |
收费,详情参见产品计费。 |
容器服务ACK |
容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。 |
收费,详情参见产品计费。 |
名词解释
名称 |
说明 |
时序库(MetricStore) |
时序库(MetricStore)是日志服务中时序数据的采集、存储和查询单元。 |
日志库(Logstore) |
日志库(Logstore)是日志服务中日志数据的采集、存储和查询单元。 |
安全性
SLS监控管理员角色
这个角色需要完成SLS相关配置。日志服务提供权限助手功能,简化日志服务相关的RAM权限策略配置。具体配置请参见配置权限助手。
K8S监控配置角色
需要完成相关组件接入,包括K8S指标监控接入,事件监控,主机监控接入等。容器服务ACK提供的系统授权策略的授权粒度比较粗,如果这种粗粒度授权策略不能满足您的需要,那么您可以创建自定义授权策略。具体请参见自定义RAM授权策略。
注意事项
日志服务基础资源的使用限制
包括Project的数量上限、Logstore数量上限、机器组数量上限等等。具体请参考基础资源。
日志服务告警限制
告警监控、告警管理、通知等方面的限制。具体请参考告警。
开服地域
地域是指物理的数据中心,Project创建成功后不能更换地域。在实施本方案之前需要考虑当前产品支持哪些地域
具体请参考开服地域。
实施步骤
实施准备
1. 在阿里云官网已经开通 SLS服务
2. 确保现有的网络环境,可以连通到阿里云网络。
网络联通说明: 本方案要求现有的需要采集指标或日志的设备能够联通阿里云的网络环境,目前SLS支持的Region请查看Region列表。
对于IDC或者其他云厂商的场景,如果是进行POC的话可以优先使用SLS的公网地址进行 日志收集;如果是生产使用建议搭建相应的专线接入阿里云网络,以保障数据传输的可靠性。
操作步骤
汇总
监控层次 |
监控类型 |
接入方式 |
接入说明 |
IAAS层 |
k8s指标监控 |
配置即可接入(Promethues Remote Write) |
支持Pod、Deployment、SatefulSet、k8s核心组件指标监控,具体配置方法 链接 |
k8s事件监控 |
配置即可接入(需部署k8s npd组件) |
容器的重启、Crash、OOM等监控,关键组件异常监控链接 |
|
主机监控 |
logtail采集 |
支持CPU、Mem、Disk、Net、System等相关指标采集链接 |
|
PAAS层 |
MySQL |
logtail采集 |
配置方案见 链接 |
MongoDB |
logtail采集 |
配置方案见 链接 |
|
Redis |
logtail采集 |
配置方案见 链接 |
|
ClickHouse |
logtail采集 |
配置方案见 链接 |
|
Kafka |
logtail采集 |
配置方案见 链接 |
|
Nginx |
logtail采集 |
配置方案见 链接 |
|
ElasticSearch |
logtail采集 |
配置方案见 链接 |
|
阿里云云产品 |
配置即可接入 |
支持常见的云产品(ecs、rds等)指标接入链接 |
|
应用层 |
应用Trace |
业务代码集成(部分支持无侵入) |
支持常见语言SDK |
现有Trace集成 |
配置即可接入 |
||
JVM指标监控 |
配置即可接入 |
配置方式参考 链接 |
|
自定义指标 |
开发接入/SLS数据加工/SLS ScheduleSQL |
支持使用Python、Java、Go等语言,向SLS MetricStore写入自定义的监控数据。 参考 链接 |
|
业务层 |
业务接入层分析 |
配置即可接入 |
|
自定义指标 |
开发接入/SLS数据加工/SLS ScheduleSQL |
业务日志中的日志,通过计算转换为指标
|
部分监控效果展示
k8s 接入Prometheus后指标查询展示:
k8s 接入Prometheus后使用Grafana查询:
k8s事件中心:
主机监控:
Redis监控:
云产品 - ecs指标导入:
SLB日志中心:
应用JVM监控:
应用Trace接入:
故障排除
告警常见问题
介绍在使用SLS用来做告警时,设置告警会遇到的常见问题及处理方法。具体可参考告警常见问题。
日志服务中的数据如何实现低成本存储
您可以通过如下方式实现数据的低成本存储。
- 通过日志服务Scheduled SQL功能对全量、细粒度的数据进行聚合存储,汇总为存储大小、精度适合的数据,长期存储。更多信息,请参见Scheduled SQL。
- 通过日志服务投递功能将数据投递到阿里云OSS中进行低成本存储。OSS提供标准、低频访问、归档、冷归档四种存储类型,全面覆盖从热到冷的各种数据存储场景。
数据采集常见问题
会介绍使用Logtail采集日志过程中遇到的各种常见故障应对策略。具体可参考Logtail基本问题。
方案卸载
卸载Logtail
- Linux系统
执行以下命令卸载Logtail。
wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh -O logtail.sh;chmod 755 logtail.sh;./logtail.sh uninstall
- Windows系统
以管理员身份运行Windows Powershell或cmd进入logtail_installer目录(安装包的解压目录),执行如下命令。
.\logtail_installer.exe uninstall
卸载成功后,您的Logtail的安装目录会被删除,但仍有部分配置被保留在C:\LogtailData目录中,您可以根据实际情况进行手动删除。遗留信息包括:
- checkpoint:存放所有Logtail插件的Checkpoint信息。只有您使用了Logtail插件后,才会出现此文件。
- user_config.d:存放本地采集配置的目录。其中以.json结尾的文件会被视为采集配置,格式类似于/usr/local/ilogtail/user_log_config.json。
- logtail_check_point:存放Logtail主体部分的Checkpoint信息。
- users:存放您所配置的用户标识文件。
删除机器组
- 在机器组列表中,单击目标机器组后面的
图标,选择删除。
- 在弹出的对话框中,单击确认。
删除Logstore
1.在日志存储 > 日志库页签中,选择目标Logstore右侧的 > 删除。
- 警告 Logstore一旦删除,其存储的日志数据将会被永久删除,不可恢复,请谨慎操作。
2.在删除对话框中,单击确认。
删除Project
- 在Project列表中,单击目标Project对应的删除。
- 在删除Project面板中,选择删除原因,然后单击确定。
警告 删除Project后,其管理的所有日志数据及配置信息都会被永久释放,不可恢复。在删除Project前请慎重确认,避免数据丢失。