ウェブサイト検索

Petiti - Linux SysAdmins 用のオープンソース ログ分析ツール


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

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

プチ特集

  • ログ分析をサポートします。
  • さまざまなログ ファイル形式 (Syslog、Apache Access、Apache Error、Snort ログ、Linux Secure Log、生のログ ファイルなど) を自動検出してサポートします。
  • ログハッシュのサポート。
  • コマンドライングラフ作成をサポートします。
  • ログ データ内の一般的なストップワードによる単語の検出とカウントをサポートします。
  • 読みやすいようにログの削減をサポートします。
  • さまざまなデフォルトのフィルターと特別に作成されたフィルターを提供します。
  • 再起動署名の識別と除外に役立つフィンガープリントをサポートします。
  • ワイドスクリーン端末や文字選択などのためのいくつかの出力オプションを提供します。

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

Linuxにプチログ解析ツールをインストールして使う方法

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 – カスタム フィンガープリント ファイルの構築に使用されます。
  • /var/lib/petit/fingerprints (集約フィンガープリント ファイル) – システム管理者が重要とみなさない再起動やその他のイベントを除外するために使用されます。
  • /var/lib/petit/filters/

詳細と使用方法のオプションについては、 このようなプチマニュアルページを参照してください。

man petit
OR
petit -h

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

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

  1. Linux 向けの 4 つの優れたオープンソース ログ監視および管理ツール
  2. Linux でシステム ログを管理する方法 (構成、ローテーション、データベースへのインポート)
  3. Linux で Logrotate を使用してログ ローテーションを設定および管理する方法
  4. Linux 上の「Log.io」ツールを使用してサーバーのログをリアルタイムで監視する

ご質問がございましたら、以下のフィードバック フォームからお送りいただくか、聞いたことがある、または見かけた Linux 用の便利なログ分析ツールに関する情報をお知らせください。