EDAS 专有网络ECS集群应用数据采集实践

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

对于云上的EDAS用户来说,后端监控日志及调用链信息对定位和应用诊断及其重要,EDAS目前主要分ECS集群和K8S集群,K8S集群部署应用通过ARMS收集应用日志。ECS集群因为大部分ECS都是专有网络,因vpc天然网络环境隔离,所以EDAS针对专业网络ECS集群提供了一个特殊的解决方案:日志采集器(鹊桥)。本文将就日志采集器进行介绍和技术支持遇到的经典案例进行分享

日志采集器示意图

日志采集器分为 Server 端和 Client 端。SProxy 是安装在您应用实例上的日志采集器 Client。Cproxy是安装在EDAS后端集群。通过cproxy->sproxy->hblog 获取日志
image

image

日志采集器排查

现象:
在 EDAS 的服务中,如果获取不到数据,所有和视图以及调用链相关的服务均变得不可用;这部分功能包括监控(基础监控、服务监控),报警,调用链
重要排查方向:
1.8002和8182重要端口,安装日志采集服务器执行命令'netstat -ant|grep 8002'检测端口(8002)是否建立成功。应用服务器执行命令'netstat -ant|grep 8182'查看 8182 端口是否处于监听状态且有连接信息。
2.核实sproxy和hblog日志是否异常

  默认安装目录:/root/sproxy   

sproxy日志目录:/root/sproxy/log/console.log

                        /root/sproxy/log/error.log

hblog日志目录:/usr/alisys/dragoon/log/hblog.log
3.网络应用服务器和日志采集器的网络、日志采集器到后端cproxy的网络
4.日志采集器安装所在ecs服务器的性能,应用服务器性能

日志采集器相关问题

1.VPC 中安装日志采集器大致建议比例
• 需要根据日志量、服务器性能等综合判断,目前个人建议40-50台ECS的应用需要找一个ECS安装日志采集器
2.应用部分某种类型调用链获取不到或者监控无数据。
• 调用链和监控数据需要有访问请求流量才会产生,如果无客户访问网站或者并不是hsf等服务,则不会有数据
3.手动安装命令:
• 以北京为例 wget -q -O /root/ins.sh http://edas-bj.vpc100-oss-cn-beijing.aliyuncs.com/agent/prod/install_scripts/install_sproxy_entry.sh && sh /root/ins.sh -vpcid "客户的vpc id" 其中域名注意变化
4.日志采集器配置

image

配置文件是 sproxy/priv/queqiao_sproxy.config,配置内容:
{vpc_instance_id, "vpc-bpxxxxxvn"}, %% 当前sproxy所在的vpc的标识,内容为空表示使用ip地址判断

{version, "2.0.0"}, %% 当前sproxy所在的vpc的标识,内容为空表示使用ip地址判断
{cproxy_info,
    [{
        {cproxy_addr, "100.x.x.31"}, %% 配置cproxy的地址信息
        {cproxy_reg_port, 8002}, %% cproxy的监听注册端口
        {cproxy_conn_retry_counts, 10000000000}, %% 每个sproxy尝试与cproxy尝试建立链接的次数
        {cproxy_conn_retry_interval, 5}, %% 尝试建立链接的秒间隔
        {cproxy_conn_heartbeat_interval, 20} %%保持链接, 单位秒
    },{
        {cproxy_addr, "100.x.x.31"}, %% 配置cproxy的地址信息
        {cproxy_reg_port, 8002}, %% cproxy的监听注册端口
        {cproxy_conn_retry_counts, 10000000000}, %% 每个sproxy尝试与cproxy尝试建立链接的次数
        {cproxy_conn_retry_interval, 5}, %% 尝试建立链接的秒间隔
        {cproxy_conn_heartbeat_interval, 20} %%保持链接, 单位秒
    },{
        {cproxy_addr, "100.100.19.32"}, %% 配置cproxy的地址信息
        {cproxy_reg_port, 8002}, %% cproxy的监听注册端口
        {cproxy_conn_retry_counts, 10000000000}, %% 每个sproxy尝试与cproxy尝试建立链接的次数
        {cproxy_conn_retry_interval, 5}, %% 尝试建立链接的秒间隔
        {cproxy_conn_heartbeat_interval, 20} %%保持链接, 单位秒
    },{
        {cproxy_addr, "100.x.x.32"}, %% 配置cproxy的地址信息
        {cproxy_reg_port, 8002}, %% cproxy的监听注册端口
        {cproxy_conn_retry_counts, 10000000000}, %% 每个sproxy尝试与cproxy尝试建立链接的次数
        {cproxy_conn_retry_interval, 5}, %% 尝试建立链接的秒间隔
        {cproxy_conn_heartbeat_interval, 20} %%保持链接, 单位秒
    }]
},

5.操作命令
停止: ./run_sproxy_rel.sh stop
启动: ./run_sproxy_rel.sh start
重装:sh /root/install_sp.sh -force

配置原因导致无法采集数据案例(步骤分析)

问题现象:用户正常安装采集器后,页面监控大盘数据还是无法查看,具体现象如截图:
image

排查步骤:
1.登录服务器核实8182端口是否建立成功,netstat -ant|grep 8182
2.根据问题截图确认了应用服务器的安全组配置,确认安全组对采集器放开了8182端口(排出网络原因)
image

3.登录采集器服务器 执行 netstat -ant|grep 8002没有建立连接
image

4.定位是否没有成功安装采集器,重新重新安装后,再次确认8002没有建立连接。

image

5.定位sproxy日志信息, 查看/root/sproxy/log/console.log 发现报错提示cproxy地址127.0.0.1链接失败
image

