我被困在公司束缚中,无法使用 rsyslog。配置已完全设置。
我需要运行一项服务来中继来自各种来源的日志,为此我使用 syslog-ng。
我在较旧的 ubuntu 系统上运行此程序,使用的是本地编译和打包的 syslog-ng 版本。如果不需要,我宁愿不编译。
问题:
首先,标准的 ubuntu 软件包是互斥的。您安装 rsyslog 并删除 syslog-ng。我通过使用第三方存储库并从中安装 syslog-ng 来解决这个问题。
其次,systemd/systemctl 中似乎有一些东西可以确保 rsyslog 和 syslog-ng 服务不会同时运行。
我怀疑他们正在争夺资源,可能是 /run/systemd/journal/syslog
欢迎提出有关如何解决此问题的建议!
答案1
看起来发生的事情是,一个 syslog 的 apt install 删除了另一个 syslog。
所以我做的是
sudo apt install syslog-ng-core
进而
sudo cp /usr/sbin/syslog-ng* /usr/local/sbin
sudo cp -r /usr/lib/syslog-ng /usr/local/lib/syslog-ng
最后
sudo mkdir /var/lib/syslog-sec
然后我修改/etc/defaults/syslog-ng
为
# Command line options to syslog-ng
SYSLOGNG_OPTS="--control /var/lib/syslog-sec/syslog-ng.ctl --module-path /usr/local/lib/syslog-ng/3.31 --persist-file /var/lib/syslog-sec/syslog-ng.persist --pidfile /var/lib/syslog-sec/syslog-ng.pid"
LD_LIBRARY_PATH="/usr/local/lib/syslog-ng"
这似乎有效,但现在还为时过早,如果我找到更多鱼钩,我会更新这个答案。
如果有人有更好的解决方案,我很想知道。
理想情况下,我想要一个可以控制安装路径的发行版。