日志文件
日志文件:记录本机何时何事何人所为。
日志文件在管理中作用:
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:设置日志类型和优先级。
转载于:https://blog.51cto.com/13434656/1983964