日志文件
日志文件:记录本机何时何事何人所为。
日志文件在管理中作用:
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:设置日志类型和优先级。