OpenTSDB 2.4安装报FileNotFoundException: LOG_FILE_IS_UNDEFINED (Permission denied)错误

使用rpm包安装目前最新的OpenTSDB 2.4时,会在启动时报:

FileNotFoundException: LOG_FILE_IS_UNDEFINED (Permission denied)

经过排查,发现是由于OpenTSDB使用的logback配置文件/usr/share/opentsdb/etc/opentsdb/logback.xml中存在配置错误,文件中使用到的两个变量${LOG_FILE}${QUERY_LOG}都没有被赋值或使用实际值进行替换,导致OpenTSDB在启动时由于找不到日志文件的存放位置而使得日志输出失败,进而导致启动失败。

这种明显的错误是不应该出现的,不知道是否是rmp包本身的问题还是发布的2.4版本本身就有这个bug。找到问题的原因后,修复方法就简单了,我们可以将logback.xml文件中所有的${LOG_FILE}替换成/var/log/opentsdb/opentsdb.log,将所有的${QUERY_LOG}替换成/var/log/opentsdb/opentsdb-query.log

以下给出一份参考配置,可以直接覆盖原始文件:


<configuration>
  
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
        %d{ISO8601} %-5level [%thread] %logger{0}: %msg%n
      pattern>
    encoder>
  appender>
  
  
  <appender name="CYCLIC" class="ch.qos.logback.core.read.CyclicBufferAppender">
    <MaxSize>1024MaxSize>
  appender>
  
  
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/opentsdb/opentsdb.logfile>
    <append>trueappend>
    
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>/var/log/opentsdb/opentsdb.log.%ifileNamePattern>
      <minIndex>1minIndex>
      <maxIndex>3maxIndex>
    rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>128MBmaxFileSize>
    triggeringPolicy>

    <encoder>
      <pattern>%d{HH:mm:ss.SSS} %-5level [%logger{0}.%M] - %msg%npattern>
    encoder>
  appender>
  
  
  <appender name="QUERY_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/opentsdb/opentsdb-query.logfile>
    <append>trueappend>

    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>/var/log/opentsdb/opentsdb-query.log.%ifileNamePattern>
        <minIndex>1minIndex>
        <maxIndex>4maxIndex>
    rollingPolicy>

    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>128MBmaxFileSize>
    triggeringPolicy>
    <encoder>
        <pattern>%date{ISO8601} [%logger.%M] %msg%npattern>
    encoder>
  appender>

  
  <logger name="QueryLog" level="OFF" additivity="false">
    <appender-ref ref="QUERY_LOG"/>
  logger>
  <logger name="org.apache.zookeeper" level="INFO"/>
  <logger name="org.hbase.async" level="INFO"/>
  <logger name="com.stumbleupon.async" level="INFO"/>
  
  
  <root level="INFO">
    
    <appender-ref ref="CYCLIC"/>
    <appender-ref ref="FILE"/>
  root>
configuration>

重磅推荐:博主历时三年倾注大量心血创作的《大数据平台架构与原型实现:数据中台建设实战》一书已由知名IT图书品牌电子工业出版社博文视点出版发行,真诚推荐给每一位读者!点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,扫码进入京东手机购书页面!

在这里插入图片描述

你可能感兴趣的:(大数据专题,Linux与Shell编程,opentsdb,2.4,LOG_FILE,UNDEFINED,Permission)