标签: syslog

如何阻止内核消息充斥我的控制台?

我正在使用 Centos 6,rsyslog 日志记录。控制台充斥着内核消息。

  • Klogd 没有运行(我正在使用 rsyslog)
  • Rsyslog 配置不会将任何内容定向到控制台
  • 甚至尝试完全停止 rsyslog

仍然有一些东西充斥着我的控制台,内核日志消息。它是什么以及如何让它停止?

更新:这些是内核(硬件、iptables 等)生成的消息,从 出去的东西/proc/kmsg,像这样:

Shorewall:pub2loc:DROP:IN=br0 OUT= MAC=xxx SRC=xxx DST=xxx LEN=60 TOS=0x00 PREC=0x00 TTL=128 ID=15731 DF PROTO=TCP SPT=63767 DPT=3493 WINDOW=8192 RES= 0x00 SYN URGP=0

linux centos console syslog

51
推荐指数
5
解决办法
15万
查看次数

Rsyslog 输出到自定义日志文件

谁能告诉我我在这里做错了什么?

这是最终的问题:

为什么当我使用 logger 命令时,我无法将其输出到自定义日志文件中/var/log

在我的脚本中:

logger -i -t ANM -p local7.info "This is a local 7 test"
Run Code Online (Sandbox Code Playgroud)

rsyslog.conf我将以下内容附加到文件末尾:

local7.* /var/log/anm.log
Run Code Online (Sandbox Code Playgroud)

此外,该脚本对该/var/log/anm.log文件具有权限

* 更新 *

所以我忘了重启日志服务。我试过重新启动和“ service rsyslog restart”仍然没有变化。测试文本没有出现,/var/log/anm.log但确实出现在/var/log/syslog

* 更新 *

/var/log/"yourlogfilehere"需要什么权限?Owner, Group, rwx?

我尝试将 grp 和 own 设置为 root 和运行 logger 命令的用户名。两者都没有变化。

我还尝试在/var/log. 即/var/log/anm/anm.log并为目录设置两种类型的权限。

* 更新 *

rsyslogd 正在运行

syslog     598  0.0  0.1  31060  1292 ?        Sl   03:02   0:02 …
Run Code Online (Sandbox Code Playgroud)

linux logging ubuntu syslog

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

监控 Postfix 外发邮件的传递

我正在使用带有 Postfix 的 GNU Mailman 来运行邮件列表,并希望监视外发邮件的传递,即:对于从列表中发送的每封邮件,检查是否收到了 250(OK)消息,如果没有,向我汇报。

现在,我正在做一个快速而肮脏的事情:

# cat /var/log/syslog | grep "smtp.*to=.*" | grep -v 250
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法来监视 smtpd 的输出?

linux display smtp postfix syslog

12
推荐指数
1
解决办法
4万
查看次数

crontab 中的坏分钟?

我的系统日志中出现以下错误:

Oct 17 13:14:03 tracker cron[873]: (*system*) ERROR (Syntax error, this crontab file will be ignored)
Oct 17 13:14:03 tracker cron[873]: Error: bad minute; while reading /etc/crontab
Run Code Online (Sandbox Code Playgroud)

不过我没有看到任何糟糕的分钟!我的crontab文件是:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# …
Run Code Online (Sandbox Code Playgroud)

cron crontab syslog

10
推荐指数
1
解决办法
4万
查看次数

为什么 syslog 比文件 IO 慢这么多?

我写了一个简单的测试程序来测量 syslog 功能的性能。这是我的测试系统的结果:(Debian 6.0.2 with Linux 2.6.32-5-amd64)

测试用例调用有效负载持续时间思想 
                      [] [MB] [s] [MB/s]    
------------- ---------- ---------- ---------- ----------
系统日志 200000 10.00 7.81 1.28      
系统日志 %s 200000 10.00 9.94 1.01      
写/dev/null 200000 10.00 0.03 343.93    
printf %s 200000 10.00 0.13 76.29     

测试程序进行了 200000 次系统调用,每次调用时写入 50 字节的数据。

为什么 Syslog 比文件 IO 慢十倍以上?

这是我用来执行测试的程序:

#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>
#include <syslog.h>
#include <unistd.h>

const int  iter  = 200000;
const char msg[] = "123456789 123456789 123456789 123456789 123456789"; …
Run Code Online (Sandbox Code Playgroud)

linux debian-squeeze syslog

9
推荐指数
1
解决办法
3767
查看次数

rsyslog 更改文件所有者

我正在尝试将日志的所有者和组更改为与 rsyslog.conf 不同的用户,后者具有:

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
Run Code Online (Sandbox Code Playgroud)

我在 /etc/rsyslog.d/99-custom.conf 中有一个自定义 .conf 文件,其中包括:

#Set the ownership to xxxxx
#$FileOwner xxxxx

# Send datastore logs to separate file

