linux系统日志message 分析,Linux系统日志及日志分析
Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息。
大部分Linux发行版默认的日志守护进程为 syslog,位于 /etc/syslog 或 /etc/syslogd,默认配置文件为 /etc/syslog.conf,任何希望生成日志的程序都可以向 syslog 发送信息。
Linux系统内核和许多程序会产生各种错误信息、警告信息和其他的提示信息,这些信息对管理员了解系统的运行状态是非常有用的,所以应该把它们写到日志文件中去。完成这个过程的程序就是syslog。syslog可以根据日志的类别和优先级将日志保存到不同的文件中。例如,为了方便查阅,可以把内核信息与其他信息分开,单独保存到一个独立的日志文件中。默认配置下,日志文件通常都保存在“/var/log”目录下。
日志类型
下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:
类型
说明
auth
用户认证时产生的日志,如login命令、su命令。
authpriv
与 auth 类似,但是只能被特定用户查看。
console
针对系统控制台的消息。
cron
系统定期执行计划任务时产生的日志。
daemon
某些守护进程产生的日志。
ftp
FTP服务。
kern
系统内核消息。
local0.local7
由自定义程序使用。
lpr
与打印机活动有关。
邮件日志。
mark
产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发生故障的大概时间。
news
网络新闻传输协议(nntp)产生的消息。
ntp
网络时间协议(ntp)产生的消息。
user
用户进程。
uucp
UUCP子系统。
日志优先级
常见的日志优先级请见下标:
优先级
说明
emerg
紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert
需要立即修复,例如系统数据库损坏。
crit
危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err
一般错误消息。
warning
警告。
notice
不是错误,但是可能需要处理。
info
通用性消息,一般用来提供有用信息。
debug
调试程序产生的信息。
none
没有优先级,不记录任何日志消息。
常见日志文件
所有的系统应用都会在 /var/log 目录下创建日志文件,或创建子目录再创建日志文件。例如:
文件/目录
说明
/var/log/boot.log
开启或重启日志。
/var/log/cron
计划任务日志
/var/log/maillog
邮件日志。
/var/log/messages
该日志文件是许多进程日志文件的汇总,从该文件可以看出任何入侵企图或成功的入侵。
/var/log/httpd 目录
Apache HTTP 服务日志。
/var/log/samba 目录
samba 软件日志
/etc/syslog.conf 文件
/etc/syslog.conf 是 syslog 的配置文件,会根据日志类型和优先级来决定将日志保存到何处。典型的 syslog.conf 文件格式如下所示:
*.err;kern.debug;auth.notice /dev/console
daemon,auth.notice /var/log/messages
lpr.info /var/log/lpr.log
mail.* /var/log/mail.log
ftp.* /var/log/ftp.log
auth.* @see.xidian.edu.cn
auth.* root,amrood
netinfo.err /var/log/netinfo.log
install.* /var/log/install.log
*.emerg *
*.alert |program_name
mark.* /dev/console
第一列为日志类型和日志优先级的组合,每个类型和优先级的组合称为一个选择器;后面一列为保存日志的文件、服务器,或输出日志的终端。syslog 进程根据选择器决定如何操作日志。
对配置文件的几点说明:
日志类型和优先级由点号(.)分开,例如 kern.debug 表示由内核产生的调试信息。
kern.debug 的优先级大于 debug。
星号(*)表示所有,例如 *.debug 表示所有类型的调试信息,kern.* 表示由内核产生的所有消息。
可以使用逗号(,)分隔多个日志类型,使用分号(;)分隔多个选择器。
对日志的操作包括:
将日志输出到文件,例如 /var/log/maillog 或 /dev/console。
将消息发送给用户,多个用户用逗号(,)分隔,例如 root, amrood。
通过管道将消息发送给用户程序,注意程序要放在管道符(|)后面。
将消息发送给其他主机上的 syslog 进程,这时 /etc/syslog.conf 文件后面一列为以@开头的主机名,例如@see.xidian.edu.cn。
logger 命令
logger 是Shell命令,可以通过该命令使用 syslog 的系统日志模块,还可以从命令行直接向系统日志文件写入一行信息。
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 192.168.0.1 | logger -it logger_test -p local3.notice&
$ tail -f /var/log/userlog
Oct 6 12:48:43 kevein logger_test[22484]: PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
Oct 6 12:48:43 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=1 ttl=253 time=49.7 ms
Oct 6 12:48:44 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=2 ttl=253 time=68.4 ms
Oct 6 12:48:45 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=3 ttl=253 time=315 ms
Oct 6 12:48:46 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=4 ttl=253 time=279 ms
Oct 6 12:48:47 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=5 ttl=253 time=347 ms
Oct 6 12:48:49 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=6 ttl=253 time=701 ms
Oct 6 12:48:50 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=7 ttl=253 time=591 ms
Oct 6 12:48:51 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=8 ttl=253 time=592 ms
Oct 6 12:48:52 kevein logger_test[22484]: 64 bytes from 192.168.0.1: icmp_seq=9 ttl=253 time=611 ms
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:设置日志类型和优先级。
日志转储
日志转储也叫日志回卷或日志轮转。Linux中的日志通常增长很快,会占用大量硬盘空间,需要在日志文件达到指定大小时分开存储。
syslog 只负责接收日志并保存到相应的文件,但不会对日志文件进行管理,因此经常会造成日志文件过大,尤其是WEB服务器,轻易就能超过1G,给检索带来困难。
大多数Linux发行版使用 logrotate 或 newsyslog 对日志进行管理。logrotate 程序不但可以压缩日志文件,减少存储空间,还可以将日志发送到指定 E-mail,方便管理员及时查看日志。
例如,规定邮件日志 /var/log/maillog 超过1G时转储,每周一次,那么每隔一周 logrotate 进程就会检查 /var/log/maillog 文件的大小:
如果没有超过1G,不进行任何操作。
如果在1G~2G之间,就会创建新文件 /var/log/maillog.1,并将多出的1G日志转移到该文件,以给 /var/log/maillog 文件瘦身。
如果在2G~3G之间,会继续创建新文件 /var/log/maillog.2,并将 /var/log/maillog.1 的内容转移到该文件,将 /var/log/maillog 的内容转移到 /var/log/maillog.1,以保持 /var/log/maillog 文件不超过1G。
可以看到,每次转存都会创建一个新文件(如果不存在),命名格式为日志文件名加一个数字(从1开始自动增长),以保持当前日志文件和转存后的日志文件不超过指定大小。
logrotate 的主要配置文件是 /etc/logrotate.conf,/etc/logrotate.d 目录是对 /etc/logrotate.conf 的补充,或者说为了不使 /etc/logrotate.conf 过大而设置。
可以通过 cat 命令查看它的内容:
$cat /etc/logrotate.conf
# see "man logrotate" for details //可以查看帮助文档
# rotate log files weekly
weekly //设置每周转储一次
# keep 4 weeks worth of backlogs
rotate 4 //最多转储4次
# create new (empty) log files after rotating old ones
create //当转储后文件不存储时创建它
# uncomment this if you want your log files compressed
#compress //以压缩方式转储
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d //其他日志文件的转储方式,包含在该目录下
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { //设置/var/log/wtmp日志文件的转储参数
monthly //每月转储
create 0664 root utmp //转储后文件不存在时创建它,文件所有者为root,所属组为utmp,对应的权限为0664
rotate 1 //最多转储一次
}
注意:include 允许管理员把多个分散的文件集中到一个,类似于C语言的 #include,将其他文件的内容包含进当前文件。
include 非常有用,一些程序会把转储日志的配置文件放在 /etc/logrotate.d 目录,这些配置文件会覆盖或增加 /etc/logrotate.conf 的配置项,如果没有指定相关配置,那么采用 /etc/logrotate.conf 的默认配置。
所以,建议将 /etc/logrotate.conf 作为默认配置文件,第三方程序在 /etc/logrotate.d 目录下自定义配置文件。
logrotate 也可以作为命令直接运行来修改配置文件。
linux系统日志message 分析,Linux系统日志及日志分析相关推荐
- Linux学习-67-日志服务器设置和日志分析工具(logwatch)安装及使用
15.5 日志服务器设置过程 使用"@IP:端口"或"@@IP:端口"的格式可以把日志发送到远程主机上.可以解决:管理几十台服务器,每天的重要工作就是查看这些服 ...
- 网站服务器日志分析,如何进行网站日志分析(理论篇)
搜索引擎通过蜘蛛爬行抓取网页,通过分析网站日志,可以了解蜘蛛在网站中的抓取规律,以及网站在结构.收录.内容更新等方面存在的不足. 在进行日志分析时,一个可以事半功倍的工具是必不可少的,例如光年日志分析 ...
- php iis日志分析,星外系统IIS日志分析常用的几个命令小结
命令中的{0}代表源日志文件的路径,实际运行的时候请替换为真实路径 命令中的{1}代表日志导出到的文件的路径,实际运行的时候请替换为真实路径 例如: 7i24iislog.exe -i:BIN -o: ...
- 《Unix/Linux网络日志分析与流量监控》2014年11月底出版
2014年11月 <Unix/Linux网络日志分析与流量监控>重磅新书出版 近日,历时3年创作的75万字书稿已完成,本书目前正在出版社清样阶段即将出版发行.本书紧紧围绕网络安全的主题,对 ...
- 《Unix/Linux日志分析与流量监控》书稿完成
<Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...
- Linux文件系统与日志分析
文章目录 引言 一.inode和block 1.inode和block概述 2.inode的内容 2.1 inode包含文件的元信息(文件属性) 2.2 用stat命令查看某个文件的inode信息 2 ...
- ELK企业级日志分析系统部署
ELK企业级日志分析系统部署 文章目录 ELK企业级日志分析系统部署 1.什么是ELK日志分析系统 2.ELK日志分析系统诞生的原因 3.ELK日志分析系统的核心开源工具 3.1Logstash解析 ...
- 大话日志分析与管理,答题赠书活动
大话日志分析与管理,有奖赠书活动,欢迎大家参与~ 随着IT运维管理工作的复杂程度不断增加,仅靠几个"技术大拿"来包打天下的已不能满足要求,每当系统或网络故障来临时再去被动的查找原因 ...
- WOT演讲回顾——海量日志分析与智能运维
以下内容根据日志易创始人 & CEO 陈军在 WOT 全球人工智能技术峰会上的演讲整理而成,全文大约7000字,阅读时长10分钟. 大家好,今天我演讲的主题是<海量日志分析与智能运维&g ...
- Windows IIS 日志分析研究(Log Parser Log Parser Lizard Log Parser Studio) update...
Windows主要有以下三类日志记录系统事件:应用程序日志.系统日志和安全日志. 存放目录:X:\Windows\System32\winevt\Logs\ System.evtx 系统日志 App ...
最新文章
- 堆木板问题——木板能堆无限远而不倒吗?
- 【我解C语言面试题系列】003 死循环格式问题小结?
- 正反案例介绍SOLID原则
- Fibonacci思想的灵活应用(洛谷P1011题题解,Java语言描述)
- * Dijkstra 堆优化
- BLE4.0教程四 新增特征值(CC2541)
- android手机状态解释,比方android.os.Build.VERSION.SDK
- mysql 搜索_MySQL模糊搜索的几种姿势
- x61 linux 驱动 无线网卡,联想thinkpadx61无线网卡驱动下载-联想x61无线网卡驱动 win7官方版 - 极光下载站...
- 卸载HP LaserJet 激光打印机的驱动程序--Win7环境
- 编写REG注册表文件
- 硬件工程师基本元器件类复习——三极管
- java根据出生年月计算年龄
- 基于CCS工程MSP430串口升级(三)
- 阿里巴巴社招笔试题——多线程打印(2)
- 2019/04/12 华为通用软件开发工程师现场面试(offer到手)
- 【OpenCV-Python】教程:5-3 光流
- 【Vuforia】制作简单的AR--demo(有卡识别)
- C++函数调用方式(_stdcall, _pascal, _cdecl...)总结
- Python入门---顺序与选择结构
热门文章
- 银行业客户全面老龄化,该如何应对?
- JAVA指定区域内截图_Java+Selenium根据元素创建指定区域截图——Element快照
- fudannlp的maven可编译版本
- Uhuntu搜狗拼音输入法安装详细过程
- Ubuntu 16.10 下 使用 C/C++ IDE anjuta 编译出现You must have `libtool' installed
- QT等待动态图gif加载透明背景lable
- 2022-2027年中国金融科技行业市场调研及未来发展趋势预测报告
- scrapy中文网学习笔记
- kali系统sftp服务
- Java 数据库连接池工作原理