# 日志数据分析
# 示例
以下为接入示例的hive日志接入大数据平台示例文件文件示例
# 本内容你将获得
- 日志接入数据中台进行分析采集
- 日志的定时清理和迁移备份
- 集成自动化运维能力集成
# 使用场景
ES这里集成的主要目标是为了日志的采集监控,存储空间和数据分析能力这里并不做太多的 处理,我们建议每个服务有自己的职责,数据分析采用数据中台组件进行分析管理,包括模型和维度的管理,数据的分析
# 接入配置
这里主要分几部分,主要从备份要求、运维自动化、数据导入几个角度,数据分析此为数据治理章节, 这里不做过多的描述
# 数据备份
这里的备份主要指的是导入es中,一般日志数据建议是保留6个月(等保要求),然后导入数据仓库中,导入脚本如下
# 待补充脚本
# 运维自动化
这里主要指的是定时的备份管理,这里集成jenkins+ansible+dingtalk的集成配置能力
Jenkinsfile的配置
pipeline {
agent any
environment {
// 构建参数
PROJECT_NAME = 'elasticsearch-watcher-backup-test'
PROJECT_DESC = '日志导入应用链接状态巡检'
PRO_VERSION = '2.1.3-Alpha'
// ansible-playbook配置
INVENTORY_YML = "/hosts/hosts.yml"
ANSIBLE_PLAYBOOK = "/ansible/elasticsearch-watcher-backup-test.yml"
// 通知
NOTICE = "dingtalk"
DINGTALK_ROBOT = "alinesno-operation-dingtalk-robot"
}
// 每天晚上22点执行1次导入
triggers {
cron('0 22 * * *')
}
options {
buildDiscarder(logRotator(numToKeepStr: '2', artifactNumToKeepStr: '7', daysToKeepStr: '5'))
}
stages {
stage('发布新的脚本') {
steps {
sh label: '', script: '''
export ANSIBLE_CALLBACK_WHITELIST=json
export ANSIBLE_STDOUT_CALLBACK=json
ansible-playbook \
-i ${WORKSPACE}${INVENTORY_YML} \
${WORKSPACE}${ANSIBLE_PLAYBOOK} > ${WORKSPACE}/url_status.json
cat ${WORKSPACE}/url_status.json
'''
}
}
stage('发送报告到监控中心') {
steps {
script {
AJAX_RESULT_RESPONSE = sh (
script: 'curl -F "file=@${WORKSPACE}/url_status.json" -X POST "http://alinesno-transfer.admin.beta.linesno.com/api/v2/inspect"' ,
returnStdout: true
).trim()
echo "提交到报告中心结果: ${AJAX_RESULT_RESPONSE}"
}
}
}
}
// 发送结果通知
post {
failure {
dingtalk (
robot: "${env.DINGTALK_ROBOT}",
type:'ACTION_CARD',
atAll: false,
title: "日志导入应用链接检测巡检:${env.JOB_NAME}",
text: [
"### [${env.JOB_NAME}](${env.JOB_URL}) ",
'---',
"- 描述:${PROJECT_DESC}" ,
"- 巡检时间:${currentBuild.timeInMillis}" ,
"- 提交报告中心:${AJAX_RESULT_RESPONSE}" ,
"- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
'- 状态:<font color=#EE0000 >失败</font>',
"- 持续时间:${currentBuild.durationString}".split("and counting")[0],
"- 执行人:${currentBuild.buildCauses.shortDescription}",
]
)
}
success {
dingtalk (
robot: "${env.DINGTALK_ROBOT}",
type:'ACTION_CARD',
atAll: false,
title: "日志导入应用链接检测巡检:${env.JOB_NAME}",
text: [
"### [${env.JOB_NAME}](${env.JOB_URL}) ",
'---',
"- 描述:${PROJECT_DESC}" ,
"- 巡检时间:${currentBuild.timeInMillis}" ,
"- 提交报告中心:${AJAX_RESULT_RESPONSE}" ,
"- 任务:[${currentBuild.displayName}](${env.BUILD_URL})",
'- 状态:<font color=#005bd4 >成功</font>',
"- 持续时间:${currentBuild.durationString}".split("and counting")[0],
"- 执行人:${currentBuild.buildCauses.shortDescription}",
]
)
}
}
}
ansible的yaml配置
# 待补充脚本
集成之后的效果配置效果,有可视化的平台和定时处理,同时结果预警通知。