if $programname == 'datastore' then {
    action(
        type="omfile"
        FileCreateMode="0644"
        FileGroup="xxxxx"
        FileOwner="xxxxx"
        File="/var/log/folder/datastore.log"
    )
#/var/log/folder/datastore.log
~
}

#$FileOwner xxxxx
local6.*                -/var/log/folder/datastore.log
local6.notice           -/var/log/folder/notice.log

#Reset file ownership to root
#$FileOwner root
Run Code Online (Sandbox Code Playgroud)

我尝试了旧语法和新语法,但权限将显示为:

-rw-r--r--  1 syslog …
Run Code Online (Sandbox Code Playgroud)

linux permissions syslog

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

如何永久删除 /var/log/lastlog?

我的 /var/log/lastlog 文件很大。我知道它实际上只有几千字节,但 tar 不够聪明,无法知道这一点,所以当我对虚拟机进行映像时,我的还原失败,因为它认为我正在尝试加载比磁盘容量更多的数据。

我想删除 /var/log/lastlog 并停止对文件的任何和所有日志记录。我知道安全隐患。此日志记录需要停止以保留我的备份策略。

我对 /etc/pam.d/login 进行了更改,有人告诉我将禁用日志记录到 /var/log/lastlog,但它似乎不起作用,因为 /var/log/lastlog 不断增长。

# Prints the last login info upon succesful login
# (Replaces the `LASTLOG_ENAB' option from login.defs)
#session    optional   pam_lastlog.so
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑

对于任何感兴趣的人,我使用 Centrify Express 通过 LDAP 对我的用户进行身份验证。Centrify Express 是“免费的”,但缺点之一是我无法通过 LDAP 管理用户 UID,因此当他们登录到服务器时会获得动态 UID。Centrify 选择了一些疯狂的高 UID 值(因此它们大概不会与服务器上的本地用户发生冲突)。/var/log/lastlog 由 UID 索引,并增长以适应系统上最大的 UID。这意味着当 Centrify 用户登录时,他们会得到一个 UID 范围上限的 UID,这会导致 lastlog 根据文件系统分配大量的空间。

~$ ll /var/log/lastlog
-rw-rw-r-- 1 root root 291487675780 Apr 10 16:37 /var/log/lastlog
~$ du -h /var/log/lastlog
20K     /var/log/lastlog
Run Code Online (Sandbox Code Playgroud)

更多进入---> …

ubuntu pam syslog

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

通过 TCP 生成系统日志的简单方法?

我想对 logstash 服务器问题进行故障排除,并且需要不时生成 syslog 消息。有没有一种简单的方法可以让我使用 TCP 连接到系统日志服务器并发送一些任意的系统日志消息?

command-line syslog

6
推荐指数
1
解决办法
3万
查看次数

如何在 macOS 中获取 SSH 日志并将其发送到远程系统日志服务器?

在 Linux 上,我可以获得 sshd 日志,例如:

sshd Accepted publickey for user from xxx.xxx.xxx.xxx port xxx ssh2: RSA SHA256:.....
Run Code Online (Sandbox Code Playgroud)

并通过添加文件将它们发送到远程系统日志服务器/etc/rsyslog.d/

如何在 MacOS 10.14 (Mojave) 上获取类似数据,并且让 macOS 将数据发送到远程系统日志服务器?

我可以使用以下命令获取我想要的数据:

log stream --process sshd --info --predicate "messageType = 'info'"
Run Code Online (Sandbox Code Playgroud)

现在需要弄清楚如何配置ASL(Apple System Logger)。

ssh syslog macos macos-mojave

6
推荐指数
1
解决办法
2652
查看次数

配置 syslogd 以接受 OS X Mountain Lion 上的远程连接并为其分配一个类别

从Stack Exchange 上的另一个线程中,我发现在 Lion 或 Mountain Lion 上启用 syslogd 以接受传入连接非常容易。

cd /System/Library/LaunchDaemons
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener dict" com.apple.syslogd.plist
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockServiceName string syslog" com.apple.syslogd.plist
sudo /usr/libexec/PlistBuddy -c "add :Sockets:NetworkListener:SockType string dgram" com.apple.syslogd.plist
sudo launchctl unload com.apple.syslogd.plist
sudo launchctl load com.apple.syslogd.plist
Run Code Online (Sandbox Code Playgroud)

然而,我遇到的问题是,当我的路由器向 syslogd 发送消息时,它们出现在 OS X 的控制台中,因为它们来自未知 - 例如:

5/3/13 9:19:40.000 AM Unknown[-1]: [WAN-IN-6-A]IN=eth2 OUT=eth0 SRC=141.133.142.260 DST=10.0.00.10 LEN=64 TOS=0x00 PREC=0x00 TTL=53 ID=30298 DF PROTO=TCP SPT=60553 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0 
Run Code Online (Sandbox Code Playgroud)

而来自本地机器的日志消息指定了发件人:5/3/13 7:38:20.155 AM kdc[67]: LKDC 引用真实的 …

networking mac syslog osx-mountain-lion macos

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