有很多朋友问郑州Linux培训哪家好?千锋老师要回答这个问题关键还是要看课程。千锋坚持用良心做教育,拒绝浮夸宣传,以实际课程向学员们展示千锋的实力,已收到大家的一致好评。比如这次,千锋老师为大家准备了Linux日志的一些知识点,希望能够对大家有所帮助。
Linux 日志分析
虽然提取信息的时候不总是和你想的一样简单,但是日志中仍有大量信息在等着你。我们可以通过一些基本分析示例,帮助你快速拿来处理你的日志(只是搜索里面有什么)。另外我们还会讲一些分析方法,开始的时候可能要花时间来做配置,但会为以后省很多时间。你可以把分析的示例用在待解析的数据上,比如生成摘要计数,过滤字段值等。
首先我们会演示,你应该如何使用不同的工具在命令行进行日志分析;然后,演示一个日志管理工具,它能够让大多数乏味的工作变得自动化和。
使用 Grep 搜索
搜索文本是找到你想要的信息的基本方法,常用的工具是 Grep 。这个命令行工具,在大多数 Linux 发行版上都有,它支持你用正则表达式来搜索日志。正则表达式是一种用专门语言写成的语句,可用来识别匹配文本,简单的正则表达式是把你搜索的字符串加上引号。
正则表达式
这里有个例子,它在 Ubuntu 的认证日志里搜索 “user hoover”:
$ GREP "USER HOOVER" /VAR/LOG/AUTH.LOG
ACCEPTED PASSWORD FOR HOOVER FROM 10.0.2.2 PORT 4792 SSH2
PAM_UNIX(SSHD:SESSION): SESSION OPENED FOR USER HOOVER BY (UID=0)
PAM_UNIX(SSHD:SESSION): SESSION CLOSED FOR USER HOOVER
构造精确的正则表达式很难。例如我们搜索一个数字,比如端口号“4792” ,它也可以匹配时间戳,URLs和其他不需要的数据。在下面针对 Ubuntu 的例子里,它匹配了 Apache 日志,但这并不是我们想要的。
$ grep "4792" /var/log/auth.log
Accepted password for hoover from 10.0.2.2 port 4792 ssh2
74.91.21.46 - - [31/Mar/2015:19:44:32 +0000] "GET /scripts/samples/search?q=4972HTTP/1.0" 404 545 "-" "-”
延伸搜索
另一个有用的技巧是你可以用Grep 做延伸搜索,它会输出匹配项的前几行和后几行内容。它可以帮你调试是什么导致了错误或问题。B 选项指定显示匹配项前面的行数,A 选项指定显示匹配项后面的行数。如下所示,我们可以看到,当有人以 admin 身份登陆失败后, 反向映射也会失败,这说明他们可能没有有效的域名。这很可疑!
$ grep -B 3 -A 2 'Invalid user' /var/log/auth.log
Apr 28 17:06:20 ip-172-31-11-241 sshd[12545]: reverse mapping checking getaddrinfo for 216-19-2-8.commspeed.net[216.19.2.8] failed - POSSIBLE BREAK-IN ATTEMPT!
Apr 28 17:06:20 ip-172-31-11-241 sshd[12545]: Received disconnect from 216.19.2.8: 11: Bye Bye [preauth]
Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: Invalid user; admin from 216.19.2.8
Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: input_userauth_request: invalid user admin [preauth]
Apr 28 17:06:20 ip-172-31-11-241 sshd[12547]: Received disconnect from 216.19.2.8: 11: Bye Bye [preauth]