Alibaba Cloud Toolkit 中SLS插件助力线上服务问题排查

本文涉及的产品
对象存储 OSS,20GB 3个月
阿里云盘企业版 CDE,企业版用户数5人 500GB空间
云备份 Cloud Backup,100GB 3个月
简介: Alibaba Cloud Toolkit 是一款非常优秀的插件,新增SLS日志服务的功能,针对软件开发者日常工作中常见的问题排查场景,将日志服务平台的功能集成到ide当中,省去了不同窗口之间来回切换的时间,大大提高了日常工作的效率

产品介绍

Alibaba Cloud Toolkit阿里云针对IDE平台为开发者提供的一款插件,用于帮助开发者高效开发并部署适合在云端运行的应用。在本地完成应用程序的开发、调试和测试后,可以使用在IDE(如Eclipse或IntelliJ)中安装的Cloud Toolkit插件,通过图形配置的方式连接到云端部署环境并将应用程序快速部署到云端。

SLS插件解决的痛点

作为一个软件开发人员,线上问题的排查是必不可少的经历。在不同成熟度的服务中,线上排查的流程也有些许不同。某些小的创业公司开发的软件,有可能服务还是单点的,或者几台机器搭建一个集群,每个服务的日志都需要ssh到每一台服务器上查看日志。成熟度高一些的公司,就会自建自己的日志服务平台、或者使用像SLS这种成熟的日志平台,将线上的日志集中起来管理,这样就省去了ssh到服务器上查看日志的麻烦,这样已经大大提高了问题排查的效率,

但是,还是不够完美。我们假设一种常见的场景,就是当线上发生了异常,此时我们从日志服务平台的页面上找到了服务的日志,比如是Java的stack trace。Java的stack trace通常是比较长的,那么为了准确的从代码库中找到发生异常的代码,我们需要在日志服务平台的页面和ide中来回切换;某些时候,当日志过长的时间,我们还需要把日志拷贝到本地文件中。这样在不同窗口之间来回切换,浪费了非常多宝贵的时间。

那么为了方便我们准确的把日志服务平台的日志跟代码关联起来,Alibaba Cloud Toolkit集成了SLS日志平台的功能,让软件开发者能够在ide中方便的查询到想要的日志。日志服务SLS是云原生观测与分析平台,为Log、Metric、Trace等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升研发、运维、运营、安全等场景的数字化能力。

下面我们就来看一个常见的java服务异常排查的场景,来看看Alibaba Cloud Toolkit插件中SLS的功能到底有多方便。

场景模拟

服务模拟

首先我们模拟一个线上发生异常的服务。创建一个简单的springboot服务,然后实现ApplicationRunner的一个Component类型的bean,做的事情非常简单,就是每秒打印一行NPE的日志,用来模拟线上发生NPE的服务。

@Component
@Slf4j
public class LogDemoService implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        while (true) {
            try {
                String field = null;
                System.out.println(field.length());
                Thread.sleep(1000);
            } catch (Exception e) {
                log.error("write exception log :", e);
            }
        }
    }
}

服务打包好之后,在服务器上启动服务。

SLS采集部署、验证

然后我们在服务器上部署SLS的日志采集服务,具体操作文件参见:https://help.aliyun.com/document_detail/65018.html,用来把日志采集到SLS的logstore中,

我们在SLS的页面上确认日志已经成功采集到了之后,服务的模拟和日志平台的接入就已经完成了,下面我们回到ide里。

IDE配置、使用流程

首先我们通过intellij的plugins的market place查找到Alibaba Cloud Toolkit, 点击install,然后重启ide之后即可生效

点击Tools-> Alibaba Cloud -> Preference,配置账号信息,这里需要把拥有SLS日志查看权限的账号的Access Key Id和Access Key Secret填入

点击Tools-> Alibaba Cloud -> Alibaba Cloud View -> Alibaba Cloud SLS

即可在ide的窗口的下方看见SLS的日志查询界面

选择相应的Region和project之后,点击对应的logstore右边的查看按钮

就可以像SLS的页面一样,在ide里面查看服务的日志了,这个界面还支持日志时间范围的筛选和查询、分析语句的筛选,可以帮助开发人员快速准确的找到想要的日志数据。SLS查询和分析语句可以参考文档:https://help.aliyun.com/document_detail/128135.html

像Java Stack Trace这种比较长的日志,在这个界面没有办法一次性看到完整的信息,在查询结果每条日志右侧有一个"在编辑器中打开"的按钮

点击之后,就可以在ide的新的页面里完整查看这条日志,方便开发人员获取最完整的信息

总结

Alibaba Cloud Toolkit 是一款非常优秀的插件,新增SLS日志服务的功能,针对软件开发者日常工作中常见的问题排查场景,将日志服务平台的功能集成到ide当中,省去了不同窗口之间来回切换的时间,大大提高了日常工作的效率。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
18天前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
34 1
|
18天前
|
Java 程序员 应用服务中间件
「测试线排查的一些经验-中篇」&& 调试日志实战
「测试线排查的一些经验-中篇」&& 调试日志实战
15 1
「测试线排查的一些经验-中篇」&& 调试日志实战
|
5天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
2天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
1天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
3天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
6天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
17天前
|
Web App开发 存储 监控
iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
本文为 iLogtail 开源两周年的实践案例分享,讨论了 iLogtail 作为日志采集工具的优势,包括它在性能上超越 Filebeat 的能力,并通过一系列优化解决了在生产环境中替换 Filebeat 和 Logstash 时遇到的挑战。
|
8天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog
|
11天前
日志管理服务
日志管理服务 1.保证rsyslogd服务运行 查询是否启动 ps aux | grep "rsyslog" | grep -v"grep" 查询rsyslogd 自启动状态 systemctl list-unit-files | grep "rsyslog

相关产品

  • 日志服务