「轻松掌握」Linux开源日志分析工具使用方法 (linux 开源日志分析工具)

随着互联网技术的不断发展,服务器的运维管理也变得越来越复杂。面对庞大的服务器群,如何快速定位和解决各种故障成为运维工作中的一大挑战。在这个过程中,日志分析工具成为了不可或缺的一部分。

日志分析是一种基于日志的数据挖掘技术。通过对应用程序、操作系统和网络设备等系统产生的各种日志进行收集、过滤、统计、分析和展示,从中获取有价值的信息。

Linux系统中,常用的日志文件包括/var/log/messages、/var/log/secure、/var/log/mllog等,记录了系统故障、安全事件、邮件发送等各种操作。

为了更好地分析这些日志数据,Linux社区开发了很多开源的日志分析工具,如ELK、Graylog、Fluentd等。在此,我们介绍其中一款经典的日志分析工具——Logwatch的使用方法。

一、Logwatch介绍

Logwatch是一款基于Perl语言编写的开源日志分析工具,可以定期对Linux系统的日志文件进行统计和分析,并生成详细的报告。其主要特点为:易于安装、使用方便、数据格式清晰、定制性强。

二、安装Logwatch

在CentOS系统中,我们可以使用yum命令安装Logwatch,命令如下:

“`

sudo yum install logwatch -y

“`

安装完成后,我们需要进行一些配置。

三、配置Logwatch

Logwatch的配置文件为/etc/logwatch/conf/logwatch.conf。我们可以根据系统具体情况进行定制。

1. 邮件通知设置

Logwatch可以将分析结果发送至指定的邮箱中。我们可以在配置文件中添加以下内容,用于设置邮件服务器信息和接收日志报告的邮箱地址:

“`

MlTo = yourname@example.com

MlFrom = logwatch@example.com

# TP服务器地址

MlServer = tp.example.com

“`

2. 日志文件设置

我们需要在配置文件中添加需要分析的日志文件路径,一般主要包括/var/log/messages、/var/log/secure、/var/log/mllog等,具体示例如下:

“`

LogFile = /var/log/messages

LogFile = /var/log/secure

LogFile = /var/log/mllog

“`

3. 日志报告定制

Logwatch默认会生成一份全面的日志报告,但我们可以根据需要进行精简或添加一些特定的信息。以下示例为添加Apache服务器的日志信息:

“`

# Apache日志统计

$ cat /var/log/httpd/access_log | logresolve |awk ‘($9 !~ /200|304/){print}’ | sort | uniq -c | sort -n > /tmp/access_log_summary

cat /tmp/access_log_summary

“`

这条命令实际上是将Apache日志文件进行了过滤、统计和排序,最后将结果保存到了/tmp/access_log_summary文件中。我们可以将其添加到配置文件中,使Logwatch在生成报告时自动包含该信息。

四、使用Logwatch

1. 手动运行Logwatch命令

Logwatch的常用命令为logwatch,我们可以手动运行该命令以执行日志分析:

“`

logwatch

“`

执行完成后,Logwatch将输出一份详细的报告,其中包括系统概览、登录尝试、磁盘使用情况、邮件发送统计等各种信息。

2. 定时运行Logwatch

为了方便、自动地获取日志分析结果,我们可以通过crontab定时执行Logwatch命令。以下示例为每天凌晨1点自动运行Logwatch命令:

“`

0 1 * * * /usr/in/logwatch

“`

五、小结

Logwatch是一款简单易用、功能强大的开源日志分析工具,可以帮助Linux系统管理员快速定位和解决故障。通过本文的介绍,相信读者已经掌握了Logwatch的安装、配置和使用方法,可以在实际工作中更加高效地处理日常的运维问题。

相关问题拓展阅读:

Linux系统日志怎么查看

1. 前言

在Linux日常管理中,我们肯定有查看某些服务的日志需求,或者是系统本身的日志。本文主要介绍如何查看Linux的

系统日志

,包括文件的路径、工具的使用等等。会看Linux日志是非常重要的,不仅在日常操作中可以迅速排错,也可以快速的定位。

2. 如何查看Linux日志

Linux日志文件的路径一般位于,/var/log/,比如ngix的日志路径为/var/log/nginx/,如果要查看某服务的日志,还可以使用systemctl status ,比如查看ssh服务的壮态,systemctl status sshd

查看Linux某服务的日志

Liunx的

配置文件

在/etc/rsyslog.d里,可以看到如下信息

linux系统

当中,有三个主要的日志子系统:

1、连接时间日志:由多个程序执行,把记录写入到/var/log/wtmp和/var/run/utmp,

login等程序会更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

2、进程统计:由系统内核执行,当一个进程终止时,为每个进程往进程统计文件中写一个记录。进程统计的目的是为系统中的基本服务提供命令使用统计

3、错误日志:由rsyslogd守护程序执行,各种系统

守护进程

、用户程序和内核通过rsyslogd守护程序向文件/var/log/messages报告值得注意的时间。另外有许多linux程序创建日志,像HTTP和FTP这样提供的服务器也保持详细的日志。

4、其他日志……

查看Linux日志默认路径

可以看到在/var/log目录下存在很多的日志文件,接下来就对里面的一些常用日志文件进行分析

主要日志文件介绍:

内核及公共消息日志:/var/log/messages

计划任务日志:/var/log/cron

系统引导日志:/var/log/dmesg

邮件系统日志:/var/log/maillog

用户登录日志:/var/log/lastlog

/var/log/boot.log(记录系统在引导过程中发生的时间)

/var/log/secure (用户验证相关的安全性事件)

