Linux日志管理

一、何为日志

1. 在程序执行时,可以通过标准输出以及错误输出,让我们知道程序的执行情况,而系统不可能将所有程序的输出信息一起显示,要知道后台执行的程序非常之多,如果一起显示,那我们不用操作了,整天只看输出结果就够忙了!

2. 这时就需要日志系统了,有了日志之后,系统可以讲所有程序的输出结果,分类到日志中,通过查看日志,我们就可以知道系统的运行情况。

3.ping 192.168.18.254 >> /tmp/danny这么简单的一条命令,其实就是一个日志,将ping的结果输出到danny中,我们可以通过cat /tmp/danny来了解ping命令的运行情况。

二、系统日志服务组件

1、klogd

全名为内核日志服务Kernel Log Daemon,专门用来采集Linux内核产生的信息。

2、syslogd

全名为系统日志服务System Log Daemon,用来采集用户的应用程序或者服务产生的信息。

3、logger

这是一个日志服务的客户端工具,可以使用这个工具,直接在shell中传递信息给系统日志服务,通常用为测试系统日志服务。

三、日志服务安装

rpm -qa | grep rsyslog

#查询是否已经安装

yum -y install rsyslog

#安装系统日志服务

四、日志服务运行状态管理

service rsyslog stop

#关闭日志服务

service rsyslog start

#开启日志服务

chkconfig rsyslog on

#设为开机启动

chkconfig rsyslog off

#设置为开机不启动

五、日志服务配置

配置文件的路径/etc/rsyslog.conf

格式:

FACILITY.PRIORITY ACTION

信息来源.优先级别 处理方式

信息来源列表

例: *.*   @192.168.1.1

 

项目

说明

authpriv

与安全验证有关的信息。

cron

包含at或cron定时执行系统产生的信息。

daemon

一般服务器的信息。

kern

来自内核信息。

lpr

打印系统传来信息。

mail

电子邮件系统信息。

news

来自NetNews系统的信息。

syslog

syslog服务器本身信息

user

一般用户等级信息。

uucp

UUCP子系统信息。

localN

保留。

安全级别列表

程度

项目

说明

轻微

debug

只是排错信息,仅对程序开发人员有用,对系统管理者的你是没有太大意义的。

 

info

通常这是正常信息,你也可以忽略info的信息。

 

notice

这是稍微要注意的信息。

 

warn

可能有问题的警告信息。

 

err

这是错误信息。

 

crit

这是危急错误。

 

alert

这是需特别留意的警报信息。

严重 

emerg

这是紧急状况,如果再不处理该服务或系统可能会宕机

PRIORITY的计算方式:(priority)

  • PRIORITY:代表等于,或高于PRIORITY。例如,err相当等于err + crit +alert + emerg。
  • =PRIORITY:恰等于PRIORITY。例如,=err就是err本身。
  • !PRIORITY:代表除了PRIORITY之外的。例如,!err就为debug + info +notice + warn + crit + alert + emerg。

除此之外,FACILITY与PRIORITY可以使用星号代表所有的,因此*.* 就表示所有的FACILITY的所有PRIORITY信息。(facility)

而ACTION字段则是用来定义如何处理接收到的信息。可以指定:

  • /PATH/FILENAME:将信息储存至/PATH/FILENAME文件中。注意,如要系统日志服务把信息储存到文件,这个文件必须要写绝对路径。
  • USERNAME:将信息送给已登录用户。
  • @HOSTNAME:代表将信息转到HOSTNAME的系统日志服务器。
  • *:将信息传送给所有已登录的用户。

六、日志格式

  • DATE:信息发生日期。
  • TIME:信息发生时间。
  • HOSTNAME:信息发生主机。
  • APP:产生信息软件。
  • NAME:软件名称,或是软件组件名称。可以省略。
  • PID:进程标识。可以省略。
  • MESSAGES:信息内容。

七、集中式的日志服务

1、为什么需要集中式日志服务

如果你负责管理很多台LINUX服务器,你就需要登录每台服务器查看上面的日志,特别麻烦,如果通过集中式的日志服务,就可以将日志收集起来,统一管理。

2、集中式日志服务的架构

日志服务器端配置:

  1. vim /etc/rsyslog.conf
  2. 开启UDP和TCP
  3. 重启服务
  4. service rsyslog restart

日志客户端端配置:

Vim /etc/rsyslog.conf

在RULES添加rules

*.*   @192.168.1.1

(信息来源.运行级别   代表将信息转到HOSTNAME的系统日志服务器)

测试(客户端)

Logger ls

此时服务器端可看见log日志变化更新(tailf /var/log/messages)

3、设置步骤

  1. 修改客户端的配置文件,路径是/etc/syslog.conf,加如下参数*.* @logserver。
  2. 修改服务端的配置文件,路径是/etc/sysconfig/syslog,在SYSLOGD_OPTIONS参数,加入-r的参数。
  3. 重启客户端和服务端的日志服务。

八、日志切割

logrotate

日志切割

/etc/logrotate.conf

配置文件

/etc/logrotate.d/

切割配置

logrotate

选项:

-v

详细信息

-f

强制

 

posted @   叮伱格斐呃  阅读(219)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
Live2D
欢迎阅读『Linux日志管理』
点击右上角即可分享
微信分享提示