Gio*_*Mac 5 logging syslog systemd journald
我正在通过 systemd 运行 Java 应用程序:
[Unit]
Description=test service
[Service]
Type=simple
EnvironmentFile=/etc/sysconfig/testserver
WorkingDirectory=/opt/testserver
ExecStart=/usr/bin/java -jar /opt/testserver/test.jar
StandardOutput=syslog
StandardError=syslog
User=testserver
Group=testserver
SyslogIdentifier=testserver
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我想stdout
在/opt/testserver/stdout.log
和stderr
中/opt/testserver/stderr.log
-任何工作地点都可以接受(即,如果可以做到通过syslog
)。如果可能,我想避免在日志日志中至少记录其中之一。
谢谢...
我正在尝试使用以下 Logstash 来替换其 init.d 脚本。基本上,用 bash 包装它以提供 stdout 和 stderr 重定向。不确定这是否正是您想要的,或者想要使用(它不是太可怕,但显然不是 systemd 希望您这样做的方式),但我需要一些东西让它在 Elasticsearch 之后启动,但我不想我的团队注意到日志文件最终位置的任何不同之处,所以希望这能让我渡过难关,直到他们提供自己的文件之一:
[Unit]
Description=Logstash
After=elasticsearch.service
Requires=elasticsearch.service
[Service]
Type=simple
User=logstash
Group=logstash
ExecStart=/bin/bash -c 'exec /opt/logstash/bin/logstash agent \
-f /etc/logstash/conf.d \
-l /var/log/logstash/logstash.log \
>/var/log/logstash/logstash.stdout \
2>/var/log/logstash/logstash.err'
WorkingDirectory=/var/lib/logstash
LimitNICE=19
LimitNOFILE=16384
Restart=always
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
编辑:我刚刚意识到我可以/etc/systemd/system/logstash.service.d/after-es.conf
按如下方式创建,而不必重写他们的 init.d 脚本:
[Unit]
After=elasticsearch.service
Requires=elasticsearch.service
Run Code Online (Sandbox Code Playgroud)
哦,好吧,留下上面的内容以防万一有用。
归档时间: |
|
查看次数: |
3620 次 |
最近记录: |