vCenter 7:Catalina 日志正在归档,tomcat-users.xml 丢失?

vCenter 7:Catalina 日志正在归档,tomcat-users.xml 丢失?

我们在 vCenter 服务器上收到错误,提示日志磁盘空间不足。根据VMWare 知识库我们检查了哪些东西占用了空间。我们发现了大量名为“catalina_[DATE].log”的日志文件,大小为 11mb,可以追溯到近一年前。

我检查了日志的内容,每隔 10 分钟就会出现相同的错误消息:

2021-04-12T23:59:53.056Z WARN org.apache.catalina.users.MemoryUserDatabase Failed to close [conf/tomcat-users.xml]
java.io.FileNotFoundException: /usr/lib/vmware-sso/vmware-sts/conf/tomcat-users.xml (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
    at org.apache.catalina.users.MemoryUserDatabase.backgroundProcess(MemoryUserDatabase.java:700)
    at org.apache.catalina.realm.UserDatabaseRealm.backgroundProcess(UserDatabaseRealm.java:160)
    at org.apache.catalina.realm.CombinedRealm.backgroundProcess(CombinedRealm.java:308)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1145)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1381)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1353)
    at java.lang.Thread.run(Thread.java:748)

VMWare 只是告诉我删除文件并扩大我的日志磁盘,我照做了。但它仍然困扰着我,不知道发生了什么,到目前为止,我还没有在网上找到任何与 vCenter 相关的东西。

有人知道这里发生了什么,以及如何解决此错误吗?我知道有很多方法可以忽略它,也许忽略它是安全的,但我只想知道错误本身是否可以修复。

答案1

正如消息所述,您的 Tomcat 安装缺少一个conf/tomcat-users.xml文件。该文件包含 Tomcat 身份验证使用的组和用户。默认情况下,会定期监视和重新加载此文件。

因此您需要:

  • 要么恢复文件默认内容
  • 或者,如果您根本不打算使用身份验证,请删除类型<Resource>UserDatabase所有类型的领域UserDatabaseRealm(连同它LockoutRealm嵌套在其中)来自您的server.xml配置文件。

答案2

tomcat-users.xml 是一个默认配置文件,通常不使用,除非您在其控制台(常规命令行)上专门激活和管理 tomcat 访问创建用户。

在 redhat 服务器中,此文件的丢失通常是在升级 tomcat 时发生的,纠正此问题的最简单方法是从 tomcat 二进制文件中复制 tomcat-users.xml 并将其粘贴到您的安装位置(在您的情况下为 /usr/lib/vmware-sso/vmware-sts/conf/tomcat-users.xml)。

一旦文件被复制,您不需要做任何其他事情,它会在几秒钟后“重新加载”该文件,错误就会消失。

因此,只需在类似于此的位置(二进制文件)中查找文件并将其复制到 vCenter conf/ 文件夹中即可。如果您找到 vCenter 安装的备份文件夹并从中获取相同的文件,那就更好了:

[root@redhatlab apache-tomcat-9.0.45-src]# cd conf/
[root@redhatlab conf]# ll
total 232
-rw-r--r--. 1 root root  12873 Mar 30 10:29 catalina.policy
-rw-r--r--. 1 root root   7262 Mar 30 10:29 catalina.properties
-rw-r--r--. 1 root root   1400 Mar 30 10:29 context.xml
-rw-r--r--. 1 root root   1149 Mar 30 10:29 jaspic-providers.xml
-rw-r--r--. 1 root root   2313 Mar 30 10:29 jaspic-providers.xsd
-rw-r--r--. 1 root root   4144 Mar 30 10:29 logging.properties
-rw-r--r--. 1 root root   7588 Mar 30 10:29 server.xml
-rw-r--r--. 1 root root   2164 Mar 30 10:29 tomcat-users.xml
-rw-r--r--. 1 root root   2558 Mar 30 10:29 tomcat-users.xsd
-rw-r--r--. 1 root root 172359 Mar 30 10:29 web.xml
[root@redhatlab conf]# pwd
/root/apache-tomcat-9.0.45-src/conf
[root@redhatlab conf]# 

干杯

答案3

问题显然是 vCenter 中的一个错误 - 我刚刚将所有实例更新到版本 7.0.0.10700,现在日志条目不再出现。 tomcat conf 文件仍然丢失,但看起来这个文件是不需要的,问题出在其他地方。

相关内容