linux系统日志解析-阿里云开发者社区

开发者社区> 科技小能手> 正文

linux系统日志解析

简介:
+关注继续查看

Linux

  在Linux系统中,有三类主要的日志子系统:

时间

服务

网络

常用的日志文件如下:

  
access-log 纪录HTTP/web的传输    acct/pacct 纪录用户命令    aculog 纪录MODEM的活动    btmp 纪录失败的纪录    lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录    messages 从syslog中记录信息(有的链接到syslog文件)    sudolog 纪录使用sudo发出的命令    sulog 纪录使用su命令的使用    syslog 从syslog中记录信息(通常链接到messages文件)    utmp 纪录当前登录的每个用户    wtmp 一个用户每次登录进入和退出时间的永久纪录    xferlog 纪录FTP会话

下面是日志级别

1.emerg 
紧急 - 系统无法使用。
"Child cannot open lock file. Exiting"
2.alert 
必须立即采取措施。
"getpwuid: couldn’t determine user name from uid"
3.crit 
致命情况。
"socket: Failed to get a socket, exiting child"
4.error 
错误情况。
"Premature end of script headers"
5.warn 
警告情况。
"child process 1234 did not exit, sending another SIGHUP"
6.notice 
一般重要情况。
"httpd: caught SIGBUS, attempting to dump core in ..."
7
info 
普通信息。
"Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."
8.debug 
出错级别信息
"Opening config file ..."
当指定了特定级别时,任何级别高于他的信息也会同时报告。比如说,当指定了LogLevel info时,任何 noticewarn级别的信息也会被记录。

utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键--保持用户 登录进入和退出的纪录。有关当前登录用户的信息记录在文件utmp中;登录进入和退出纪录在文件wtmp中;最后一次登录文件可以用lastlog命令察 看。数据交换、关机和重起也记录在wtmp文件中。所有的纪录都包含时间戳。这些文件(lastlog通常不大)在具有大量用户的系统中增长十分迅速。例 如wtmp文件可以无限增长,除非定期截取。许多系统以一天或者一周为单位把wtmp配置成循环使用。它通常由cron运行的脚本来修改。这些脚本重新命 名并循环使用wtmp文件。通常,wtmp在第一天结束后命名为wtmp.1;第二天后wtmp.1变为wtmp.2等等,直到wtmp.7。

每次有一个用户登录时,login程序在文件lastlog中察看用户的UID。如果找到了, 则把用户上次登录、退出时间和主机名写到标准输出中,然后login程序在lastlog中纪录新的登录时间。在新的lastlog纪录写入后,utmp 文件打开并插入用户的utmp纪录。该纪录一直用到用户登录退出时删除。utmp文件被各种命令文件使用,包括who、w、users和finger。

下一步,login程序打开文件wtmp附加用户的utmp纪录。当用户登录退出时,具有更新时间戳的同一utmp纪录附加到文件中。wtmp文件被程序last和ac使用。

进程统计

linux可以跟踪每个用户运行的每条命令,如果想知道昨晚弄乱了哪些重要的文件,进程 统计子系统可以告诉你。它对还跟踪一个侵入者有帮助。与连接时间日志不同,进程统计子系统缺省不激活,它必须启动。在Linux系统中启动进程统计使用 accton命令,必须用root身份来运行。Accton命令的形式accton file,file必须先存在。先使用touch命令来创建pacct文件:touch /var/log/pacct,然后运行accton: accton /var/log/pacct。一旦accton被激活,就可以使用lastcomm命令监测系统中任何时候执行的命令。若要关闭统计,可以使用不带任何 参数的accton命令。

lastcomm命令报告以前执行的文件。不带参数时,lastcomm命令显示当前统计文件生命周期内纪录的所有命令的有关信息。包括命令名、用户、tty、命令花费的CPU时间和一个时间戳。如果系统有许多用户,输入则可能很长。下面的例子就体现了这点:

  
crond F root ?? 0.00 secs Sun Aug 20 00:16    promisc_check.s S root ?? 0.04 secs Sun Aug 20 00:16    promisc_check root ?? 0.01 secs Sun Aug 20 00:16    grep root ?? 0.02 secs Sun Aug 20 00:16    tail root ?? 0.01 secs Sun Aug 20 00:16    sh root ?? 0.01 secs Sun Aug 20 00:15    ping S root ?? 0.01 secs Sun Aug 20 00:15    ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15    sh root ?? 0.01 secs Sun Aug 20 00:15    ping S root ?? 0.02 secs Sun Aug 20 00:15    ping6.pl F root ?? 0.02 secs Sun Aug 20 00:15    sh root ?? 0.02 secs Sun Aug 20 00:15    ping S root ?? 0.00 secs Sun Aug 20 00:15    ping6.pl F root ?? 0.01 secs Sun Aug 20 00:15    sh root ?? 0.01 secs Sun Aug 20 00:15    ping S root ?? 0.01 secs Sun Aug 20 00:15    sh root ?? 0.02 secs Sun Aug 20 00:15    ping S root ?? 1.34 secs Sun Aug 20 00:15    locat



本文转自 houzaicunsky 51CTO博客,原文链接:http://blog.51cto.com/hzcsky/562273

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
6911 0
系统日志文件
常见日志文件 /var/log/boot.log 开机启动的时候系统内核会去检测与启动硬件,接下来开始启动各种内核支持得功能等。这些流程都会记录在/var/log/boot.log 里面。不过这个文件只会存储本次开机启动的信息,之前的启动信息并不会保留下来 /var/log/cron c.
1263 0
Linux下C编程,子进程创建函数fork() 执行解析
最近在看进程间的通信,看到了fork()函数,虽然以前用过,这次经过思考加深了理解。现总结如下: 1.函数本身   (1)头文件   #include  #include   (2)函数原型   pid_t fork( void);  (pid_t 是一个宏定义,其实质是int 被定义在#include中)  返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1   (3)函数说明   一个现有进程可以调用fork函数创建一个新进程。
632 0
Linux服务器日志备份到本地
1、确定线上服务器的日志文件名称和路径 2、一台本地服务器能连接公网,创建一个日志账户,设置密码 3、线上服务器要求:  a、确定是否已安装sshpass包   [root@iZwz9ghdadtaey1msor7gnZ sh]# rpm -qa|grep sshpass   sshpass-1.
886 0
14426
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载