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

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
对象存储 OSS,20GB 3个月
云服务器ECS,u1 2核4GB 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机器,添加角色权限


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

在机器控制台调用请求:http://100.100.100.200/latest/meta-data/ram/security-credentials/NewECSDeployRole,获取相应的token,并将返回的结果写入result.txt

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 小结

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

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
运维 Linux Windows
【计算巢】幻兽帕鲁服务器如何设置定时备份存档
计算巢针对幻兽帕鲁服务器,提供给了定时备份存档的功能,会在设定的频率下,定时将存档文件备份到目标文件夹下,有助于解决存档丢失和坏档的问题。
3111 1
|
2月前
|
监控 负载均衡 安全
幻兽帕鲁服务器搭建实践及优化经验分享
在多人在线游戏的世界里,一个稳定、高效的服务器是确保玩家获得流畅游戏体验的关键。最近,我亲自尝试了为“幻兽帕鲁”这款游戏搭建服务器,并在此过程中积累了一些宝贵的经验。今天,我就将这些经验分享给大家,希望能为同样热爱这款游戏的玩家们提供一些帮助。
83949 6
|
27天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
2月前
|
存储 弹性计算 对象存储
ECS快照问题之备份ECS快照失败如何解决
阿里云ECS用户可以创建的一个虚拟机实例或硬盘的数据备份,用于数据恢复和克隆新实例;本合集将指导用户如何有效地创建和管理ECS快照,以及解决快照过程中可能遇到的问题,确保数据的安全性和可靠性。
|
2天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
215 6
|
9天前
|
弹性计算 前端开发 JavaScript
高校学生在家实践ECS弹性云服务器
简单谈谈我这几周使用ECS弹性云服务器的体验感
|
19天前
|
SQL 存储 弹性计算
ECS备份问题之添加批量备份如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
19天前
|
存储 域名解析 弹性计算
ECS备份问题之HBR混合云备份如何解决
ECS(Elastic Compute Service,弹性计算服务)是云计算服务提供商提供的一种基础云服务,允许用户在云端获取和配置虚拟服务器。以下是ECS服务使用中的一些常见问题及其解答的合集:
|
24天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
21 0
|
1月前
|
弹性计算 算法 应用服务中间件
倚天使用|Nginx性能高27%,性价比1.5倍,基于阿里云倚天ECS的Web server实践
倚天710构建的ECS产品,基于云原生独立物理核、大cache,结合CIPU新架构,倚天ECS在Nginx场景下,具备强大的性能优势。相对典型x86,Http长连接场景性能收益27%,开启gzip压缩时性能收益达到74%。 同时阿里云G8y实例售价比G7实例低23%,是Web Server最佳选择。