日志分类存储使用说明
背景
随着苍穹业务不断增长,苍穹系统每天产生了巨大的日志数据量,日志的存储成本不断提高。 如何在保障能够通过日志快速排查问题的前提下,有效降低存储成本成为各个大客户的难题。
适用版本
金蝶云苍穹V5.0.011及以上
应用场景
解决日志统一存在一个日志库客户无法根据日志重要程度清理不重要日志的痛点,日志分类存储使客户有效降低日志存储成本,提升日志查询性能。(例如:ERROR级日志会比INFO级重要,量非常大时先清理INFO级日志,ERROR级日志保留时间更长。)整个日志分类存储方案大概分为以下3三个部分:
分类存储:logstash中不同类别日志配置存储到不同的Elasticsearch日志存储库。
分类查询:monitor中选择不同日志存储库查询日志。
分类清理:ElasticSearch中对不同分类日志按不同的策略进行清理。
使用案例
案例说明:将苍穹Error级别日志与其他级别日志分开存储到不同的ElasticSearch索引进行存储,通过monitor选择不同日志库进行查询,Elastisearch中设置Error级别日志保留最近7天日志,其他级别日志只保留最近3天的日志。
详细操作步骤如下:
a.logstash配置output将ERROR级别日志与其他级别日志分别输出到不同的ElasticSearch索引。
output {
if [level] == "ERROR" {
elasticsearch {
action => "index"
hosts => ["http://ip:port"]
index => "basecloud-log-error-%{+yyyy-MM-dd}"
ssl => "***"
user => "***"
password => "***"
keystore => "***"
keystore_password => "***"
}
}
if [level] in ["INFO","WARN","DEBUG"] {
elasticsearch {
action => "index"
hosts => ["http://ip:port"]
index => "basecloud-log-other-%{+yyyy-MM-dd}"
ssl => "***"
user => "***"
password => "***"
keystore => "***"
keystore_password => "***"
}
}
}
b.MC配置日志查询索引:key值为:monitor.es.config value配置为如下json串,其中index需要配置为第一步配置的前缀(name+number+url必填,其他参数按需配置)。
[{
"name": "其他日志库",
"number": "Other",
"url": "http://ip:port",
"index":"basecloud-log-other-",
"us": "***",
"pp": "***",
"sslEnable":***,
"certificatePath":"***",
"certificatePP":"***"
},
{
"name": "Error日志库",
"number": "Error",
"url": "http://ip:port",
"index":"basecloud-log-error-",
"us": "***",
"pp": "***",
"sslEnable":***,
"certificatePath":"***",
"certificatePP":"***"
}]
c.Monito中查询日志时,通过日志库下拉框选择不同日志库进行查询。
d.Elasticsearch中配置日志清理脚本,根据索引名称配置不同的清理策略。
#!/bin/bash
#"INFO","WARN","DEBUG"级别日志保留3天
curl -k -u ***:*** -XDELETE http://ip:port/basecloud-log-other-$(date +\%Y-\%m-\%d -d "3 days ago")
#"ERROR" 级别日志保留7天
curl -k -u ***:*** -XDELETE http://ip:port/basecloud-log-error-$(date +\%Y-\%m-\%d -d "7 days ago")
日志分类存储使用说明
本文2024-09-23 00:28:05发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-139652.html