赞
踩
日志文件 | 说 明 |
/var/log/cron | 记录与系统定时任务相关的曰志 |
/var/log/cups/ | 记录打印信息的曰志 |
/var/log/dmesg | 记录了系统在开机时内核自检的信总。也可以使用dmesg命令直接查看内核自检信息 |
/var/log/btmp | 记录错误登陆的日志。这个文件是二进制文件,不能直接用Vi查看,而要使用lastb命令查看。命令如下: [root@localhost log]#lastb root tty1 Tue Jun 4 22:38 - 22:38 (00:00) #有人在6月4 日 22:38便用root用户在本地终端 1 登陆错误 |
/var/log/lasllog | 记录系统中所有用户最后一次的登录时间的曰志。这个文件也是二进制文件.不能直接用Vi 查看。而要使用lastlog命令查看 |
/var/Iog/mailog | 记录邮件信息的曰志 |
/var/log/messages | 它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已经用户自定义安装软件的日志,也会在这里列出。 |
/var/log/secure | 记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |
/var/log/wtmp | 永久记录所有用户的登陆、注销信息,同时记录系统的后动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看 |
/var/tun/ulmp | 记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看 |
日志文件:记录系统中各个运行消息的文件,不同的日志文件记录了不同类型的信息, 如内核消息、错误消息等
syslog服务: syslogd: 系统,非内核产生的信息 klogd:内核,专门负责记录内核产生的日志信息
分析日志文件: 通过浏览日志查找关键信息,对系统服务进行调试,判断故障发生的原因
内核及系统日志:
数据由系统服务rsyslog统一管理可以根据主配文件/etc/rsyslog.conf中的设置
决定内核消息及其各种系统消息的记录位置 /var/log/messages
用户日志:
数据用于记录系统用户登录及其退出系统的相关信息,包括用户名、登录终端、 登录时间、来源、使用的进程等等 /var/log/secure
程序日志:
应用程序自己独立管理的一个日志,记录程序本身运行过程中的各种事件信息 /var/log/nginx/access.log
/etc/rsyslog.conf
服务.级别 /var/log/messages 内核和大多数系统消息日志位置
消息内容组成 时间:消息发出的时间和日期
主机名:生成消息的计算机的名称
子系统的名称:发出消息的应用程序的名称
消息内容:消息的具体内容
查询当前登录的用户情况:users,who,w 查询用户登录的历史记录:last 成功日志,lastb 失败日志 查看安全日志文件:/var/log/secure 举例:查看/var/log/secure安全日志文件,打开新终端会看到信息。
tailf /var/log/secure
- May 4 20:39:32 base sshd[28835]: Accepted password for root from 192.168.1.1 port 6069 ssh2
- May 4 20:39:32 base sshd[28835]: pam_unix(sshd:session): session opened for user root by (uid=0)
例1:httpd 服务的日志文件access_log和error_log 分别记录客户访问事件和错误信息
- /var/log/httpd/access_log
- /var/log/httpd/error_log
、例2:nginx服务的日志文件access.log和error.log
- /var/log/nginx/access.log
- /var/log/nginx/error.log
例3:源码安装nginx日志路径
/usr/local/nginx/logs
注意:/var/log/dmesg 系统启动硬件检查日志:直接运行命令 dmesg
var/log/boot.log 记录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息 /var/log/messages 记录Linux操作系统常见的系统和服务错误信息
/var/log/cron crond 计划任务产生的事件信息
/var/log/dmesg 引导过程中产生的信息
/var/log/maillog 记录电子邮件活动信息
/var/log/lastlog 记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/secure Linux系统安全日志,记录用户和工作组变化情况、用户登陆认证情况 /var/log/syslog 只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp 记录用户登录、注销、系统启动、关键等信息,使用last命令查看
/var/log/btmp 记录失败或者是错误的登录信息和验证 lastb命令查看
/var/run/utmp 该日志文件记录有关当前登录的每个用户的信息。如 who、w、users等就需要访问这个文件
0 emerg 会导致主机系统不可用的情况
1 alert 必须马上采取措施解决的问题
2 crit 比较严重的情况
3 err 运行出现问题
4 warning 可能影响系统功能,需要提醒用户的重要事件
5 notice 不会影响正常功能,但是需要注意的事件
6 info 一般信息
7 debug 程序或系统调试信息等
8 none 不记录任何日志
MODULES
- #$ModLoad imudp
- #$UDPServerRun 514
- #$ModLoad imtcp
- #$InputTCPServerRun 514
auth # 认证相关的 authentication
authpriv # 权限,授权相关的 authorization
cron # 任务计划相关的
daemon # 守护进程相关的
kern # 内核相关的
lpr # 打印相关的
mail # 邮件相关的
mark # 标记相关的
news # 新闻相关的
security # 安全相关的,与auth 类似
syslog # syslog自己的
user # 用户相关的
uucp # unix to unix cp 相关的
local0 到 local7 # 用户自定义使用
*表示所有的facility
配合日志级别举例:
1、//mail的info级别以上的信息,记录的位置 mail.info /var/log/mail
2、//只记录info这一个级别。 auth.=info
3、//user的相关信息但不包括error,取反。 user.!=error
4、//所有日志的info以上的信息 .info
5、//mail的所有级别 mail.
6、//所有服务的所有级别 .
7、//合并日志,写到一块 cron.info;mail.info
3、action(动作)日志记录的位置
//延迟写入,系统不繁忙的时候才写入。
发送邮件,通过什么协议 @@192.168.1.1 TCP @192.168.1.1 UDP
*号表示所有在线用户
~ 忽略日志
^号后跟可执行脚本或程序的绝对路径
案例:更改系统安全日志secure的记录位置 将secure的位置更改为/usr/local/secure authpriv.*
/usr/local/secure
systemctl restart rsyslog chattr +a /usr/local/secure
案例环境:将node01的日志发送到node02
- node01 192.168.8.10
-
- node02 192.168.8.20
-
- node01:
-
- vim /etc/rsyslog.conf
-
- 15 $ModLoad imudp
-
- 16 $UDPServerRun 514
-
- 18 # Provides TCP syslog reception
-
- 19 $ModLoad imtcp 20
-
- $InputTCPServerRun 514
-
- //文件最后添加 92 . @192.168.8.20
-
- systemctl restart rsyslog
-
- node02:
-
- vim /etc/rsyslog.conf
-
- 15 $ModLoad imudp
-
- 16 $UDPServerRun 514
-
- 18 # Provides TCP syslog reception
-
- 19 $ModLoad imtcp
-
- 20 $InputTCPServerRun 514
-
- systemctl restart rsyslog tailf /var/log/messages
案例2:把nginx的日志发送给node02
- node01:
-
- vim /etc/rsyslog.conf
-
- $ModLoad imfile
-
- $InputFilePollInterval 1
-
- $InputFileName /var/log/nginx/access.log
-
- $InputFileTag nginx-info-access;
-
- $InputFilestateFile state-nginx-info-accesslog
-
- $InputRunFileMonitor
-
- $InputFileName /var/log/nginx/error.log
-
- $InputFileTag nginx-info-error;
-
- $InputFilestateFile state-nginx-info-errorlog
-
- $InputRunFileMonitor
-
- $InputFilePollInterval 10 if
-
- $programname == 'nginx-info-access' then @192.168.8.128:514 if
-
- $programname == 'nginx-info-access' then ~ if
-
- $programname == 'nginx-info-error' then @192.168.8.128:514 if
-
- $programname == 'nginx-info-error' then ~
参数解释: //间隔多久采集1次。默认单位是秒
$InputFilePollInterval 1
//采集的日志的名称
$InputFileName /usr/local/nginx/logs/access.log
//给对应的日志打一个标签
$InputFileTag nginx-info-access;
//给这个日志命名
$InputFilestateFile state-nginx-info-accesslog
//启动监控
$InputRunFileMonitor
为了防止日志文件过大,所以我们要做到日志定期的切割和清理
- logrotate 日志轮替
-
- /etc/logrotate.conf
weekly //切割周期,默认每周 rotate 4 //保留多少个日志文件,那么一周一个,也就是能看到一个月的日志。如果是0就表示不作备份,仅做了一个切割,表示每周清空一下日志。
create //旧日志切割后,源文件是否生成新的日志。这一点就跟脚本切割日志有很大不同的地方。 dateext //切割后,日志的文件类型是什么样?默认是以日期来切割的。
include /etc/logrotate.d //还需要读取这个地方的内容 ,目录里都是其他地方的日志
/var/log/wtmp { //特指某个文件的切割方式,
monthly //每月切割 create 0664 root utmp //切割完成之后,这个文件的权 限,以及属主和属组是谁 minsize 1M //文件超过1M之后才切割,这表示即便过了1个月, 大小没到1M,也不切割 rotate 1 //保留1个
其他参数:
compress //压缩,
gzip delaycompress //延迟压缩
nocompress //不压缩
copytruncate //先拷贝,再清空。
missingok //丢了也没关系,热日志会出现中断
ifempty //即使日志文件为空,到日期也切割
notifempty //为空者不切割
mail Email //切割后的日志文件,不在本地保存,发送邮件到其他地方。
nomail //生成的日志不发送,在本地使用
olddir Directory //另存为的地址,如果不写则默认是在同一个目录下边。
noolddir //转存文件都保存在本地。
sharedscripts //运行脚本,为脚本添加的a权限后需要暂时调整权限
postrotate //切割之后,执行脚本
prefotate //切割之前,执行脚本时间参数 daily //每天 weekly //每周 mounthly //每月 yearly //每年 rotate count //保存几份。
dateext //使用当前日期。
size(minisize) //达到多少才切割,默认单位是M,sizeksizem默认单位是kb。size = 5
- authpriv.* /var/log/secure
-
- vim /etc/logrotate.d/secure
-
- /var/log/secure { missingok notifempty daily create rotate 4 compress }
-
- useradd zhangsan
-
- echo 123.com | passwd --stdin zhangsan
-
- su - zhangsan exit
-
- tail /var/log/secure
手动切割日志:
- logrotate -vf /etc/logrotate.d/secure
- ls /var/log/
如果有特殊权限,而每次切割完成之后,都需要重新启动rsyslog服务,需要写脚本支持
- /var/log/secure {
-
- sharedscripts
-
- prerotate
-
- /usr/bin/chattr -a /var/log/secure
-
- endscript
-
- missingok
-
- notifempty
-
- daily
-
- create
-
- rotate 4
-
- compress
-
- sharedscripts
-
- postrotate
-
- /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null
-
- /usr/bin/chattr +a /var/log/secure
-
- endscript
-
- }
-
- vim /root/cut_nginx_log.sh
-
- #!/bin/bash
-
- LOG_PATH=/var/log/nginx/
-
- PID=/var/run/nginx.pid
-
- mv ${LOG_PATH}access.log
-
- ${LOG_PATH}access$(date +%F).log
-
- mv ${LOG_PATH}error.log ${LOG_PATH}error$(date +%F).log
-
- kill -USR1 cat ${PID}
-
- chmod +x /root/cut_nginx_log.sh
-
- crontab -e
-
- 30 23 * * * /bin/bash /usr/local/nginx/cut_nginx_log.sh
-
- vim /etc/logrotate.d/nginx
-
- /var/log/nginx/*.log {
-
- daily
-
- dateext
-
- compress
-
- rotate 7
-
- sharedscripts
-
- postrotate
-
- kill -USR1 cat /var/run/nginx.pid
-
- endscript
-
- }
-
- logrotate -d -f /etc/logrotate.d/nginx 检测运行
-
- crontab -e
-
- 30 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。