Petiti - Linuxシステム管理者のためのオープンソースログ分析ツール
Petitは、Unix系およびCygwinシステム用に設計された、エンタープライズ環境でログファイルを迅速に分析するための、無料でオープンソースのコマンドラインベースのログ分析ツールです。
それは、小さく速く、使いやすいというUnixの哲学に従うことを目的としており、syslogやApacheログファイルを含むさまざまなログファイル形式を検査/サポートするために使用できます。
プチフィーチャーズ
- ログ分析のサポート。
- さまざまなログファイル形式(例:Syslog、Apache Access、Apache Error、Snort Log、Linux Secure Log、及び生ログファイル)を自動検出し、サポートします。
- ログハッシュのサポート。
- コマンドライングラフ作成をサポートします。
- ログデータ内の一般的なストップワードを使った単語の発見とカウントをサポートします。
- 読みやすいようにログ削減をサポートします。
- さまざまなデフォルトおよび特別に作成されたフィルターを提供します。
- 指紋をサポートしており、再起動の署名を特定し除外するのに役立ちます。
- ワイドスクリーン端末用の複数の出力オプションと文字選択など、多くのオプションを提供します。
このチュートリアルでは、LinuxでPetitログ分析ツールをインストールして使用し、さまざまな方法でシステムログから有用な情報を抽出する方法を説明します。
LinuxでPetit Log分析ツールをインストールして使用する方法
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秒をグラフにするには、次のように--sgraphフラグを使用します。
# 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/
詳細情報や使用オプションについては、次のようにpetitマニュアルページを読んでください。
# man petit
OR
petit -h
プチホームページ: http://crunchtools.com/software/petit/
また、Linuxにおけるログの監視と管理に関するこれらの便利なガイドにも目を通してください。
- Linux用の4つの優れたオープンソースログ監視および管理ツール
- Linuxにおけるシステムログの管理方法(構成、ローテートおよびデータベースへのインポート)
- LinuxでLogrotateを使用してログローテーションを設定および管理する方法
- Linuxで「Log.io」ツールを使用してサーバーログをリアルタイムで監視する
以下のフィードバックフォームを通じてご質問をお寄せいただくか、聞いたことがある、または見かけたLinux用の便利なログ分析ツールの情報を共有していただけると幸いです。