日志文件

 

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

 

日志文件在管理中作用

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:设置日志类型和优先级