一起体验 skywalking+es8.5.x 实时监控应用运行信息
序言
企业应用系统发展越来越庞大,依赖越来越多的产品组件,集成越来越多系统, 整体应用系统的性能取决于”木桶短板“,为了捕捉系统的短板问题,更好的持续优化,需要一套完备的”可观测性“系统,为系统架构师们或者决策者们提供数据库支持。
可观测性
什么是可观测性呢?简单来说,就是日志、指标、链路追踪的整套监控体系。
图示:可观测性示意图
应用系统运行会产生很多运行日志,包括中间件日志、框架日志、业务日志等,日志需要集中化的平台,便于回溯系统的问题,如java领域log4j2日志框架。
应用系统运行也需要实时记录指标,包括内存、cpu、网络io、磁盘io、线程io等多种实时指标,便于观察业务需求与应用系统的性能问题,如java领域micrometer框架。
微服务时代,纯粹的单体程序已经很少,服务之间依赖众多,链路调用复杂,无论是企业内部系统集成还是外部三方服务依赖,都越来越多,也很复杂,需要功能强大且性能消耗低的链路追踪框架产品,如spring cloud体系zipkin框架。
可观测性产品简单比对
可观测性领域,功能特性完备的产品有很多,萝卜白菜,各有所长。
有来自韩国开源产品 pinpoint,可视化图非常漂亮,但其基于hbase的存储设计,部署运维复杂度较高,对于小规模企业并没有那么容易上手。
有经典开源的Elastic Stack产品体系 ,功能完备,日志、指标、链路追踪全部都有,可模块化集成,但其面向全球性的界面设计,对于中文开发者,体验有点别扭。
有来自国内著名的开源产品skywalking,以APM为核心,专注于应用程序链路追踪,扩展了周边很多特性、产品可视化对中文开发者友好,但其后端数据存储依赖三方数据库,如Elasticsearch;目前市面上很多收费的企业级可观测产品多数都是围绕elasticsearch展开。
skywalking 与elasticsearch 融合
skywalking支持多种数据库存储,基于个人经验评估,最佳的依然是Elasticsearch,目前支持es6/es7/es8等多种版本。
图示:来自skywalking官方
skywalking在融合elasticsearch方面,做了很多优化性的配置,但在笔者看来,这些都是一些一般性的设计,并没有很好的融合elasticsearch最新的特性与特点。
图示:来自dbaplus社区分享
大家都知道 elasticsearch版本发布非常快,功能特性迭代也非常快,如最新es8.5推出了时序索引,官方性能压测同比过去存储节约近50%,结合官方的datastream特性,可以让skywalking在很多方面设计配置可以更加简化。
skywalking 案例实践
skywalking与elasticsearch融合,快速实践非常简单,分为以下三个步骤:
1. elasticsearch 启动
选择 elasticsearch 8.5.x 版本,默认启动会自动配置安全策略,支持ssl+https
图示:es首次启动会自动生成安全配置信息
图示:es首次启动会生成超级用户与密码
2. skywaling 启动
选择skywalking 9.2.x版本,数据存储配置指向 elasticserch,配置基本的用户名与密码
图示:skywalking 数据存储配置
3. java 应用集成
选择skywalking-java 8.13.x版本,采用javaageng方式集成,数据采集配置指向skywalking后端
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar -jar yourApp.jar
图示:agent.config配置skywalking采集地址
4. 案例示意图
图示:skywalking在elasticsearch创建的索引
图示:skywalking展示的服务调用链路
参考文献
skywalking 官方参考
- skywalking 部署配置官方参考
https://skywalking.apache.org/docs/main/v9.2.0/readme/
skywalking-java-agent
- skywalking-java agent 应用集成官方参考
https://skywalking.apache.org/docs/skywalking-java/v8.13.0/en/setup/service-agent/java-agent/readme/
elasticsearch 8.5.x 最新特性
- elasticsearch 8.5.x 最新特性之时序数据
https://www.elastic.co/guide/en/elasticsearch/reference/8.5/release-highlights.html
关于我们
讲师:李猛 (Elastic King 数据领域专家)
- Elastic Stack 国内顶尖实战专家
- ELastic Stack 技术社区分享嘉宾
- 国内首批Elastic 官方认证工程师21人之一
- 阿里云MVP(大数据领域)
- DBAPlus MVP(原创内容贡献者)
- GitHub:https://github.com/ynuosoft
- 咕泡科技 《Elastic (ELK) Stack 架构师成长路径》主讲老师。
- 2012年接触Elasticsearch,对Elastic Stack 技术栈开发、架构、运维、源码、算法等方面都有深入实战。
- 负责过多种 Elastic Stack 实战应用项目,大数据分析领域、机器学习预测领域、业务查询加速领域、日志平台分析领域、基础指标监控领域、全文分词检索领域等。
- 服务过多家企业、提供Elastic Stack 咨询培训以及调优实施。
- 多次在 Elastic Stack 技术社区分享,发表过多篇实战干货案例文章。
- 十五年IT技术实战从业经验,涉猎行业众多、电商、物流、传统企业等,擅长大数据、系统架构等领域。
相关文章
- KubeSphere监控失效为NAN的问题
- 开源实时监控系统CAT 3.0发布:多语言客户端及多项性能提升
- 实时应用监控平台,你值得拥有!
- 视频监控平台GB28181:实时视音频点播
- 文档管理系统:实时监控文档操作痕迹,让文档管理更安全!
- Zabbix监控基于snmp实现监控linux主机
- 使用zabbix监控mongodb的方法
- shell:实现linux服务器资源监控并发送告警邮件详解程序员
- Linux下shell脚本监控Tomcat的状态并实现自动启动详解程序员
- Linux Web 服务器实时监控系统(linuxweb监控)
- Linux监控:跟踪文件内容变化(linux监控文件内容)
- Linux文件系统的实时监控(linux文件监控)
- 服务监控系统 Prometheus 2.0 发布
- MySQL数据库实时监控解决方案(mysql数据库监控工具)
- 系统实时监控Linux操作系统运行状况(监控linux操作)
- Linux 实时监控输出分析(linux实时输出)
- 进程【Linux 实时监控进程信息】(linux实时输出)
- MySQL 监控查询优化:实时改善数据库性能(mysql监控查询)
- 国内第一套自主可控700兆瓦水电站智能监控上线:采用国产飞腾CPU
- 使用ES实现Redis实时监控(用es做redis监控)
- Oracle Job监控,提升数据库运行效率(oracle job监控)
- mysql常用监控脚本命令整理