天天看点

linux日志文件

日志文件

日志文件:记录本机何时何事何人所为。

日志文件在管理中作用:

1,系统故障排错

2,统计访问量

日志软件:rpm  -q  rsyslog

文件列表:rpm  -ql  rsyslog

配置文件:rpm  -qc  rsyslog

日志文件默认位置:ls  /var/log

#:某些第3方软件的日志文件,存在于自己的目录中的log目录中或其他位置。

常见的日志文件(/var/log):

#:文件类型用file命令查。多数日志文件是纯文本文件,可用cat、head查看,还有些二进制(data)日志文件,需用专用命令查看

secure : 安全相关,主要是用户认证,如登录 、创建和删除账号 、sudo等

audit/audit.log:审计日志.跟用户账号相关

messages:记录系统和软件的绝大多数消息.如服务启动 、停止 、服务错误等.

boot.log:系统启动日志.能看到启动流程.

cron:计划任务日志.会记录crontab计划任务的创建、执行信息.

dmesg:硬件设备信息(device).纯文本,也可以用dmesg命令查看.

yum.log:yum软件的日志,记录yum安装、卸载软件的记录.

lastlog:最后登录的日志.用lastlog查看(二进制日志文件)

btmp:登录失败的信息(bad).用lastb查(二进制日志文件)

wtmp:正确登录的所有用户命令(who、w).用last查(二进制日志文件)

rsyslog日志程序的配置文件:rpm -qc rsyslog 查的结果如下

/etc/logrotate.d/syslog 日志轮转(切割、轮替)策略文件

/etc/rsyslog.conf 主配置文件

/etc/sysconfig/rsyslog 环境设置配置文件

cat /etc/rsyslog.conf  主配置文件

格式:  类别.等级   日志文件路径

#kern.* /dev/console

*.info;mail.none;authpriv.none;cron.none  /var/log/messages

authpriv.* /var/log/secure

mail.* -/var/log/maillog

cron.* /var/log/cron

*.emerg :omusrmsg:*

uucp,news.crit /var/log/spooler

local7.* /var/log/boot.log

local3.notice /var/log/user.log 添加此行,用于logger测试案例

第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。rsyslog 进程根据选择器决定如何操作日志。

日志类别:man 3 syslog

注:日志类别主要是用来区分软件、服务.

log_auth 安全或授权信息

log_authpriv  安全或授权信息 (私有)

log_cron 计划任务

log_daemon  系统守护进程 without separate facility value

log_ftp ftp进程相关

log_kern 内核消息 (these can't be generated from user processes)

log_local0 through log_local7 本地自定义

log_lpr 打印子系统

log_mail 邮件子系统

log_news 新闻组子系统

log_syslog 系统消息(8)

log_user (default) 一般用户的等级的消息

log_uucp uucp subsystem unix like机器本身相关子系统

日志等级level:man 3 syslog

注:等级主要用来区分某个软件中日志的分类.

log_emerg 疼痛级,严重错误

log_alert 报警.必须立即采取措施

log_crit 较严重

log_err 错误

log_warning  警告

log_notice 提示信息.normal, but significant, condition

log_info  信息

log_debug 调试级信息

注:等级为none表示不记录任何信息.

练习:要求创建一个跟messages日志文件相同的日志规则,将日志记录到/var/log/my.log文件中.

vim /etc/rsyslog.conf 执行如下操作

*.info;mail.none;authpriv.none;cron.none  /var/log/messages 找到此行

*.info;mail.none;authpriv.*;cron.none  /var/log/my.log 添加此行

重启rsyslog服务:systemctl restart rsyslog

查看日志: cat /var/log/my.log

logger 命令

logger 是shell命令,可以通过该命令使用 rsyslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。

logger命令的语法为:

logger [-i] [-f filename] [-p priority] [-t tag] [message...]

每个选项的含义如下:

-f filename:将 filename 文件的内容作为日志。

-i:每行都记录 logger 进程的id。

-p priority:指定优先级;优先级必须是形如 facility.priority 的完整的选择器,默认优先级为 user.notice。

-t tag:使用指定的标签标记每一个记录行。

message:要写入的日志内容,多条日志以空格为分隔;如果没有指定日志内容,并且 -f filename 选项为空,那么会把标准输入作为日志内容。

例如,将ping命令的结果写入日志:

创建ping的日志:ping -c 3 127.0.0.1 | logger -it logger_test -p local3.notice

创建ping的日志:ping -c 3 127.0.0.5 | logger -it logger_test -p local3.notice

查看日志文件:cat /var/log/user.log

查看到的日志内容:oct 6 12:48:53 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=10 ttl=253 time=931 ms

发现ping命令的结果成功输出到 /var/log/userlog 文件。

命令 logger -it logger_test -p local3.notice 各选项的含义:

-i:在每行都记录进程id;

-t logger_test:每行记录都加上“logger_test”这个标签;

-p local3.notice:设置日志类型和优先级。

继续阅读