`
isiqi
  • 浏览: 16706601 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

我们来聊聊syslogd和logrotate吧

阅读更多

我们来聊聊syslogd和logrotate

作者:Chinese

放假这几天看书,了解了一下syslogd和logrotate,就想把自己看明白的总结一下:加深自己的理解;以资大家讨论。

-------------
文档目录
-------------
1 什么是syslogd
2 配置syslogd的说明
3 syslogd和系统中服务配置中日志的关系
4 什么是logrotate
5 配置logrotate的说明

-------------
文档正文
-------------
1 什么是syslogd
syslogd可以简单地被称为记录系统活动的一个daemons。比如可以记录谁,在什么时间,在哪里,做了什么事情(像是在写记叙文啊);也可以记录您的系统曾经发生过什么事情,比如什么时候重新引导过、软硬件的错误信息等;当然也记录着您系统上运行着的服务的信息。
很多时候,有朋友上来就问,“我的X不能启动了是怎么回事啊?!”问号和叹号这样使用在语文规范上是不允许的,但是我们可以获知,他的心情是急迫的。可是为什么您不先考虑一下您做了什么更改,为什么不先看看是否有错误输出,为什么不看看日志文件?起码,日志为解决问题提供了很好的参考啊。很多人讲自己的某个设备不工作,dmesg的信息您是否认真参考了?
syslogd做的是琐碎的工作,但却是相当重要的工作。很多朋友为了提高系统的性能,节省那一点点资源就决定把这个daemons停掉。我认为,这是不可取的。
syslogd记录的日志一般在/var/log/下,当然也有存储在另外的服务器上的。因为syslogd记录的信息实在是太重要了,所以还要涉及日志安全的问题。
一般系统中日志信息:

代码:

/var/log/secure: 记录系统的安全信息,比如ssh、ftp、pop3等;
/var/log/wtmp: 记录谁曾经登陆过系统,由于本日志被编码过,所以只能用last命令查看;
/var/log/boot.log: 顾名思义,记录开启或者关闭系统及武夫的信息;
/var/log/message:系统发生的错误信息都会记录在这个日志中,比如iptables中您使用log功能的日志;
/var/log/mail:
/var/log/httpd/
/var/log/mysqld.d 等,记录的就是这些服务的日志。



2 配置syslogd的说明
2.1 启动syslogd服务
首先,您要确定您的系统是否运行着这个服务。

代码:
service [color=red]syslog[/color] status

或者:

代码:
ps -aux|grep syslog

如果您的系统中并没有运行这个服务,您可以打开它。方法很多啦。

代码:

service syslog start

如果您希望系统在下次启动的时候就运行syslogd,您可以在setup中的服务中添加。如果确定您的默认引导级别,比如3,那么您也可以在/etc/rc.d/rc3.d/下添加以 S 开头的软连接。或者,您使用chkconfig 2345 syslog on来添加。
2.2 syslogd服务的配置文件
syslogd的配置文件一般在/etc/syslog.conf中。这个文件依然遵循你所见过的其它配置文件的规则,比如 # 是注释。您可以看看您的syslogd都在帮助您记录着什么。这是我的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



2.3 syslog.conf的配置规则

代码:
服务名称.信息等级 存放或者显示地点

这个语法很简单呢。呵呵。逐个解释一下。

服务名称
mail http at cron kern 等等。

信息等级

代码:

info: 一些提示信息资料;
notice: 需要您注意的信息;
warn或者waring: 警告信息;
[color=black]上面三个信息虽然是提醒您注意,但是却还没有到错误的情况。下面的信息就要注意了。[/color]
error或者err: 错误信息。您需要仔细检查发生错误的原因了;
crit: 很严重的错误,到达临界点了;
alert: 警告! 是否想起了“Red Alert”?不过,在这里这可是相当严重的错误啊;
emerg或者panic:系统混乱,重做吧;

特别的:
debug: 将显示很多信息;
none: 顾名思义,什么信息也不记录。



存放或者显示地点

代码:

日志的绝对路径: 比如/var/log;
您的一个用户 ;
网络上的主机: @log.company.com
打印机: /dev/lp0


2.4 应用举例

代码:

mail.info /var/log/maillog

大于等于info的信息都会写到/var/log/maillog中。


代码:

mail.*;cron.* /var/log/mailcron mail.=warn;cron.=warn /var/log/mailcronwarn

等级为warn的信息,写进/var/log/mailcronwarn,其它的信息写进/var/log/mailcron。


代码:

*.*;mail,cron.none /var/log/message

代码:

*.*;mail.none;cron.none /var/log/message

记录除去mail和cron之外的所有服务的所有信息。

3 syslogd和系统中服务配置中日志的关系
上面已经说了,syslogd是为系统提供日志服务的。那么,我们在配置文件中定义的日志信息和syslog.conf有什么关系呢?
或者您也注意到了这段:

代码:

# 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

这段话是什么意思呢?我认为是在/var/log/messages中记录除去mail、authpriv和cron之外的所有系统信息。也就是说它会记录您自己的http信息。是否这样呢?我自己安装了一个httpd,并且指定日志到另外一个文件,比如/usr/website/log/httplog。我虽然可以在/usr/website/log/httpdlog中看到我的httpd的日志信息,但是我执行

代码:
# cat /var/log/messages|grep HTTP

却得到空。
另外,就这个问题我曾经请教一个朋友。他说syslogd不会记录你没有要求它记录的信息,虽然有上面的*.info但是这个*是不包括你自己的服务的。我问,那么iptables也没有在我的syslog.conf中要求,那为什么它会记录到/var/log/messages呢?或者是iptables自己定义了吧。
所以,关于这段的理解我只有这样的认识。如果有错误,请您指出。

4 什么是logrotate
logrotate是对日志文件做轮换。就是把现在的log命名为log.1,然后继续写log。如果存在log.1就命名log.1为log.2然后命名log为log.1,依此类推,但并非没有尽头。这个尽头就是您在logrotate的配置文件中的定义,我的系统默认的是到4。那么对log.4做什么操作呢?删除。

syslogd是daemons方式运行的;
logrotate是按计划运行的。


5 配置logrotate的说明
5.1 配置文件的位置

/etc/logrotate.conf
/etc/logrotate.d

其中,/etc/logrotate.conf是主要配置文件,/etc/logrotate.d中的文件会被/etc/logrotate.conf读取。如果您在/etc/logrotate.d中的配置文件没有规定具体的参数,则这些参数由/etc/logrotate来决定。
5.2 logrotate的配置规则
正如在上面5.1中所说的,logrotate的主要配置在/etc/logrotate.conf中设置,而/etc/logrotate.d中的文件是对/etc/logrotate.conf的补充。或者可以看作为了不使/etc/logrotate.conf过大而设置。logrotate的写法:

代码:

把logfile(s)写在前面,包含文件的绝对路径,可以使用空白字元分隔多个log,也可以使用统配符置换;
用 { } 包含所有设定;
一般包括:
prerotate 在启动 logrotate 之前执行的命令,比如 /usr/bin/charrt -a /var/log/logfile;
postrotate 在执行了 logrotate 之后执行的命令,比如 /usr/bin/charrt +a /var/log/logfile;
您可以设定执行如上两个动作,也可以不设定,这依赖于您的需要。

在prerotate与postrotate之间的动作有:
weeky #每个星期执行一次
rotate 4 #保留四个日志
create #logratoe之后再建立日志
compress #rotate之后的日志是否压缩
include /etc/logrotate.d #包含/etc/logrotate.d目录下面的轮换设置




如果您自己在/etc/logrotate.d下写了自己的轮换设置可以使用

代码:
logrotate -f yourfile

来测试。

5.3 鉴于这个文档的设置比较明了所以不在此举例。您可以参考您的 /etc/logrotate.conf 和 /etc/logrotate.d 下面的文档看看。

好了,这个文档写到这里就算是结束了。正如我在文档的开始所说,这是我假期看书的一点体会,写出来是为了加深自己的理解;同时也是为了发现问题。如果您发现问题请指正。
分享到:
评论

相关推荐

    Linux日志管理系统详解:syslogd与logrotate配置及日志分析技术

    对于 syslogd 来说,它是通过读取 /etc/syslog.conf配置并依据一定的优先级(emerg > alert > crit > err/error > warning > notice > info)筛选和服务类型关联进行日志存储;而 logrotate 则侧重日志周期管理和...

    linux log日志查看【syslogd logrotate】.zip

    在这个“linux log日志查看【syslogd logrotate】”的主题中,我们将深入探讨两个核心工具:syslogd和logrotate。 syslogd是Linux系统中的一个标准组件,用于收集和处理来自不同程序的日志消息。它根据预定义的规则...

    syslogd压缩版源码

    在实际环境中,可以通过修改配置文件和发送模拟日志消息来测试syslogd的功能和性能。 6. **扩展应用** 了解syslogd的源码有助于开发自定义的日志服务,比如添加特殊日志格式的支持,优化性能,或者增强安全性,...

    syslogd_src_syslog_zip_

    在“syslogd_src_syslog_zip_”这个压缩包中,我们很可能是获得了syslogd的源代码及相关文档,这对于理解其工作原理和进行定制化开发极具价值。本文将深入探讨syslog协议,syslogd的作用,以及如何使用和配置syslogd...

    专业版-kiwi_syslogd_setup.zip

    Kiwi Syslogd 是一款专业级的日志管理系统,专为收集、监控和分析系统日志而设计。这款软件以其强大的功能和易用性赢得了广大用户的青睐。本文将深入探讨 Kiwi Syslogd 的安装过程以及在日志管理中的核心应用。 一...

    Kiwi_Syslogd

    总的来说,Kiwi_Syslogd凭借其免费、易用和高效的特点,成为了IT运维人员的得力助手。无论是小型网络环境还是大型企业级系统,它都能提供稳定可靠的服务,助力我们更好地管理和保护我们的IT基础设施。通过深入理解和...

    Kiwi_Syslogd_8.3.40.setup.exe

    用于移动开发系统日志功能的服务器,用于监听设备发的日志信息。要设置相应的地址和端口号才能监听到相应的信息。

    Kiwi_Syslogd_8.3.40

    系统日志服务软件,用于记录网络设备产生的系统日志

    windows系统syslogd日志服务器

    Windows系统用的syslog服务器。用于接受syslog日志信息。

    Kiwi Syslogd 8.3.7破解版

    它接收,记录,显示和转发系统日志,如路由器,防火墙,交换机,Unix主机和其他功能的设备主机的syslog消息。有许多可供自定义的选项。其特点包括PIX防火墙日志记录,Linksys的家庭防火墙日志,SNMP陷阱和TCP的支持...

    Kiwi_Syslogd_8.3.30免费版

    网络监控工具 Kiwi_Syslogd_8.3.30免费版

    syslog syslog4j syslogd linuxsyslog4j

    总的来说,syslog、syslog4j、syslogd和Linux syslog构成了一个强大的日志管理系统,它们可以帮助IT管理员监控系统状态,定位问题,进行安全审计,同时也有助于符合合规性要求,比如PCI-DSS、HIPAA等。通过理解这些...

    Syslogd_src.zip_C# EventLog_EventLog_syslog csharp_syslogd_wind

    通常,Windows操作系统使用自己的事件查看器来记录应用程序、安全性和系统事件,而Syslogd则提供了跨平台日志记录的兼容性。 标签中的“c#__eventlog”表示这个项目是使用C#编程语言来实现与Windows事件日志的交互...

    Linux系统日志介绍(syslogd).pdf

    总的来说,syslogd是Linux系统日志的核心,它通过`/etc/syslog.conf`配置实现日志信息的收集、过滤和分发,为系统管理和维护提供了强大的支持。理解并熟练掌握syslogd的配置和使用,对于提升Linux系统管理效率和安全...

    Kiwi_Syslogd日志服务器

    查看攻击,日志--日志服务器,分析网络流量

    syslog分析

    在深入探讨 syslog 分析之前,我们先来了解 syslogd——syslog 协议的主要守护进程。syslogd 是实现 syslog 协议的服务程序,负责接收、处理和存储来自系统及应用的日志消息。在 `syslogd.c` 文件中,`main` 函数是...

    Kiwi_Syslogd_8.3.30

    Kiwi_Syslog是一个装在服务器上的一个应用软件,可以实时显示通过网络设备和服务器的所有访问信息,并可以以文件的形式保存到硬盘,还支持日志的分类保存。以供查看。这是8.3.30免费版本。

    sysklogd-1.5.1.tar.gz

    在深入探讨sysklogd-1.5.1之前,我们先来了解一下syslogd的基本概念和工作原理。 syslogd是syslog协议的守护进程,syslog协议是一种网络日志标准,用于在网络中的不同设备之间传递日志信息。syslogd在系统中扮演着...

Global site tag (gtag.js) - Google Analytics