如何利用 Webshell 诊断 EDAS Serverless 应用

本文主要介绍 Serverless 应用的网络环境以及 Serverless 应用容器内的环境,了解背景知识以及基本的运维知识后可以利用 Webshell 完成基本的运维需求。

Webshell 简介

用户可以通过阿里云控制台直接获取 ECS 的 Shell,从而完成自己的运维需求。如果 ECS 内开启了 SSH 服务,且 ECS 存在弹性公网 IP,那么用户也可以在本地通过 SSH 服务获取 ECS 的 Shell 完成运维需求。

由于 EDAS Serverless 特殊的架构以及网络环境,用户暂时无法直接从本地通过 SSH 服务获取应用容器的 Shell。在 Serverless 场景中,容器是一个暂态的、供应用运行的环境,一般来说不需要进入运维。为了方便用户进行线上问题定位排查,EDAS 在控制台提供了一个简单的Webshell,供用户查看调试自己的容器。

EDAS 默认给出的 Jar War 类型应用的容器基础镜像主要是面向应用运行时,不带有冗余的排查工具,因此对运维人员可能不够友好。对于用户自身的镜像,不需要镜像中启动 SSH 服务,只需要带有可执行的/bin/bash即可。用户自己的镜像可以带上必须的运维工具方便排查。目前 Webshell 不支持 Windows 镜像。

EDAS 应用节点的网络环境

EDAS 应用节点处于用户自己购买的阿里云 VPC 内。在 EDAS 中,还额外提供了一层中间件服务调用隔离的手段:EDAS 命名空间。EDAS 命名空间与 VPC 内的 VSWITCH 是绑定关系,一个 EDAS 命名空间对应一个 VSWITCH,一个 VSWITCH 可以对应多个EDAS命名空间。VPC 的原理以及基本的产品情况可以在阿里云VPC官方文档了解。简单来讲,VPC 内的 IP 地址为局域网地址,不同 VPC 内的2层以上数据包无法路由到目的地。EDAS 命名空间主要做中间件逻辑隔离,不同命名空间内的应用在中间件层面是隔离的,如服务发现以及配置下发等。

由于 VPC 的产品特性以及当前的 EDAS Serverless 的产品特性,容器无法直接触达 VPC 外的服务(阿里云产品除外,如 OSS、镜像服务等)。在没有额外配置的情况下,你的容器运行在网络“孤岛”环境。

了解了基本的网络情况,现在可以明白为什么用户无法直接触达自己的容器了。

容器内需要访问公网服务,可以通过购买 NAT,并配置 VPC 内 VSWITCH 的SNAT规则即可,详见阿里云Serverless文档。SNAT规则可以让VPC内地址访问公网地址,从而使用公网暴露的服务,获取到公网的资源。

EDAS 构建的镜像的方案

基于阿里云容器镜像服务,EDAS 集成了为用户构建以及管理镜像的功能。用于构建的基础镜像为centos:7,在此基础上为用户配置好了时区、语言与编码方式、Open JDK 运行环境。容器存在的目的是为了让应用运行起来,EDAS 不可能以占用所有用户运行时资源为代价,集成过多的工具,对于容器内工具有需求的用户,建议自行构建镜像,或者按需从 OSS 拉取。

常见的分析手段

线上容器的运维一般是不必要的。如果你确定需要进入容器进行运维,请务必了解你的操作对线上业务的风险:对于单点应用,你的行为可能导致容器 OOM,从而导致分钟级别的业务中断,而对于多点部署的业务,上述现象可能造成业务秒级中断。

诊断 EDAS 应用一般从这几个方面入手:常规检查上传搜集的日志

常规检查

常规检查的方法比较多,以 Java 应用为例,一般是检查进程、线程以及 JVM 的健康状态。

  • 首先执行命令ps -ef | grep java检查你的 Java 进程是否还存在。这里必须特别说明的是,容器内一般需要使用主进程启动你的应用,这样一旦你的应用被kill掉,容器也会退出,EDAS 会将退出的容器重新启动,防止业务中断。
  • 如果进程不见了,可以执行命令dmesg | grep -i kill查看OOM相关日志。如果存在日志,那么说明你的应用进程被 kill 掉了,接着检查工作目录下hs_err_pid{PID}.log日志文件,定位具体的原因。
  • Java 类型应用的在线分析可以使用阿里巴巴开源软件 Arthas 解决,建议在测试镜像中集成Arthas工具进行常规诊断。Arthas可以很方便地实时查看类加载情况,观察方法出入参,环境变量等。