/var/log/wtmp(当前登录用户详细信息)

/var/log/btmp(记录失败的的记录)

/var/run/utmp(用户登录、注销及系统开、关等事件)

日志文件详细介绍:

/var/log/secure

Linux系统安全日志,记录用户和工作组的情况、用户登陆认证情况

例子:我创建了一个zcwyou的用户,然后改变了该用户的密码,于是该信息就被记录到该日志下

Linux系统安全日志默认路径

该日志就详细的记录了作的过程。

内核及公共信息日志,是许多进程日志文件氏答唯的汇总,从该文件中可以看出系统任何变化

查看

Linux内核

及公共信息日志

系统引导日志

该日志使用dmesg命令快速查看最后一次系统引导的引导日志

查看Linux系统系统引导日志

最近的用户登录事件,一般记录最后一次的登录事件

该日志不能用诸如cat、tail等查看,因为该日志里面是二进制文件,可以用lastlog命令查看,它根据UID排序显示登录名、

端口号

(tty)和上次登录时间。如果一个用户从未登录过,lastlog显示 Never logged。

该日志文件永久记录每个用户登录、注销歼培及系统的启动、停机的事件。该日志为二进制文件,不能用诸如tail/cat/等命令,使用last命令查看。

记录邮件的收发

此文件是记录错误登录的日志,可以记录有人使用暴力破解ssh服务的日志。该文件用lastb打开

该日志记录当前用户登录的情况,不会永久保存记录。可以用who/w命令来查看

3. 常用的日志分析工具与使用方法

3.1 统计一个文本中包含字符个数

3.2 查看当天访问排行前10的url

3.3 查看apache的进程数

3.4 访问量前10的IP

cut部分表示取第1列即IP列,取第4列则为URL的访问量

3.5 查看最耗时的举薯页面

按第2列响应时间逆序排序

3.6 使用grep查找文件中指定字符出现的次数

-o 指示grep显示所有匹配的地方,并且每一个匹配单独一行输出。这样只要统计输出的行数就可以知道这个字符出现的次数了。

4. 总结

查看Linux日志需求了解和熟悉使用一些常用的工具方能提升我们的查找和定位效率。比如使用 Grep 搜索,使用Tail命令,使用Cut,使用AWK 和 Grok 解析日志和使用 Rsyslog 和 AWK 过滤等等,只要能掌握这些工具。我们才能高效地处理和定位故障点。

linux日志 audit

我们知道在Linux系统中有大量的日志文件可以用于查看

应用程序

的各种信息,但是对于用户的操作行为(如某用者蚂源户修改删除了某文件)却无法通过这些日志文件来查看,如果我们想实现监管企业员工的操作行为就需要开启审计功能,也就是audit。

1、首先执行以下命令开启auditd服务

| 1 | service auditd start |

2、接着首态查看看auditd的服务状态,有两种方法可以实现,使用auditctl命令时主要看enabled是否为1,1为开启,0为关闭

“# service auditd status` |

`auditd (pid) is running…

“# auditctl -s

| 5 | AUDIT_STATUS: enabled=1 flag=1 pid=20234 rate_limit=0 backlog_limit=320 lost=0 backlog=0 |

3、开启了autid服务后,所有的审计日志会记录在/var/log/audit/audit.log文件中,该文件记录格式是每行以type开头,其中红框处是事件发生的时间(代表从1970年1月1日到现在过了多久,可以用date命令转换格式),冒号后面的数字是事件ID,同一个事件ID是一样的。

4、audit可以自定义对指定的文件或命令进行审计(如监视rm命令被执行、/etc/passwd文件内容被改变),只要配置好对应规则即可,配置规则可以通过

命令行

(临时生效)或者编辑

配置文件物肢

(永久生效)两种方式来实现。

命令行语法(临时生效****)****:

| 1 | auditctl -w /bin/“rm -p x -k removefile “#-w指定所要监控的文件或命令 |

| 2 | #-p指定监控属性,如x执行、w修改 |

| 3 | #-k是设置一个关键词用于查询 |

编辑配置文件(****永久生效)****:

auditd的配置文件为/etc/audit/audit下的auditd.conf 和audit.rules,auditd.conf 主要是定义了auditd服务日志和性能等相关配置,audit.rules才是定义规则的文件,下面是一个例子,其实就是把auditctl的命令直接拿过来即可,auditctl里支持的选项都可以在这个文件里指定

修改完后重启服务

| 1 | service auditd restart |

5、如果直接使用tailf等查看工具进行日志分析会比较麻烦,好在audit已经提供了一个更好的事件查看工具——

ausea****rch,

使用auserach -h查看下该命令的用法:

这里列出几个常用的选项:

-a number #只显示事件ID为指定数字的日志信息,如只显示926事件:ausearch -a 926

-c commond #只显示和指定命令有关的事件,如只显示rm命令产生的事件:auserach -c rm

-i #显示出的信息更清晰,如事件时间、相关

用户名

都会直接显示出来,而不再是数字形式

-k #显示出和之前auditctl -k所定义的关键词相匹配的事件信息

通过下图可以看到每个事件被虚线分开,用户名和执行的操作也都能清晰的看到了:

6、使用auditctl还可以查看和清空规则

查看源码

摘自

| 1 | auditctl -l 查看定义的规则 |

linux 开源日志分析工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 开源日志分析工具,「轻松掌握」Linux开源日志分析工具使用方法,Linux系统日志怎么查看,linux日志 audit的信息别忘了在本站进行查找喔。


数据运维技术 » 「轻松掌握」Linux开源日志分析工具使用方法 (linux 开源日志分析工具)