syslog 系统日志

来源不详~~
一、syslog日志服务:
1、守护进程:syslog
2、端口:514
3、配置文件:/etc/syslog.conf
4、常见日志文件:
/var/log/dmesg      内核引导信息日志
/var/log/message    标准系统错误信息日志
/var/log/maillog    邮件系统信息日志
/var/log/cron       计划任务日志
/var/log/secure     安全信息日志
二、 配置文件:
syslog配置文件如下
-----------------------------------------------------------------
[root@server ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron
# Everybody gets emergency messages
*.emerg                                                 *
# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler
# Save boot messages also to boot.log
local7.*     
-----------------------------------------------------------------
配置文件中每行表示一个项目,格式为:facility.level    action
由两个部分组成:
第一部分:选择条件(可以有一个或者多个条件),分为两个字段。
第二部分:操作动作;
    1、选择条件
    选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件是对消息类型的一种分类,这种分类便于 人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)隔开。
    常见facility:
kern                内核信息;
user                用户进程信息;
mail                电子邮件相关信息;
daemon          后台进程相关信息;
authpriv            包括特权信息如用户名在内的认证活动;
cron                计划任务信息;
syslog          系统日志信息
lpr             打印服务相关信息。
news            新闻组服务器信息
uucp                uucp 生成的信息
local0----local7        本地用户信息
    2、重要级:
重要级是选择条件的第二个字段,它代表消息的紧急程度。
按严重程度由低到高排序:
debug       不包含函数条件或问题的其他信息
info            提供信息的消息
none        没有重要级,通常用于排错
notice      具有重要性的普通条件
warning     预警信息
err         阻止工具或某些子系统部分功能实现的错误条件
crit            阻止某些工具或子系统功能实现的错误条件
alert           需要立即被修改的条件
emerg       该系统不可用
    不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是“warning”,它实际上将把“warning”、 “err”、“crit”、“alert”和“emerg”都包括在内。
    3、操作动作
日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。
syslog 主要支持以下活动
file                    指定文件的绝对路径
terminal 或 prin        完全的串行或并行设备标志符
@host(@IP地址)    远程的日志服务器

三、 搭建Linux日志服务器:
1、编辑/etc/sysconfig/syslog文件,让服务器能够接受客户端传来的数据:
在“SYSLOGD_OPTIONS”行上加“-r”选项以允许接受外来日志消息。
-----------------------------------------------------------------
[root@client ~]# vim /etc/sysconfig/syslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -r enables logging from remote machines
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-r -m 0"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
#    once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"
#
SYSLOG_UMASK=077
# set this to a umask value to use for all log files as in umask(1).
# By default, all permissions are removed for "group" and "other".
-----------------------------------------------------------------
 2、重新启动syslog守护进程。 
-----------------------------------------------------------------

[root@client ~]# service syslog restart
关闭内核日志记录器:                                       [确定]
关闭系统日志记录器:                                       [确定]
启动系统日志记录器:                                       [确定]
启动内核日志记录器:                                       [确定]
[root@client ~]#
-----------------------------------------------------------------
 3、关闭iptables,也可以开启514端口。本例中我们关闭iptables。
          四、配置各客户端:
         1、配置/etc/syslog.conf
         修改客户机/etc/syslog.conf文件,在有关配置行的操作动作部分用一个“@”字符指向日志服务器
-----------------------------------------------------------------
[root@client ~]# vim /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
*.*                                                     @10.64.165.210
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
……下面省略
-----------------------------------------------------------------
 另外如果配置了DNS域名的话可以使用域名。
          2、重启客户端syslog使设置生效。

检测成果:
        下图是我们在客户端重启iptables服务后在服务端看到的日志情况:
-----------------------------------------------------------------

[root@client ~]# cat /var/log/messages |tail
Nov 30 16:44:29 10.64.165.200 kernel: klogd 1.4.1, log source = /proc/kmsg started.
Nov 30 16:44:33 10.64.165.200 kernel: Removing netfilter NETLINK layer.
Nov 30 16:44:33 10.64.165.200 kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Nov 30 16:44:33 10.64.165.200 kernel: Netfilter messages via NETLINK v0.30.
Nov 30 16:44:33 10.64.165.200 kernel: ip_conntrack version 2.4 (4096 buckets, 32768 max) - 228 bytes per conntrack
### 如何在Ubuntu中使用和管理Syslog系统日志 #### 安装rsyslog服务 如果目标Ubuntu系统未预装`rsyslog`,可以通过运行以下命令来安装它。大多数情况下,`rsyslog`已经作为默认的日志记录工具被集成到Ubuntu系统中[^1]。 ```bash sudo apt-get update && sudo apt-get install rsyslog ``` #### 配置Logrotate以管理日志文件 为了防止日志文件无限增长并占用过多磁盘空间,可以利用`logrotate`工具定期轮替、压缩以及删除旧的日志文件。`logrotate`通常会随Ubuntu一起提供,并自动配置好用于处理诸如`rsyslog`之类的程序所产生的日志数据[^2]。 要自定义或调整这些行为,比如设定最大日志文件尺寸或者保留周期,需编辑位于`/etc/logrotate.d/`目录下的相应配置文档。对于`rsyslog`来说,其特定的设置可能存在于名为`rsyslog`或类似的文件里[^3]。 下面是一个示例性的`/etc/logrotate.d/rsyslog`片段展示如何限定单个`.log`文件不超过500KB: ```plaintext /var/log/syslog { su root syslog rotate 7 daily missingok notifempty delaycompress compress size 500K postrotate /usr/lib/rsyslog/rsyslog-rotate endscript } ``` 此脚本规定了当`/var/log/syslog`达到指定大小(这里是500KB)[^4]之后的行为模式——即每天最多保存七份归档副本(`rotate 7`);只有当日志存在时才操作(`missingok`);不会因为为空而触发任何动作(`notifempty`)等等特性均有助于优化存储资源分配效率的同时维持良好的可读性和检索便利度。 另外还可以通过创建计划任务进一步增强自动化水平。例如让上述策略每隔半小时强制执行一遍: ```bash crontab -e ``` 然后加入如下条目: ```cron */30 * * * * sudo /usr/sbin/logrotate -f /etc/logrotate.conf ``` 最后一步是为了免除每次手动输入密码麻烦, 可考虑给予具体用户无条件执行权限: ```bash sudo visudo ``` 追加一行允许某位成员无需验证身份即可调用刚才提到的那个特殊指令路径: ```sudoers wangxiaoyan ALL=(root) NOPASSWD: /usr/sbin/logrotate -f /etc/logrotate.conf ``` 以上步骤综合起来能够有效实现对Ubuntu平台下Syslog子系统的全面掌控与高效运维。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值