Petiti-Linuxシステム管理者向けのオープンソースログ分析ツール


Petitは、UnixライクおよびCygwinシステム用の無料のオープンソースコマンドラインベースのログ分析ツールであり、エンタープライズ環境でログファイルを迅速に分析するように設計されています。

これは、小さくて高速で使いやすいというUnixの哲学に従うことを目的としており、syslogやApacheログファイルを含むさまざまなログファイル形式を検査/サポートするために使用できます。

  • Supports for log analysis.
  • Auto-detects and supports various log file formats( e.g. Syslog, Apache Access, Apache Error, Snort Log, Linux Secure Log, and raw log files).
  • Supports for log Hashing .
  • Supports command line graphing.
  • Supports for word discovery and count with common stop-words within log data.
  • Supports for log reduction for easy reading.
  • Provides various default and specially made filters.
  • Supports fingerprints, useful in identifying and excluding reboot signatures.
  • Offers several output options for wide screen terminals and character selection and many more.

このチュートリアルでは、LinuxにPetitログ分析ツールをインストールして使用し、さまざまな方法でシステムログから有用な情報を引き出す方法を示します。

LinuxでPetitLog AnalysisToolをインストールして使用する方法

Petitは、以下に示すようにaptパッケージ管理ツールを使用して、Debian/Ubuntuとその派生物のデフォルトリポジトリからインストールできます。

$ 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

これは、以下の例に示すように、分布を並べて比較するために、キー/値棒グラフ形式で機能します。

Syslogの最初の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 – used to construct custom fingerprint files.
  • /var/lib/petit/fingerprints (aggregate fingerprint files) – used to filter out reboots and other events not considered vital by the system administrator.
  • /var/lib/petit/filters/

詳細と使用オプションについては、このようなプチマンページをお読みください。

# man petit
OR
# petit -h

プチホームページ:http://crunchtools.com/software/petit/

Linuxでのログの監視と管理に関する次の便利なガイドもお読みください。

  1. 4 Good Open Source Log Monitoring and Management Tools for Linux
  2. How to Manage System Logs (Configure, Rotate and Import Into Database) in Linux
  3. How to Setup and Manage Log Rotation Using Logrotate in Linux
  4. Monitor Server Logs in Real-Time with “Log.io” Tool on Linux

以下のフィードバックフォームから質問を送信するか、聞いたことがある、または出くわしたLinux用の便利なログ分析ツールに関する情報を共有してください。