标签: syslog

rsyslog:如何将来自所有远程机器的消息定向到一个文件?

我们有一个系统日志服务器,我们所有的服务器都记录到它。

我们希望为所有尚未为其配置规则的远程消息采用一种“包罗万象”的滴灌规则。

有谁知道如何做到这一点?

linux logging syslog rsyslog

5
推荐指数
1
解决办法
2万
查看次数

使用不同计划在 RHEL 上轮换 syslog 日志的最佳实践?

操作系统:运行 RHEL 5.6。

情况:我需要按照与其余 syslog 日志不同的时间表轮换 /var/log/messagees。

默认情况下,syslog 日志根据 /etc/logrotate.conf 和 /etc/logrotate.d/syslog 配置文件每周轮换一次。

如果您查看 /etc/logrotate.d/syslog,您会发现所有日志都有一个 logrotate 配置块。如果我希望 /var/log/messages 以不同的时间表轮换,我需要为它创建一个单独的配置块。这将导致重新启动 syslogd 两次(基于复制现有配置)。

问题:有没有办法按照与其他 syslog 日志不同的计划轮换 /var/log/messages,而不必将 HUP 发送到 syslogd 两次?或者这甚至重要吗?这里的最佳做法是什么?

linux redhat syslog best-practices

5
推荐指数
1
解决办法
4333
查看次数

Syslog 产生数百行

我最近被“提升”为实验室管理员,因为我在 linux 方面拥有最多的经验。我的日志检查不断向我发送来自我的syslog文件的数百行电子邮件。它会不断重复,每次都有细微的变化。我不知道它想告诉我什么。有任何想法吗?这是一个重复的片段:

Aug 23 15:02:30 157-london kernel: [8747161.509412] ------------[ cut here ]------------
Aug 23 15:02:30 157-london kernel: [8747161.509416] WARNING: at /build/buildd-linux-2.6_2.6.32-45-amd64-FcX7RM/linux-2.6-2.6.32/debian/build/source_amd64_none/fs/fs-writeback.c:588 writeback_inodes_wb+0x36b/0x4ff()
Aug 23 15:02:30 157-london kernel: [8747161.509419] Hardware name: Precision WorkStation 380    
Aug 23 15:02:30 157-london kernel: [8747161.509421] Modules linked in: nls_utf8 cifs xt_multiport nfsd nfs lockd fscache nfs_acl auth_rpcgss sunrpc xt_tcpudp iptable_filter ip_tables x_tables ext3 jbd mbcache raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcpy async_tx quota_v2 quota_tree firewire_sbp2 loop md_mod nouveau ttm i2c_i801 drm_kms_helper drm …
Run Code Online (Sandbox Code Playgroud)

syslog debian-squeeze

5
推荐指数
1
解决办法
293
查看次数

rsyslog 中对 InputFileName 的通配符支持?

我们有名称与特定模式匹配但经常更改的日志文件。有没有办法通过 InputFileName 为 rsyslog 指定通配符或模式?

例子:

