您的位置:首页 > 运维架构 > Linux

linux日志基础知识

2016-08-06 21:52 211 查看
最近,又复习了一下,linux中的日志管理制度;大致可以分为系统日志、程序日志、用户日志三类

系统日志:包括/var/log/{secure,cron,maillog,dmesg,boot.log}等,具体可以通过cat /etc/rsyslog.conf 查看;这些日志文件统一由系统服务rsyslog管理;

rsyslog 安装方法:yum install rsyslog* -y  (注意:空格)

程序日志:顾名思义,就是 一些程序 运行过程中 记录的 日志信息;例如:mysql,apache,nginx,vsftpd程序产生的日志文件;

用户日志:就是和 用户登录或退出系统、认证相关的日志信息;

日志的级别
*debug:错误调试,最低级别。在搭建、测试服务器时需要记录全部信息可以设置为debug, 缺点:占用大量内存
*info:一般记录普通信息,不会导致服务器停掉
*notice:记录不严重,但需注意的
*warn:警告信息,可能有问题,但不会影响到某个daemon(后台程序)运行的信息;基本警告和警告以下级别不会是系统运行不了; 
*err:重大错误信息,这个是很值得去查看的信息,通常它可以帮助我们解决很多问题,比如服务启动不了
*crit:比err还要严重的错误,这个错误已经很严重了
*alert:问题非常严重,比crit更加严重,级别越高表示越严重
*emerg:级别最高,紧急情况,系统几乎要面临死机,通常只有硬件出了问题导致整个内核无法顺利运行,才有这样的信息出现

一直以来,我都不知道 如何 记忆  这些 日志级别;我觉得 好难记忆, 本身就不 经常用, 再 加上 没有 什么 规律 可以 寻找,很是 伤 脑筋,那么怎么 办呢?

【解决办法】调试(debug) 
信息(info) ,需要 注意(notice)
 警告(warn) 和 错误(error) ;一旦 出现
重大 错误(crit) 或者 无法 挽救 的错误 (alert),事态 就 很紧急(emerg)
了 。

注意:以上,只是 个人 记忆 方法, 读者 自己 选择  适合 自己 就好 了;每种 日志 级别 都是 英文或英文的简写,学好 英语 真的 很重要...

安装完,rsyslog服务后,会 在 /etc/init.d/目录下,产生 rsyslog的服务启动脚本文件 【区别于 程序启动文件】

----------------------------------------------------
  /var/log下的常见日志文件内容介绍

----------------------------------------------------

boot.log:记录服务启动,记录dhcp(自动分配IP给用户)

dmesg:记录系统的引导、系统开机启动内核检测过程所产生的信息存放在这个文件

wtmp:记录用户登录、注销及系统开关机的信息

lastlog:记录系统最后登录信息

cron:计划任务有没有执行,执行过程中出错没,编写计划任务是否有问题,都记录在这里

faillog:错误登录信息记录在这个文件

messages:记录大部分系统和应用程序的信息,如果系统出现故障,那么这个日志文件是必须查看的日志文件之一

maillog:与邮件服务有关的日志就存放在这里

/var/log/secure:记录用户登录、用户切换等信息,基本上输入帐号密码的事情都会记录在这个文件里,比如ssh,su,sudu,telnet等一些命令都会被记录

其中,用户日志文件有:

/var/log/lastlog:最近的用户登录事件

/var/log/wtmp:用户登录,注销及系统开、关机时间事件;之前登录的活动用户    wtmp = = who temperary == who current  命令 每次显示的内容 写入文件的结果

/var/run/utmp:当前登录的每个用户的详细信息;当前登录的活动用户    
 utmp == user temperary == users current  好吧,我瞎扯 的 ...

/var/log/btmp:记录用户错误的登录信息      btmp == lastb tmp == lastb 命令 记录 的 日志 信息

以上都属于数据库文件,不能直接用cat,more,less等工具查看

用户登录分析:
who,w,user,last(查看最近哪些用户登录过系统),ac,lastlog(查看所有的用户是否登录过系统)

who 默认调用utmp文件内容(当前的登录活动用户)

w 默认调用utmp文件内容(当前的登录活动用户)可以说 w 是 who 的缩写,两者 看的 内容是 一样的, 前者 信息 少,后者信息 多点 

last  =  who /var/log/wtmp (显示时间是倒置的)         查看用户登录记录   显示当前登陆过的用户 和 以前 登陆 的 用户信息

lastlog :查看系统用户最后一次登录系统时间(会出现某些用户从来未登录的信息)       lastlog == last login log == 上次/最近 一次 用户登陆 信息

ac -d -p :统计用户总共登录的时间(查看wtmp的信息进而汇总)

日志类型:

authpriv :主要与认证有关的机制,例如:login,ssh,su

cron :就是计划任务 cron/at等产生信息记录的地方  

daemon :与各个daemon有关的信息

kern :就是内核(kernel)产生信息的地方

lpr :打印机相关信息

mail :只要与邮件收发有关的信息记录都属于这个

news :与新闻群组服务器有关的东西

rsyslog :就是rsyslogd本身产生的服务

mark :syslog内部功能用于生成时间戳

user :用户程序生成的信息

uucp :由uucp生成的信息

local0~local7 :自定义程序使用,如local5为ssh功能

* :代表除了mark以外的所有服务,就是通配符,只是不能匹配mark

消息发送位置:

本地文件:通常就是文件的绝对路径

打印机:例如/dev/lp0 这个打印机装置

用户名称:显示给用户

远程主机:例如@10.0.10.20

* :所有在线的人

-:异步记录,即不马上写入磁盘,优点:减小磁盘的读写时间,一次性存入磁盘。缺点:断电,日志丢失
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 日志基础