TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件安装

    • 常规&高可用
  • 版本专题

    • 更新说明
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Rocky系列
    • Ubuntu系列
  • 生产调优

    • 组件调优指南
    • 1v1指导调优
  • 支持&共建

    • 蓝图愿景
    • 技术支持
    • 合作共建
登陆
GitHub (opens new window)
  • 案例-Ambari重启失败

  • 案例-数据库连接问题

  • 案例-日志级别控制问题

    • 解读-Ambari3.0.0无法调整日志输出级别
    • 解决-临时处理日志级别不生效
    • 解决-源码级处理日志不生效
      • 步骤一:logback.xml 集成源码
      • 步骤二:修改 Assembly 聚合文件
        • 推荐 logback.xml 配置
  • 案例-找不到snappy-devel

  • SYS-Rocky
  • 案例-日志级别控制问题
JaneTTR
2025-05-25
目录

解决-源码级处理日志不生效

在实际大数据平台交付和维护中,推荐彻底根治日志输出问题,将 logback 日志体系直接纳入自定义编译流程。这种方式不仅适配所有新部署,还能避免后续升级补丁遗漏,是企业级场景中最“可靠”的做法。

# 步骤一:logback.xml 集成源码

首先,找到 Ambari 源码包的配置文件目录。 通常 logback.xml 应放置在如下路径:

ambari-server/conf/unix/logback.xml
1

将完整的 logback.xml 拷贝到该目录下内容在文章底部。

源码包内 logback.xml 放置位置

提示

这样处理后,每次重新编译、打包或升级 Ambari 时,都能确保新节点自动带上最新日志配置,无需人工额外操作。

# 步骤二:修改 Assembly 聚合文件

接下来,需要让 logback.xml 能随 rpm 包下发到生产节点。这就要修改 assembly 配置,让文件自动聚合进 rpm。

源码路径:

ambari-server/src/main/assemblies/server.xml
1

找到 server.xml 后,在 <file> 标签组内,在 log4j.properties 下方追加 logback.xml 文件聚合规则:

assembly 追加 logback.xml

追加内容如下:


<file>
    <fileMode>755</fileMode>
    <!--增加logback日志-->
    <source>conf/unix/logback.xml</source>
    <outputDirectory>/etc/ambari-server/conf</outputDirectory>
</file>
1
2
3
4
5
6
7

这样打包时,logback.xml 会和 log4j.properties 一起自动分发关键 到目标节点的 /etc/ambari-server/conf 目录,无需额外手动拷贝。

# 推荐 logback.xml 配置

这里直接给出一份生产可用的 logback.xml,可按需修改:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <!-- 日志路径变量 -->
    <property name="AMBARI_LOG_DIR" value="/var/log/ambari-server"/>
    <property name="AMBARI_LOG_FILE" value="${AMBARI_LOG_DIR}/ambari-server.log"/>
    <property name="CONFIG_CHANGES_FILE" value="${AMBARI_LOG_DIR}/ambari-config-changes.log"/>
    <property name="ALERTS_FILE" value="${AMBARI_LOG_DIR}/ambari-alerts.log"/>
    <property name="ECLIPSELINK_FILE" value="${AMBARI_LOG_DIR}/ambari-eclipselink.log"/>
    <property name="AUDIT_FILE" value="${AMBARI_LOG_DIR}/ambari-audit.log"/>
    <property name="DBCHECK_FILE" value="${AMBARI_LOG_DIR}/ambari-server-check-database.log"/>

    <!-- 主日志文件:每天一个文件,保留60天 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${AMBARI_LOG_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${AMBARI_LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>60</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{ISO8601} %-5level [%thread] %logger{36}:%line - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 配置变更日志:每天一个文件,保留30天 -->
    <appender name="CONFIGCHANGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${CONFIG_CHANGES_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${CONFIG_CHANGES_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{ISO8601} %-5level - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 告警日志:每天一个文件,保留30天 -->
    <appender name="ALERTS" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${ALERTS_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${ALERTS_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{ISO8601} %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 数据库检查日志:每天一个文件,保留30天 -->
    <appender name="DBCHECK" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${DBCHECK_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${DBCHECK_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%date{ISO8601} %-5level - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- EclipseLink 日志:每天一个文件,保留10天 -->
    <appender name="ECLIPSELINK" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${ECLIPSELINK_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${ECLIPSELINK_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>10</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 审计日志:每天一个文件,保留13天 -->
    <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${AUDIT_FILE}</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${AUDIT_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
            <maxHistory>13</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <!-- 主日志级别,默认只保留INFO及以上 -->
    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>

    <!-- 特殊分类日志分别单独输出 -->
    <logger name="configchange" level="INFO" additivity="false">
        <appender-ref ref="CONFIGCHANGE"/>
    </logger>
    <logger name="alerts" level="INFO" additivity="false">
        <appender-ref ref="ALERTS"/>
    </logger>
    <logger name="org.apache.ambari.server.checks.DatabaseConsistencyChecker" level="INFO" additivity="false">
        <appender-ref ref="DBCHECK"/>
    </logger>
    <logger name="org.apache.ambari.server.checks.DatabaseConsistencyCheckHelper" level="INFO" additivity="false">
        <appender-ref ref="DBCHECK"/>
    </logger>
    <logger name="eclipselink" level="INFO" additivity="false">
        <appender-ref ref="ECLIPSELINK"/>
    </logger>
    <logger name="audit" level="INFO" additivity="false">
        <appender-ref ref="AUDIT"/>
    </logger>

    <!-- Jetty、Jersey 相关日志只输出 WARN 及以上 -->
    <logger name="org.eclipse.jetty" level="WARN"/>
    <logger name="com.sun.jersey" level="WARN"/>
    <logger name="org.glassfish.jersey" level="WARN"/>
    <logger name="org.apache.hadoop.yarn.client" level="WARN"/>
    <logger name="org.apache.ambari.server.security.authorization" level="WARN"/>
    <logger name="org.apache.ambari.server.security.authorization.AuthorizationHelper" level="INFO"/>
    <logger name="org.apache.ambari.server.security.authorization.AmbariLdapBindAuthenticator" level="INFO"/>

    <!-- 如需调试,可把上面level设为DEBUG,但生产建议INFO/WARN -->
    <logger name="org.apache.ambari.server" level="INFO" additivity="true">
        <appender-ref ref="FILE"/>
    </logger>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#Ambari#源码编译#日志治理#logback#持久修复
解决-临时处理日志级别不生效
解决-HDFS报snappy-devel包缺失现象

← 解决-临时处理日志级别不生效 解决-HDFS报snappy-devel包缺失现象→

最近更新
01
bigtop-select 打包缺 compat 报错修复 deb
07-16
02
bigtop-select 打包缺 control 文件报错修复 deb
07-16
03
首次编译-环境初始化 必装
07-16
更多文章>
Theme by Vdoing | Copyright © 2017-2025 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式