MobileFirst Analytics 8.0旧数据清理及磁盘占用过高预防咨询
清理MobileFirst Analytics 8.0旧数据及预防磁盘占满方案
我之前帮团队处理过一模一样的MobileFirst Analytics 8.0磁盘占满问题,整理了一套实用的清理和预防方案,亲测有效:
一、立即清理已占用的磁盘空间
1. 使用MobileFirst CLI工具执行清理命令
这是官方推荐的最安全的清理方式,步骤很清晰:
- 先确保你已经安装了MobileFirst CLI,然后登录到你的服务器:
mfpdev login <server-url> -u <username> -p <password> - 接着执行清理命令,指定要保留的数据天数(比如保留最近30天):
mfpdev analytics clean --days 30
这个命令会自动删除超过指定天数的分析数据和对应的Elasticsearch索引,不用手动操作底层组件。
2. 手动清理Elasticsearch索引(CLI失效时备用)
如果CLI工具因为网络、权限等问题执行失败,可以直接操作底层的Elasticsearch:
- 先找到Analytics对应的Elasticsearch访问地址,通常是
http://<analytics-server>:9200 - 列出所有Analytics相关的索引(一般以
worklight_analytics_开头):curl -X GET http://<analytics-server>:9200/_cat/indices?v - 删除指定日期之前的索引,比如删除2023年全年的索引(假设索引命名格式为
worklight_analytics_YYYY.MM.DD):curl -X DELETE http://<analytics-server>:9200/worklight_analytics_2023.*
⚠️ 注意:删除前一定要确认索引的命名规则,千万不要误删近期的有效数据!
二、长期预防:配置自动数据保留策略
清理完旧数据后,必须配置自动清理规则,避免以后再次出现磁盘占满的情况:
1. 通过Analytics控制台配置自动清理
- 登录MobileFirst Analytics控制台(地址一般是
http://<analytics-server>:9080/analytics/console) - 进入Settings -> Data Retention页面
- 设置Retention Period(比如30天),勾选Automatically delete old data,保存后系统会定期自动清理过期数据。
2. 配置Elasticsearch索引生命周期管理(ILM)
如果你的Analytics使用的Elasticsearch支持ILM,可以创建更灵活的自动清理策略:
- 通过API创建一个生命周期策略(示例是保留30天数据后自动删除):
curl -X PUT http://<analytics-server>:9200/_ilm/policy/analytics_retention_policy -H "Content-Type: application/json" -d' { "policy": { "phases": { "delete": { "min_age": "30d", "actions": { "delete": {} } } } } }' - 将这个策略关联到Analytics的索引模板上,确保新生成的索引都会自动应用这个清理规则。
三、额外优化建议
- 定期监控磁盘使用:用服务器自带的工具(比如
df -h命令)或者Analytics控制台的System Health面板,及时发现磁盘占用异常。 - 调整日志级别:如果业务不需要太详细的分析日志,可以降低日志收集级别,减少数据生成量。
- 磁盘扩容:如果业务需要保留更长时间的数据,短期清理无法解决根本问题的话,可以考虑给Analytics服务器扩容磁盘空间。
内容的提问来源于stack exchange,提问作者Ying Zhao
相关产品推荐
相关产品推荐

