云服务器日志备份的两种思路实践

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,内容安全 1000 次 1年
日志服务 SLS,月写入数据量 50GB 1个月
简介: ## 1 背景最近在做Incountry产品的SRE工作,由于线上的vault audit日志较大,导致磁盘利用率不足,需要对vault日志进行备份后并在机器上删除。初步考虑通过OSS来备份日志,以实现对日志文件备份的需求。## 2 思路一:通过ECS挂载OSS实现日志备份参考文档:[通过云存储网关挂载OSS](https://help.aliyun.com/document_detail

1 背景

最近在做Incountry产品的SRE工作,由于线上的vault audit日志较大,导致磁盘利用率不足,需要对vault日志进行备份后并在机器上删除。初步考虑通过OSS来备份日志,以实现对日志文件备份的需求。

2 思路一:通过ECS挂载OSS实现日志备份

参考文档:通过云存储网关挂载OSS

2.1、开通云存储网关服务

开通地址:云存储网关服务

2.2、新建bucket

访问OSS管理控制台,控制台地址:https://oss.console.aliyun.com/bucket

点击“创建Bucket”按钮

这边的存储类型需要注意下,归档存储和冷归档存储的数据,都需要解冻,解冻有一定时间,如果希望能够实时下载日志的话,不选择这两种类型。

2.3、配置云存储网关

点击上述步骤创建好的bucket,选择“ECS挂载OSS”,并点击配置云存储网关。

填写网关名称,共享名称后下一步。

创建完成后,可以在列表中看到对应的云网关。

进入网关集群,并点击对应的id

点击高级设置,将忽略删除勾选上,这个配置勾选了之后,在ECS挂载了OSS之后,文件同步到OSS后,即使在ECS中删除了文件,OSS上仍然能够保存该文件。

2.4、ECS挂载OSS

登录云服务器ECS,找到实例,找到对应的机器,远程连接,登录ECS机器。

执行sudo su -切换root身份
根据对应的服务器挂在点,执行挂载命令:mount.nfs 192.168.0.125:/loying-test-vault-store logback/


执行完之后,会发现logback这个文件夹已经被挂载了。
在logback文件夹中新建文件、复制文件、删除文件,分别尝试,发现新建文件、复制文件后,OSS都会出现相应的文件。 当把新建的文件删除后,OSS中仍然存在该文件,符合预期。

2.5、成本

该方案中,设计配置云存储网关,云存储网关使用需要收费,收费情况如下:

考虑到成本原因,暂不考虑使用该方案。

3 思路二:通过ossutil实现日志备份

大致思路如下:
1、通过ossutil来实现日志文件上传至oss文件夹。帮助文档
2、通过ECS自带的云助手工具,实现定时执行机制。帮助文档

3.1 安装ossutil

1、运行以下命令下载ossutil。

wget https://gosspublic.alicdn.com/ossutil/1.7.14/ossutil64

2、运行以下命令修改文件执行权限。

chmod 755 ossutil64

3、使用交互式配置生成配置文件。

chmod 755 ossutil64

./ossutil64 config

4、根据提示设置配置文件路径,建议直接按回车使用默认配置文件的路径。根据提示分别设置Endpoint、AccessKey ID、AccessKey Secret和STSToken参数。

5、运行以下命令,验证是否已成功安装ossutil。如果屏幕中输出ossutil所有支持的命令,表明已成功安装ossutil。

/home/ecs-assist-user/ossutil64

3.2 通过ram role方式配置ossutil

3.1中的第4步,是直接根据主账号的AccessKey ID、AccessKey Secret进行配置,考虑到安全性问题,使用角色扮演的方式进行配置。具体步骤如下:
在ram中创建一个角色


给角色新增授权,授权oss权限。

找到对应的ECS机器,添加角色权限


搜索创建的角色,点击确定。

curl -o result.json http://100.100.100.200/latest/meta-data/ram/security-credentials/NewECSDeployRole


解析对应的json数据,并将相应的值通过非交互式的config命令格式,写入ossutil配置中去。如果机器未安装jq,需要提前安装jq:yum install jq

[root@i ecs-assist-user]# AccessKeyId=$(jq -r '.AccessKeyId'<result.json)
[root@i ecs-assist-user]# echo ${AccessKeyId}
STS.NTZ62FnAQxh9VLTB2CuDfpfor
[root@i ecs-assist-user]# AccessKeySecret=$(jq -r '.AccessKeySecret'<result.json)
[root@i ecs-assist-user]# SecurityToken=$(jq -r '.SecurityToken'<result.json)
[root@i ecs-assist-user]# ./ossutil64 config -e http://oss-cn-hangzhou-internal.aliyuncs.com -i ${AccessKeyId}  -k ${AccessKeySecret} -t ${SecurityToken}

