如何更改cloudera-scm-server默认日志路径?,
如何更改cloudera-scm-server日志目录
由于CM安装的所有的组件,路径默认是/var/lib或者是/var/log,如果系统盘太小的话,会一直有警告,看起来太烦了.
有两种方式解决:
1.直接选择抑制改告警
2. 在CM web ui所有能配置的/var/log 基本上我都修改了,甚至连 /tmp堆转储也都改了.
手动清理历史日志/var/log/.
上面是需要重启服务生效的.基本上能解决大部分的问题.
唯一不能通过web ui 配置log路径的那就是cm-server,下面就来尝试着修改下吧.
----------------------------------------------------------------------------------------------------------------------------------
以下操作需要有一定运维经验
1. 查看相关的环境
# whereis cloudera-scm-server
cloudera-scm-server: /etc/cloudera-scm-server
2. 查看路径下 的文件
ll /etc/cloudera-scm-server/
total 36
-rw------- 1 cloudera-scm cloudera-scm 436 May 24 10:52 db.properties
-rw------- 1 cloudera-scm cloudera-scm 757 Mar 15 01:45 db.properties.~1~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:14 db.properties.~2~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:14 db.properties.~3~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:15 db.properties.~4~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:16 db.properties.~5~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:16 db.properties.~6~
-rw------- 1 cloudera-scm cloudera-scm 432 Apr 28 00:18 db.properties.~7~
-rw-r--r-- 1 cloudera-scm cloudera-scm 3059 May 29 10:12 log4j.properties
发现log4j.properties,是不是很开心.
尝试修改 其中的 cmf.log.dir=/alidata1/log/cloudera-scm-server
mkdir /alidata1/log/cloudera-scm-server
chown cloudera-scm:cloudera-scm /alidata1/log/cloudera-scm-server
3.重启cloudera-scm-server
systemctl stop cloudera-scm-server.service
mv /var/log/cloudera-scm-server/* /alidata1/log/cloudera-scm-server/
systemctl start cloudera-scm-server.service
发现日志还是在/val/log/cloudera-scm-server路径下,what?那个log4j文件没生效.
[root@hzd-t-vbdl-02 ~]# systemctl status cloudera-scm-server.service
● cloudera-scm-server.service - Cloudera CM Server Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-05-29 10:33:23 CST; 8min ago
Main PID: 9868 (java)
CGroup: /system.slice/cloudera-scm-server.service
└─9868 /usr/java/jdk1.8.0_181-cloudera/bin/java -cp .:/usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:lib/* -server...
May 29 10:33:23 hzd-t-vbdl-02 systemd[1]: Started Cloudera CM Server Service.
May 29 10:33:23 hzd-t-vbdl-02 systemd[1]: Starting Cloudera CM Server Service...
May 29 10:33:23 hzd-t-vbdl-02 cm-server[9868]: JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
May 29 10:33:23 hzd-t-vbdl-02 cm-server[9868]: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
May 29 10:33:24 hzd-t-vbdl-02 cm-server[9868]: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'org.a...ation logging.
Hint: Some lines were ellipsized, use -l to show in full.
[root@hzd-t-vbdl-02 ~]#
什么情况日志不够清晰 ?再来一遍
[root@hzd-t-vbdl-02 ~]# systemctl status cloudera-scm-server.service -l
● cloudera-scm-server.service - Cloudera CM Server Service
Loaded: loaded (/usr/lib/systemd/system/cloudera-scm-server.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-05-29 10:33:23 CST; 8min ago
Main PID: 9868 (java)
CGroup: /system.slice/cloudera-scm-server.service
└─9868 /usr/java/jdk1.8.0_181-cloudera/bin/java -cp .:/usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:lib/* -server -Dlog4j.configuration=file:/etc/cloudera-scm-server/log4j.properties -Dfile.encoding=UTF-8 -Dcmf.root.logger=INFO,LOGFILE -Dcmf.log.dir=/var/log/cloudera-scm-server -Dcmf.log.file=cloudera-scm-server.log -Dcmf.jetty.threshhold=WARN -Dcmf.schema.dir=/opt/cloudera/cm/schema -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dpython.home=/opt/cloudera/cm/python -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+HeapDumpOnOutOfMemoryError -Xmx2G -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -XX:OnOutOfMemoryError=kill -9 %p com.cloudera.server.cmf.Main
May 29 10:33:23 hzd-t-vbdl-02 systemd[1]: Started Cloudera CM Server Service.
May 29 10:33:23 hzd-t-vbdl-02 systemd[1]: Starting Cloudera CM Server Service...
May 29 10:33:23 hzd-t-vbdl-02 cm-server[9868]: JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera
May 29 10:33:23 hzd-t-vbdl-02 cm-server[9868]: Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
May 29 10:33:24 hzd-t-vbdl-02 cm-server[9868]: ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'org.apache.logging.log4j.simplelog.StatusLogger.level' to TRACE to show Log4j2 internal initialization logging.
发现了吗?这个cmf.log.dir 是事先写死的,(⊙o⊙)…!
是时候表演真正的技术了!
查看启动程序入口:/usr/lib/systemd/system/cloudera-scm-server.service
[root@hzd-t-vbdl-02 ~]# more /usr/lib/systemd/system/cloudera-scm-server.service
[Unit]
Description=Cloudera CM Server Service
After=network-online.target
Wants=network-online.target
[Install]
WantedBy=multi-user.target
[Service]
User=cloudera-scm
Group=cloudera-scm
Type=simple
Environment=CLOUDERA_ROOT=/opt/cloudera
Environment=CMF_DEFAULTS=/etc/default/cloudera-scm-server
ExecStart=/opt/cloudera/cm/bin/cm-server
Restart=on-failure
StartLimitInterval=2min
StartLimitBurst=5
重点查看上面两个配置,一个是环境的配置,一个是启动的配置.
[root@hzd-t-vbdl-02 ~]# more /opt/cloudera/cm/bin/cm-server | grep log
export CMF_LOG4J_CONFIG="file:$CMF_CONF_DIR/log4j.properties"
# export CMF_LOG_DIR="${CMF_VAR:-/var}/log/$prog"
export CMF_LOG_DIR="${CMF_VAR:-/var}/log/$prog"
export CMF_LOGFILE="$prog.log"
CMF_OPTS="$CMF_OPTS -Dlog4j.configuration=${CMF_LOG4J_CONFIG}"
CMF_OPTS="$CMF_OPTS -Dcmf.root.logger=${CMF_ROOT_LOGGER:-INFO,CONSOLE}"
CMF_OPTS="$CMF_OPTS -Dcmf.log.dir=${CMF_LOG_DIR:-.}"
CMF_OPTS="$CMF_OPTS -Dcmf.log.file=${CMF_LOGFILE:-cmf-server.log}"
发现log了吧,^_^.
在来确认一下吧.
sh -xv /opt/cloudera/cm/bin/cm-server
基本上到此结束了,修改上面的/var --> /alidata1
然后重启cm server.