6.日志采集器应该是后端服务器,不应该是本地ip的,核实queqiao_sproxy.config配置cproxy的地址错误
解决方案:
1、保留原有配置mv queqiao_sproxy.config queqiao_sproxy.config.bak
2、复制sproxy/priv下queqiao_sproxy_hz文件,新命名queqiao_sproxy.config: cp queqiao_sproxy_hz.config queqiao_sproxy.config
3.停止重启采集器 ./run_sproxy_rel.sh stop && ./run_sproxy_rel.sh

正常现象

image

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
Kubernetes 负载均衡 网络安全
Kubernetes 网络模型与实践
【8月更文第29天】Kubernetes(K8s)是当今容器编排领域的佼佼者,它提供了一种高效的方式来管理容器化应用的部署、扩展和运行。Kubernetes 的网络模型是其成功的关键因素之一,它支持服务发现、负载均衡和集群内外通信等功能。本文将深入探讨 Kubernetes 的网络模型,并通过实际代码示例来展示服务发现和服务网格的基本概念及其实现。
33 1
|
5天前
|
云安全 安全 网络安全
云计算环境下的网络安全策略与实践
【9月更文挑战第6天】在数字化浪潮中,云计算已成为企业转型和创新的强大引擎。随之而来的网络安全挑战亦日益突出,成为制约云服务发展的关键因素。本文深入探讨了云计算环境中的安全风险,并提出了一系列切实可行的网络安全策略。从基础的数据加密到高级的身份验证机制,再到细致的访问控制和入侵检测系统的应用,我们细致勾勒出一幅全面的云计算安全蓝图。通过实例分析,文章揭示了安全策略在实际场景中的应用效果,并对未来云计算安全的发展趋势进行了前瞻性的预测。旨在为云计算服务提供商和用户双方提供指导,共同构筑更为坚固的网络安全防线。
|
3天前
|
机器学习/深度学习 数据采集 数据可视化
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
本文详细介绍如何使用PyTorch构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行图像分类。从数据预处理、模型定义到训练过程及结果可视化,文章全面展示了深度学习项目的全流程。通过实际操作,读者可以深入了解CNN在图像分类任务中的应用,并掌握PyTorch的基本使用方法。希望本文为您的深度学习项目提供有价值的参考与启示。
|
7天前
|
监控 安全 网络安全
云计算与网络安全的融合之路:探索云服务中的信息安全实践
【9月更文挑战第3天】在数字化转型的浪潮中,云计算已成为现代企业不可或缺的技术基石。然而,随着数据和应用逐渐迁移至云端,网络安全和信息安全的挑战亦随之升级。本文将深入探讨云计算环境下的网络安全挑战,并分享如何通过策略和技术手段加强云服务的安全防护,确保企业资产与数据的完整性、可用性和保密性。
25 5
|
11天前
|
存储 安全 网络安全
云上防御:云计算中的网络安全实践与策略
【8月更文挑战第31天】在数字时代的浪潮中,云计算已成为企业信息技术架构的心脏。随之而来的网络安全挑战也日益严峻,如何在云端构建坚不可摧的安全防线成为业界关注的焦点。本文将深入探讨云计算环境下的网络安全措施,从基础的数据加密到复杂的入侵检测系统,提供代码示例和实践策略,旨在为读者揭开云计算安全的神秘面纱,并提供实用的安全工具和解决方案。
|
12天前
|
数据采集 Rust 安全
Rust在网络爬虫中的应用与实践:探索内存安全与并发处理的奥秘
【8月更文挑战第31天】网络爬虫是自动化程序,用于从互联网抓取数据。随着互联网的发展,构建高效、安全的爬虫成为热点。Rust语言凭借内存安全和高性能特点,在此领域展现出巨大潜力。本文探讨Rust如何通过所有权、借用及生命周期机制保障内存安全;利用`async/await`模型和`tokio`运行时处理并发请求;借助WebAssembly技术处理动态内容;并使用`reqwest`和`js-sys`库解析CSS和JavaScript,确保代码的安全性和可维护性。未来,Rust将在网络爬虫领域扮演更重要角色。
27 1
|
12天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全实践
【8月更文挑战第31天】在数字化浪潮的推动下,云计算服务成为企业和个人存储、处理数据的优选方案。然而,随之而来的网络安全挑战也日益严峻。本文将深入探讨云计算环境下的网络安全问题,通过分析云服务的架构和安全威胁,提供实用的安全策略和代码示例,旨在为读者呈现如何在享受云服务便利的同时,确保数据的安全性和完整性。
|
13天前
|
敏捷开发 测试技术 持续交付
软件测试中的自动化策略与实践云计算时代的网络安全挑战与对策
【8月更文挑战第30天】在软件开发的海洋中,自动化测试是一艘能够带领团队高效航行的帆船。本文将探讨如何搭建这艘帆船,从选择适合的自动化测试框架开始,到编写有效的测试脚本,再到持续集成的实施和测试结果的分析,我们将一步步揭开自动化测试的神秘面纱。你将学习到如何通过自动化测试来提升软件质量和开发效率,以及如何克服实施过程中的挑战。让我们一起启航,探索自动化测试的世界。
|
15天前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
39 2
|
5天前
|
安全 算法 网络安全
网络安全与信息安全:知识分享与实践
本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的知识。我们将分析常见的网络攻击方式,如病毒、木马和黑客攻击,并介绍如何通过防火墙、入侵检测系统等技术手段来防止这些攻击。同时,我们还将讨论密码学在保护数据安全中的重要性,包括对称加密、非对称加密和哈希函数等概念。最后,我们将强调提高个人和组织的安全意识的重要性,包括定期更新软件、使用强密码和多因素认证等措施。