# 接入arthas,需求打通公网
wget https://alibaba.github.io/arthas/arthas-boot.jar
java -jar arthas-boot.jar
  • 对于网络层的诊断,在了解上述EDAS应用节点网络情况的前提下,一般可以通过curl -v {host/ip} {port}检查域名解析以及连通性,通过tcpdump抓包观察分析网络调用情况。

日志上传解决方案

受限于容器内工具的匮乏,比较推荐的方案是将容器内搜集到的日志上传到云端,然后下载到本地进行分析。目前,EDAS 暂时没有提供容器内日志的下载功能,这里给出一种基于阿里云 OSS 服务的解决方案。OSS 打通了阿里云生态几乎所有的网络环境,你几乎可以在任何网络环境下上传以及下载 OSS 上的文件。

  • 首先在容器内部安装OSS命令行工具。
## 以64位centos系统,root下
## 没有打通公网的情况下可以选择在本地下载,然后将这个文件上传到oss,然后取oss的vpc内地址进行下载
wget http://gosspublic.alicdn.com/ossutil/1.5.0/ossutil64
chmod 755 ossutil64
  • 然后配置你的 OSS 命令行工具,附上当前 region VPC 内的endpoint(VPC内的上传不要求打通公网,也不消耗公网带宽流量,更加经济),填写用于接收上传文件的账号的AK/SK,然后查看已经创建的Bucket,来检查你的OSS服务是否可用。