3.3 通过云助手定时执行命令

ECS->运维与监控->发送命令/文件(云助手)->创建命令,可以设置定时执行,以下命令是按照实际的需求:通过ram role配置ossutil,按条件查找出文件后上传文件,并修改文件名为:hostname_原文件名。备份后,将7天前的文件进行删除处理。通过云助手每周二/周五的上午10点30分定时执行。

命令内容如下:

#!/bin/bash
curl -o result.json http://100.100.100.200/latest/meta-data/ram/security-credentials/VaultAuditLogArchives
AccessKeyId=$(jq -r '.AccessKeyId'<result.json)
AccessKeySecret=$(jq -r '.AccessKeySecret'<result.json)
SecurityToken=$(jq -r '.SecurityToken'<result.json)
hostName=$(hostname -f)
/home/ecs-assist-user/ossutil64 config -e http://oss-cn-shanghai-internal.aliyuncs.com -i ${AccessKeyId}  -k ${AccessKeySecret} -t ${SecurityToken}
find  /var/log/  -name "vault_audit.*z" | while read id 
do 
/home/ecs-assist-user/ossutil64 cp $id oss://vault-log-store/${hostName}_${id##*log/} -u
done
find /var/log/ -mtime +7  -name "vault_audit.log.*z" -exec rm -rf {} \;
rm result.json;

执行结果:

OSS上的备份结果:

4 小结

通过以上两个方案,可以实现线上日志的备份,我们根据自己业务的情况选择了方案二,并在线上进行了配置。如果大家有更好的方案,欢迎留言补充。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
647 56
|
存储 运维 开发工具
警惕日志采集失败的 6 大经典雷区:从本地管理反模式到 LoongCollector 标准实践
本文探讨了日志管理中的常见反模式及其潜在问题,强调科学的日志管理策略对系统可观测性的重要性。文中分析了6种反模式:copy truncate轮转导致的日志丢失或重复、NAS/OSS存储引发的采集不一致、多进程写入造成的日志混乱、创建文件空洞释放空间的风险、频繁覆盖写带来的数据完整性问题,以及使用vim编辑日志文件导致的重复采集。针对这些问题,文章提供了最佳实践建议,如使用create模式轮转日志、本地磁盘存储、单线程追加写入等方法,以降低日志采集风险,提升系统可靠性。最后总结指出,遵循这些实践可显著提高故障排查效率和系统性能。
975 21
|
1月前
|
弹性计算 运维 监控
免费的ECS备份重磅上线!100GiB 免费额度,全地域覆盖!
阿里云推出ECS文件备份基础版,全地域享100GiB免费额度,支持文件级增量备份,秒级恢复单个文件,低成本高效保护数据。适用于Web配置、代码等轻量备份场景,三步开启,零成本上手,为ECS实例提供开箱即用的数据安全保障。
260 11
|
10月前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
844 92
|
2月前
|
运维 监控 安全
EventLog Analyzer:高效的Web服务器日志监控与审计解决方案
ManageEngine EventLog Analyzer是一款企业级Web服务器日志监控与审计工具,支持Apache、IIS、Nginx等主流服务器,实现日志集中管理、实时威胁检测、合规报表生成及可视化分析,助力企业应对安全攻击与合规挑战,提升运维效率。
177 0
|
3月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
748 1
|
3月前
|
存储 安全 数据管理
服务器违规资源被删,数据定时备份OSS 云存储才是 “救命稻草”
在数字化时代,数据已成为企业与个人的核心资产。然而,服务器违规、硬件故障等问题频发,导致数据丢失、业务中断,甚至造成不可挽回的损失。为保障数据安全与业务连续性,定时备份至关重要。阿里云国际站OSS提供高效、可靠的云存储解决方案,支持自动定时备份,帮助用户轻松应对数据风险。本文详解OSS备份操作步骤与注意事项,助你为数据穿上“防护甲”,实现安全无忧存储。
|
6月前
|
弹性计算 NoSQL 数据库
阿里云服务器如何备份数据?
阿里云服务器数据备份有多种方法,用户可按需选择。主要方式包括:1)快照备份,创建云盘的时间点拷贝,支持定期备份与数据恢复;2)数据库备份DBS,适用于多种环境的数据库备份,涵盖本地及多云场景;3)云备份Cloud Backup,提供统一灾备平台,支持ECS整机、数据库、文件系统等全方位备份,保障数据安全。
|
7月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
351 28
|
7月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
229 22

热门文章

最新文章

下一篇
oss云网关配置