На новом экземпляре в AWS Ubuntu 18.04 я установил tomcat9 через Кв. Я заменяю 14,04 установок Ubuntu, куда я выполнял tomcat7. Из-за природы моего приложения, мне смонтировали очень большой диск под/data/ebs1. На этом диске I имеют, устанавливают папку для корпуса очень большого набора журналов кота.
/data/ebs1/tomcat-logs
Получение входа переехало сюда, дает мне головную боль. Кажется, что tomcat9 настраивается для входа к системному журналу. Поэтому терпите меня, поскольку я пытаюсь спуститься по кроличьей норе конфигураций здесь.
Вот мой/etc/systemd/system/tomcat9.service
#
# Systemd unit file for Apache Tomcat
#
[Unit]
Description=Apache Tomcat 9 Web Application Server
Documentation=https://tomcat.apache.org/tomcat-9.0-doc/index.html
After=network.target
[Service]
# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat9"
Environment="CATALINA_BASE=/var/lib/tomcat9"
Environment="CATALINA_TMPDIR=/tmp"
Environment="JAVA_OPTS=-Djava.awt.headless=true"
EnvironmentFile=-/etc/default/tomcat9
# Lifecycle
Type=simple
ExecStartPre=+/usr/libexec/tomcat9/tomcat-update-policy.sh
ExecStart=/bin/sh /usr/libexec/tomcat9/tomcat-start.sh
SuccessExitStatus=143
Restart=on-abort
# Logging
SyslogIdentifier=tomcat9
# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
LogsDirectory=tomcat9
LogsDirectoryMode=750
CacheDirectory=tomcat9
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/etc/tomcat9/Catalina/
ReadWritePaths=/var/lib/tomcat9/webapps/
ReadWritePaths=/data/ebs1/
[Install]
WantedBy=multi-user.target
Единственная вещь, которую я изменил здесь, была мной добавленный data/ebs1/
к списку ReadWritePaths. Этот файл обрисовывает в общих чертах SyslogIdentifier tomcat9
.
И существует пользовательский обработчик, настроенный для tomcat9 в/etc/rsyslog.d/tomcat9.conf
# Send Tomcat messages to catalina.out when using systemd
$template TomcatFormat,"[%timegenerated:::date-year%-%timegenerated:::date-month%-%timegenerated:::date-day% %timegenerated:::date-hour%:%timegenerated:::date-minute%:%timegenerated:::date-second%] [%syslogseverity-text%]%msg%\n"
:programname, startswith, "tomcat9" {
/data/ebs1/tomcat-logs/catalina.out;TomcatFormat
stop
}
Я изменил это от/var/log/tomcat9 до/data/ebs1/tomcat-logs.
Таким образом, теперь, когда я иду для взгляда внутри/data/ebs1/tomcat-logs, я вижу, что catalina добавил метку даты к файлам журнала как catalina.2020-03-25.log
Но никакой catalina.out. И catalina установил метку даты, файл журнала не содержит все. Таким образом, часть входа идет туда, часть входа все еще идет в системный журнал. Я надеялся заставить ВЕСЬ вход переходить к моему catalina.out. Я не могу даже выяснить, кто ответственен за создание catalina файлов с меткой даты. Системный журнал? Tomcat? Мои заботы - то, что, если мои журналы все еще идут в/var/log/syslog, я собираюсь заполнить свой диск быстро.
Спасибо!
Хорошо так оказывается конфигурациями, которые я отправил, были на самом деле, корректен. Но у меня было несколько вещей, идущих не так, как надо для меня.
journalctl -u rsyslog
показанный, что rsyslog не имел полномочий записи к новому catalina.out. adm
была группа на папке (и к счастью системный журнал был в той группе также). Добавление полномочий записи группы решило это.
Таким образом, я все еще становился произведенным в/var/log/syslog даже при том, что/etc/rsyslog.d/tomcat9.conf имел "остановку" в нем. То, что я не понял, - то, что/etc/rsyslog.conf загружает файлы конфигурации из/etc/rsyslog.d/в порядке имени. Содержание/etc/rsyslog.d/было похоже на это:
20-ufw.conf
21-cloudinit.conf
50-default.conf
tomcat9.conf
Я просто переименовал файл для прибытия перед "значением по умолчанию", и все было счастливо. Ничто больше не входит в систему/var/log/syslog!
20-ufw.conf
21-cloudinit.conf
30-tomcat9.conf
50-default.conf
Так или иначе. High-five-self.