输入文件名:/path/to/logs/*_error.log

使用上面的例子会导致:

9351.070404487:7fd07e9be700:strm 0x7fd070004260:打开错误2,文件'/path/to/logs/*_error.log':没有那个文件或目录

有没有办法为 rsyslog 指定要包含的文件模式,以便包含与模式匹配的所有日志文件?

log-files logging syslog rsyslog

5
推荐指数
2
解决办法
1万
查看次数

如何配置 rsyslog 以在没有太多延迟的情况下登录 PostgreSQL?

我正在尝试在 Debian 机器上配置 RSyslog 以将所有内容都记录到 PostgreSQL,同时还像往常一样在磁盘上记录。

我正在使用一个非常普通的 Debian 配置,并在阅读了http://www.rsyslog.com/doc/rsyslog_pgsql.html和http://www.rsyslog.com/doc/rsyslog_high_database_rate 上的文档后激活了相关的配置指令html的。

它似乎工作,但只有当我停止 RSyslog 时,消息才会写入磁盘或发送到 PostgreSQL,就好像它缓冲了所有内容直到停止命令并在关闭之前将所有内容写入内存中。

虽然我可能不会丢失任何消息,但它不是很方便,因为它引入了很多延迟(我不知道它在关闭之前是否甚至转储了任何东西?),有没有办法减少它,所以我可以在正常情况(服务器不忙),几乎是实时日志记录?

这是我当前的配置文件:

$ModLoad imuxsock
$ModLoad imklog

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022

$WorkDirectory /var/spool/rsyslog
$IncludeConfig /etc/rsyslog.d/*.conf

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
daemon.*            -/var/log/daemon.log
kern.*              -/var/log/kern.log
lpr.*               -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log
mail.info           -/var/log/mail.info
mail.warn           -/var/log/mail.warn
mail.err            /var/log/mail.err
news.crit           /var/log/news/news.crit
news.err            /var/log/news/news.err
news.notice         -/var/log/news/news.notice
*.=debug;auth,authpriv.none;news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;auth,authpriv.none;cron,daemon.none;mail,news.none      -/var/log/messages
*.emerg             :omusrmsg:*
daemon.*;mail.*;news.err;*.=debug;*.=info;*.=notice;*.=warn   |/dev/xconsole

$ModLoad ompgsql
*.* :ompgsql:localhost,syslog,syslog,syslog …
Run Code Online (Sandbox Code Playgroud)

postgresql debian logging syslog rsyslog

5
推荐指数
1
解决办法
8566
查看次数

你如何在 syslog-ng 中使用 patterndb 变量?

我想解析一些自定义(网络设备)系统日志文件来创建我自己的格式化输出。

由于我是 syslog-ng 和 patterndb 的新手,我一直在尝试使用文档构建一个示例 - 到目前为止我的工作在这里:https : //gist.github.com/linickx/8002981

在示例中,我想读取 syslog 文件 (testfile.log):

Accepted password for sampleuser from 10.50.0.247 port 42156 ssh2
Accepted password for user from 10.51.0.27 port 4256 ssh2
Run Code Online (Sandbox Code Playgroud)

并只输出用户名和 IP 地址的列表,例如:

sampleuser; 10.50.0.247;
user; 10.51.0.27;
Run Code Online (Sandbox Code Playgroud)

为了解析日志文件,我创建了以下模式数据库(example.xml):

<patterndb version='4' pub_date='2010-10-17'>
    <ruleset name='ssh' id='123456678'>
        <pattern>ssh</pattern>
            <rules>
                <rule provider='me' id='182437592347598' class='system'>
                    <patterns>
                        <pattern>Accepted @ESTRING:SSH.AUTH_METHOD: @for @ESTRING:SSH_USERNAME: @from @ESTRING:SSH_CLIENT_ADDRESS: @port @NUMBER:SSH_PORT_NUMBER:@ ssh2</pattern>
                    </patterns>
                    <examples>
                        <example>
                            <test_message program="ssh">Accepted password for sampleuser from 10.50.0.247 port 42156 ssh2</test_message>
                            <test_values>
                                <test_value …
Run Code Online (Sandbox Code Playgroud)

syslog syslog-ng

5
推荐指数
0
解决办法
1290
查看次数

尽管调试的日志优先级(ubuntu 13.04 和 mint 16)在 syslog 中找不到新贵日志

我已将新贵日志级别设置为“调试”

sudo initctl log-priority debug
Run Code Online (Sandbox Code Playgroud)

但我仍然看不到任何东西/var/log/syslog。

sudo initctl emit hello # no log
sudo initctl start my-broken-service # still no log
Run Code Online (Sandbox Code Playgroud)

我检查了rsyslog配置(在/etc/rsyslog.d/50-default.conf),一切似乎都很好:

 *.*;auth,authpriv.none     -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)

记录工作

 logger hello # prints hello in /var/log/syslog
Run Code Online (Sandbox Code Playgroud)

我正在运行 ubuntu 13.04 和 mint 16,结果是一样的。

我想检查 grub 中的 upstart 选项,但在 grub 的配置中找不到与 upstart 匹配的行。

任何的想法?


编辑:此问题也发生在 Ubuntu 13.10 上。在 Ubuntu 12.04 上,日志消息显示在/var/log/syslog. 在 Ask Ubuntu 上看到这个问题。

ubuntu logging syslog upstart linuxmint

5
推荐指数
1
解决办法
3012
查看次数

/dev/udp 和 netcat 的区别

我有一个 syslog 服务器localhost:514作为 UDP监听,并想在该端口上向它写入消息。(使用 Ubuntu 14.04)

如果我从 bash 运行这些命令中的任何一个,它会每 2 秒将日期打印到 syslog

# Using netcat
while true; do sleep 2; date; done | nc -u localhost 514

# Using /dev/udp
while true; do sleep 2; date; done > /dev/udp/localhost/514
Run Code Online (Sandbox Code Playgroud)

现在只是为了测试一些东西,我杀死了系统日志服务器,然后在几秒钟后启动它。

当 syslog 进程停止时,该/dev/udp命令每 2 秒向控制台打印一条错误消息,因此它识别出没有localhost:514可写入的内容。

date: write error: Connection refused
Run Code Online (Sandbox Code Playgroud)

一旦 syslog 返回,这些连接被拒绝的消息就会停止,并继续将日期写入 syslog。这正如预期的那样。

但是 netcat 命令不会这样做。当 syslog 进程停止时,它不会将任何输出打印到控制台。当 syslog 返回时,它不会继续将日期写入 syslog。

为什么重新启动 syslog 时 netcat 不会继续写入 localhost:514?我怎样才能让 netcat 像/dev/udp这个例子中那样表现?

networking syslog udp netcat rsyslog

5
推荐指数
1
解决办法
3009
查看次数

使用systemd分离java stdout和stderr并且不填写日志

我正在通过 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)。如果可能,我想避免在日志日志中至少记录其中之一。

谢谢...

logging syslog systemd journald

5
推荐指数
1
解决办法
3620
查看次数

Auth.log 中的随机 SSH 条目已过期

在 Rackspace 运行 Ubuntu Trusty 14.04.1 LTS 服务器,但最近在运行 bash 更新后,然后重新启动 xen 主机漏洞,我遇到了以下奇怪的问题。

一些随机的 auth.log 条目弹出了过时的同步,例如:

Oct 14 12:12:10 myserver sshd[2097]: pam_unix(sshd:session): session closed for user
Oct 13 12:58:30 myserver sshd[2522]: Failed password for foo from 21.21.21.21 port 1490 ssh2
Oct 14 12:21:28 myserver sshd[3389]: Accepted password for bar from 22.22.22.22 port 61173 ssh2
Run Code Online (Sandbox Code Playgroud)

我也有一个单独的 cron.log 正在运行,(我更改了 rsyslog 的配置)但那里也有随机过时的同步条目,例如:

Oct 14 07:11:01 myserver CRON[32099]: (root) CMD
Oct 13 03:16:01 myserver CRON[32226]: (root) CMD
Oct 14 07:12:01 myserver CRON[32226]: (root) CMD
Run Code Online (Sandbox Code Playgroud)

编辑添加: …

ubuntu ssh syslog rsyslog

5
推荐指数
1
解决办法
1521
查看次数