Petiti - 适用于 Linux 系统管理员的开源日志分析工具
Petit 是一款免费开源的基于命令行的日志分析工具,适用于类 Unix 和 Cygwin 系统,旨在快速分析企业环境中的日志文件。
它旨在遵循小而快速且易于使用的 Unix 哲学,可用于检查/支持不同的日志文件格式,包括 syslog 和 Apache 日志文件。
小特点
- 支持日志分析。
- 自动检测并支持各种日志文件格式(例如 Syslog、Apache Access、Apache Error、Snort Log、Linux Secure Log 和原始日志文件)。
- 支持日志哈希。
- 支持命令行绘图。
- 支持日志数据中常见停用词的单词发现和计数。
- 支持日志缩减,方便阅读。
- 提供各种默认和特制的过滤器。
- 支持指纹,可用于识别和排除重新启动签名。
- 为宽屏终端和字符选择等提供多种输出选项。
在本教程中,我们将向您展示如何在Linux中安装和使用Petit日志分析工具,以多种方式从系统日志中提取有用的信息。
如何在Linux中安装和使用Petit日志分析工具
Petit 可以从 Debian/Ubuntu 及其衍生产品的默认存储库安装,使用 apt 包管理工具,如下所示。
sudo apt install petit
在 RHEL/CentOS/Fedora 系统上,像这样下载并安装 .rpm 包。
wget http://crunchtools.com/wp-content/files/petit/petit-current.rpm
rpm -i petit-current.rpm
安装完成后,就可以通过示例查看 Petit 的基本用法了。
散列日志文件
这是一个简单的小函数——它总结了日志文件中发现的行数。它的输出包括在日志中找到的相似行的数量以及该组的大致情况,如下所示。
petit --hash /var/log/yum.log
OR
petit --hash --fingerprint /var/log/messages
2: Mar 18 14:35:54 Installed: libiec61883-1.2.0-4.el6.x86_64
2: Mar 18 15:25:18 Installed: xorg-x11-drv-i740-1.3.4-11.el6.x86_64
1: Dec 16 12:36:23 Installed: 5:mutt-1.5.20-7.20091214hg736b6a.el6.x86_64
1: Dec 16 12:36:22 Installed: mailcap-2.1.31-2.el6.noarch
1: Dec 16 12:40:49 Installed: mailx-12.4-8.el6_6.x86_64
1: Dec 16 12:40:20 Installed: man-1.6f-32.el6.x86_64
1: Dec 16 12:43:33 Installed: sysstat-9.0.4-31.el6.x86_64
1: Dec 16 12:36:22 Installed: tokyocabinet-1.4.33-6.el6.x86_64
1: Dec 16 12:36:22 Installed: urlview-0.9-7.el6.x86_64
1: Dec 16 12:40:19 Installed: xz-4.999.9-0.5.beta.20091007git.el6.x86_64
1: Dec 16 12:40:19 Installed: xz-lzma-compat-4.999.9-0.5.beta.20091007git.el6.x86_64
1: Dec 16 12:43:31 Updated: 2:tar-1.23-15.el6_8.x86_64
1: Dec 16 12:43:31 Updated: procps-3.2.8-36.el6.x86_64
1: Feb 18 12:40:27 Erased: mysql
1: Feb 18 12:40:28 Erased: mysql-libs
1: Feb 18 12:40:22 Installed: MariaDB-client-10.1.21-1.el6.x86_64
1: Feb 18 12:40:12 Installed: MariaDB-common-10.1.21-1.el6.x86_64
1: Feb 18 12:40:10 Installed: MariaDB-compat-10.1.21-1.el6.x86_64
1: Feb 18 12:54:50 Installed: apr-1.3.9-5.el6_2.x86_64
......
查找守护进程生成的行数
使用 --daemon
选项有助于输出特定系统守护程序生成的行的基本报告,如下例所示。
petit --hash --daemon /var/log/syslog
847: vmunix:
48: CRON[#]:
30: dhclient[#]:
26: nm-dispatcher:
14: rtkit-daemon[#]:
6: smartd[#]:
5: ntfs-#g[#]:
4: udisksd[#]:
3: mdm[#]:
2: ag[#]:
2: syslogd
1: cinnamon-killer-daemon:
1: cinnamon-session[#]:
1: pulseaudio[#]:
查找主机产生的行数
要查找特定主机生成的所有行数,请使用 --host
标志,如下所示。在分析多个主机的日志文件时,这非常有用。
petit --host /var/log/syslog
999: tecmint
在日志文件中执行字数统计
该函数用于搜索并显示日志文件中具有定性意义的单词。
petit --wordcount /var/log/syslog
845: [
97: [mem
75: ACPI:
64: pci
62: debian-sa#
62: to
51: USB
50: of
49: device
47: &&
47: (root)
47: CMD
47: usb
41: systemd#
36: ACPI
32: >
32: driver
32: reserved
31: (comm#
31: -v
绘制日志文件图形
这适用于键/值条形图格式,用于并排比较分布,如下面的示例所示。
要在系统日志中绘制前 60 秒的图表,请使用 --sgrapg
标志,如下所示。
petit --sgraph /var/log/syslog
############################################################
59 29 58
Start Time: 2017-06-08 09:45:59 Minimum Value: 0
End Time: 2017-06-08 09:46:58 Maximum Value: 1
Duration: 60 seconds Scale: 0.166666666667
跟踪日志文件中的特定单词
此示例演示如何在日志文件中跟踪和绘制特定单词(例如下面命令中的“dhcp”)。
cat /var/log/messages | grep error | petit --mgraph
# #
# #
# #
# #
# #
############################################################
10 40 09
Start Time: 2017-06-08 10:10:00 Minimum Value: 0
End Time: 2017-06-08 11:09:00 Maximum Value: 2
Duration: 60 minutes Scale: 0.333333333333
此外,要显示日志文件中每个条目的示例,请使用 –allsamples 选项,如下所示。
petit --hash --allsample /var/log/syslog
重要小文件:
- /var/lib/petit/fingerprint_library – 用于构建自定义指纹文件。
- /var/lib/petit/fingerprints(聚合指纹文件)——用于过滤掉重新启动和系统管理员认为不重要的其他事件。
- /var/lib/petit/过滤器/
有关更多信息和使用选项,请阅读 petit 手册页,如下所示。
man petit
OR
petit -h
小主页:http://crunchtools.com/software/petit/
另请阅读有关 Linux 中日志监控和管理的有用指南:
- 4 个优秀的 Linux 开源日志监控和管理工具
- 如何在 Linux 中管理系统日志(配置、轮换和导入数据库)
- 如何在 Linux 中使用 Logrotate 设置和管理日志轮转
- Linux上使用“Log.io”工具实时监控服务器日志
您可以通过下面的反馈表向我们发送任何疑问,或者与我们分享您听说过或遇到过的有用的 Linux 日志分析工具的信息。