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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 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 小结

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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
弹性计算 运维 云计算
云服务器 ECS产品使用问题之变成回滚服务实例,该如何解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
弹性计算 缓存 运维
云服务器 ECS产品使用问题之存档转移失败该如何解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
弹性计算 Linux 数据安全/隐私保护
云服务器 ECS产品使用问题之存档没了如何恢复
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
6月前
|
SQL 安全 测试技术
项目迁移到云服务器,如何做迁移测试?
项目迁移到云服务器,如何做迁移测试?
152 0
|
存储 弹性计算 关系型数据库
服务器数据恢复—阿里云ECS服务器数据恢复案例
云服务器数据恢复环境: 阿里云ECS网站服务器,linux操作系统+mysql数据库。 云服务器故障: 在执行数据库版本更新测试时,在生产库误执行了本来应该在测试库执行的sql脚本,导致生产库部分表被truncate,还有部分表内的少量数据被delete。该实例内数据表均采用innodb作为默认存储引擎。
服务器数据恢复—阿里云ECS服务器数据恢复案例
|
弹性计算 监控 安全
如何根据使用场景选择阿里云服务器实例,后期如何查看云服务器使用情况
很多以前没用过云服务器产品的新手用户在选购阿里云服务器时面对阿里云多达几十种的云服务器实例,往往不知道如何选择,这时候就需要我们根据我们的使用场景和官方指导资料来决定我们选择哪款实例规格的云服务器,云服务器购买之后,我们还需要随时了解云服务器的使用情况,特别是cpu、内存、带宽等使用情况是否有异常,从而决定我们是否需要升级云服务器配置等操作。
331 0
如何根据使用场景选择阿里云服务器实例,后期如何查看云服务器使用情况
|
Web App开发 弹性计算 数据管理
ECS数据管理实践-备份与恢复
本实验将首先指导用户在ECS中对已创建的数据盘进行分区并挂载到ECS上,从而可以使用数据盘进行文件存储;然后,用户创建ECS数据盘的快照,并使用快照进行磁盘的回滚。
|
弹性计算 运维 数据管理
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(4)
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(4)
118 0
|
Web App开发 弹性计算 运维
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(2)
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(2)
124 0
|
弹性计算 运维 数据管理
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(3)
《企业运维之弹性计算原理与实践》——第二章 ECS 基础入门——第二章(下)实验:ECS 数据管理实践-备份与恢复(3)
130 0
下一篇
无影云桌面