## 请先确保账号(不必是当前账号,任意开通阿里云oss服务的账号均可)已开通 OSS 服务
## 按照提示配置你的 AK SK endpoint信息,ststoken 不需要填写
./ossutil64 config
## 检查账号是否可用,如果报错则配置错误,如果没有bucket,则建议前往oss控制台创建,命令行工具也支持创建
./ossutil64 ls
## 这里创建一个模拟的日志文件,用于上传
echo "Hello" > edas-app.log
./ossutil64 cp edas-app.log {bucket-address,例如:oss://test-bucket,可以从上述命令"./ossutil64 ls"中查看}
  • 从 OSS 控制台或其他工具中找到你的日志文件,下载到本地,并使用你熟悉的工具进行分析。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

刚刚,阿里云上线六大“战疫情”项目

作者 | Just出品 | CSDN云计算(CSDNcloud)抗击新冠肺炎,一线互联网大厂在行动。疫情发生以来,诸多科技公司都在思考如何利用技术来帮助抗击疫情,其中,阿里巴巴也是首当其冲。今天,阿里云上线了“…

MSSQL - 最佳实践 - 如何打码隐私数据列

摘要 在SQL Server安全系列专题月报分享中,我们已经分享了:如何使用对称密钥实现SQL Server列加密技术、使用非对称密钥加密方式实现SQL Server列加密、使用混合密钥实现SQL Server列加密技术、列加密技术带来的查询性能问题以及相应解决方案和行级别安…

手把手教你使用TF服务将TensorFlow模型部署到生产环境

介绍 将机器学习(ML)模型应用于生产环境已成为一个火热的的话题,许多框架提供了旨在解决此问题的不同解决方案。为解决这一问题,谷歌发布了TensorFlow(TF)服务,以期待解决将ML模型部署到生产中的问题。 本…

一次搞定各种数据库SQL执行计划

作者 | 董旭阳TonyDong出品 | CSDN 博客执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等。如果 SQL 语…

阿里云MVP北京闭门会圆满落幕 多把“利剑”助力开发者破阵蜕变

3月21日,北京国家会议中心,阿里云北京峰会吸引了全球计算机行业的目光。十年时间,阿里云开创中国云时代,研发了属于自己的云操作系统和城市AI平台,云普惠各行各业数百万客户。下一个十年,在阿里云战略升级为…

python3 django开发_python3开发进阶-Django框架学习前的小项目(一个简单的学员管理系统)...

自己独立写一个学员管理系统表结构:班级表:-id-grade_name学生表:-id-student_name-grade 关联外键班级表老师表:-id-teacher_name-grades (多对多 关联班级表)在写小项目之前我们先复习一下小知识:1、 form表单提交数…

“云原生全家桶“KubeSphere 如何让企业从容迈进云原生时代?

作者 | 刘丹来源 | CSDN云计算(ID:CSDNcloud)最近两年,云原生大火。究其原因,“数字化转型”几乎成为所有企业当下最迫切的需求,在这样的趋势下,恰逢新旧IT架构升级的契机,容器、微服…

Kubernetes Ingress 日志分析与监控的最佳实践

Ingress 主要提供 HTTP 层(7 层)路由功能,是目前 K8s 中 HTTP/HTTPS 服务的主流暴露方式。为简化广大用户对于 Ingress 日志分析与监控的门槛,阿里云容器服务和日志服务将 Ingress 日志打通,只需要应用一个 yaml 资源即…

SpringBoot之AOP详解

面向方面编程(AOP)通过提供另一种思考程序结构的方式来补充面向对象编程(OOP)。 OOP中模块化的关键单元是类,而在AOP中,模块化单元是方面。 文章目录准备工作1. Pointcut 切入点2.Before前置通知3.After 后…

HUAWEI华为笔记本电脑MateBook D 14 2022款 i5 集显 非触屏(NbDE-WFH9)原装出厂Windows11系统21H2

链接:https://pan.baidu.com/s/1-tCCFwZ0RggXtbWYBVyhFg?pwdmcgv 提取码:mcgv 华为MageBookD14原厂WIN11系统自带所有驱动、出厂状态主题壁纸、Office办公软件、华为电脑管家、华为应用市场等预装软件程序 文件格式:esd/wim/swm 安装方式…

远程办公首日企业通讯软件崩溃、紧急扩容,云办公怎么了?

作者 | 阿文责编 | 伍杏玲来源 | 程序人生(ID:coder_life)受新型冠状病毒性肺炎的疫情影响,各地实施了严格的控制手段:封村、封路、封小区、暂停省际、县级、村级班车等措施。1月27日,国务院办公厅发布关于…

我在阿里云做前端

前言 今年是我毕业的第10个年头,半路出家做了前端,title一直是前端,你可以说我很专注,有时候也有些遗憾。一直以来,当别人问起你是做什么的,我说前端或者全栈,别人说:哦&#xff0c…

Mybatis-Plus的SQL语句组拼原理

前言:记录查找自动组拼SQL语句的过程 首先在BaseMapper其中的一个方法下打个断点 在断点显示的值栏找到相关的SQL 发现SQL语句在MappedStatement对象中,而sqlSource存的就是相关的sql语句 然后在MappedStatement这个对象打断点,看看到底是…

云漫圈 | 什么是字符串匹配算法?

作者 | 程序员小灰来源 | 程序员小灰(ID:chengxuyuanxiaohui )————— 第二天 —————什么意思呢?让我们来举一个例子:在上图中,字符串B是A的子串,B第一次在A中出现的位置下标是2&#…

MSSQL实践-数据库备份加密

摘要 在SQL Server安全系列专题月报分享中,我们已经分享了:如何使用对称密钥实现SQL Server列加密技术、使用非对称密钥实现SQL Server列加密、使用混合密钥实现SQL Server列加密技术、列加密技术带来的查询性能问题以及相应解决方案、行级别安全解决方…

Kubernetes 如何打赢容器之战?

Kubernetes 近几年很热门,在各大技术论坛上被炒的很火。它提供了强大的容器编排能力,与此同时 DevOps 的概念也来到大家身边,广大的开发同学也能简单地运维复杂的商业化分布式系统,打破了传统开发和运维之间的界限。 本文会以初学…

一行Python代码能干什么?有意思!

我下班最大的乐趣就是刷抖音一开始刷的都是一些无聊小剧场后来看看能不能刷一些技术上的内容因为本人觉得Java是世界上最好的编程语言可是我在刷抖音的时候刷到了一行Python代码能干什么我突然觉得爱上Python了之前是听说Python比较简单同样的内容Java、C语言需要十几行Python只…

自然语言生成(NLG)的好处是什么,它如何影响BI?

近年来,我们已经看到了大数据的成功应用,但根据研究,只有20%的员工能够真正的使用BI工具。此外,由于在统计思维方面缺乏培训且图表和图表形式的数据不是很清晰,决策者往往会出现误解和决策失误。而这背后的…

ida 字符串查找_IDA 搜索中文字符串

IDA 的字符串窗口默认只能显示英文,网上的一些方法是指定启动时的参数可以显示中文ida64 -DCULTUREallida -DCULTUREall还有就是修改 cfg/ida.cfg 文件,但是这两种方法都没试成功。实际上没有那么麻烦,IDA 7.0 操作很方便,在字符串…

“练好内功坚持被集成”,阿里云发布SaaS加速器

在3月21日的2019阿里云峰会北京上,阿里云发布新产品SaaS加速器:人工智能、虚拟现实等技术能力被集成为模块,ISV和开发者只要简单拖拽,就可以快速搭建SaaS应用。 发布现场,阿里云智能产品管理部总经理马劲进行简单演示…