Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
goaccess — GoAccessは、*nixシステムのターミナルまたはブラウザ上で動作するリアルタイムWebログ解析・対話型ビューアです。 | Kitploit
ツール/GitHubGitHub/allinurl/goaccess
汎用ユーティリティプライバシー異常検知ログ分析
GitHuballinurl/goaccess

goaccess

GoAccessは、*nixシステムのターミナルまたはブラウザ上で動作するリアルタイムWebログ解析・対話型ビューアです。

リポジトリを見るウェブサイト
20.8k1.2k1日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

GoAccess C build GoAccess

これは何ですか?

GoAccessは、*nixシステムのターミナルまたはブラウザ上で直接動作する、オープンソースのリアルタイムWebログ解析ツール兼インタラクティブビューアです。システム管理者、DevOpsエンジニア、セキュリティ専門家向けに設計されており、高速で実用的なHTTP統計情報とビジュアルなサーバーレポートを即座に提供します。GoAccessは、Webサーバーログをリアルタイムに解析し、データをターミナルまたはライブHTMLダッシュボードで直接表示するため、トラフィックの監視、異常の検出、問題の迅速なトラブルシューティングが容易になります。

詳細情報: https://goaccess.io。

GoAccess Terminal Dashboard GoAccess HTML Dashboard

機能

GoAccessは、指定されたWebログファイルを解析し、データをXターミナルに出力します。機能は以下の通りです。

  • 完全なリアルタイム
    すべてのパネルとメトリクスは、ターミナル出力では200ミリ秒ごと、HTML出力では毎秒更新されるように設定されています。

  • 最小限の設定
    アクセスログファイルに対して実行し、ログ形式を選択するだけで、GoAccessがアクセスログを解析して統計情報を表示します。

  • アプリケーション応答時間の追跡
    リクエストの処理にかかった時間を追跡します。サイトの速度低下を引き起こしているページを追跡したい場合に非常に便利です。

  • WebSocket認証:
    GoAccessは拡張されたWebSocket認証を提供し、ローカルおよび外部のJWT検証、セキュアなトークン更新機能、外部認証システムとのシームレスな統合をサポートします。

  • ほぼすべてのWebログ形式
    GoAccessは任意のカスタムログ形式文字列を許可します。Apache、Nginx、Amazon S3、Elastic Load Balancing、CloudFrontなどの事前定義オプションがあります。

  • 増分ログ処理
    データの永続化が必要ですか?GoAccessは、ディスク上の永続化オプションを通じてログを増分的に処理する機能を備えています。

  • 依存関係は1つだけ
    GoAccessはCで書かれています。実行に必要な依存関係はncursesだけです。それだけです。独自のWeb Socketサーバー(http://gwsocket.io/)も備えています。

  • 訪問者
    ヒット数、訪問者数、帯域幅、および時間または日付ごとの最も遅いリクエストのメトリクスを決定します。

  • バーチャルホストごとのメトリクス
    複数のバーチャルホスト(サーバーブロック)をお持ちですか?どのバーチャルホストがWebサーバーリソースを最も消費しているかを表示するパネルがあります。

  • ASN(自律システム番号マッピング)
    悪意のあるトラフィックパターンを検出し、それに応じてブロックするのに最適です。

  • カラースキームのカスタマイズ
    ターミナルから、またはHTML出力にスタイルシートを適用するだけで、GoAccessを自分の色の好み/スキームに合わせることができます。

  • 大規模データセットのサポート
    GoAccessは、最適化されたインメモリハッシュテーブルにより、大規模なログを解析する機能を備えています。メモリ使用量は非常に良好で、パフォーマンスもかなり優れています。このストレージはディスク上の永続化もサポートしています。

  • Dockerサポート
    上流からGoAccessのDockerイメージをビルドする機能があります。ボリュームマッピングを使用してgoaccess.confを編集することで、完全に設定することもできます。Dockerセクションを参照してください。docker-composeの使用方法に関するドキュメントもあります。

ほぼすべてのWebログ形式...

GoAccessは任意のカスタムログ形式文字列を許可します。事前定義オプションには以下が含まれますが、これらに限定されません。

  • Amazon CloudFront (ダウンロード配信)。
  • Amazon Simple Storage Service (S3)。
  • AWS Elastic Load Balancing。
  • 複合ログ形式 (XLF/ELF) Apache | Nginx。
  • 共通ログ形式 (CLF) Apache。
  • Google Cloud Storage。
  • Apacheバーチャルホスト。
  • Squidネイティブ形式。
  • W3C形式 (IIS)。
  • CaddyのJSON構造化形式。
  • TraefikのCLFバリアント。

GoAccessを選ぶ理由?

GoAccessは、高速なターミナルベースのログアナライザーとして設計されました。その中核となる考え方は、ブラウザを使用せずに(SSH経由でアクセスログを簡単に分析したい場合や、ターミナルで作業するのが好きな場合に最適です)Webサーバー統計をリアルタイムで迅速に分析し表示することです。

また、セキュリティ監視の実用的なツールとしても機能し、ログから不審なアクティビティ、異常なトラフィックパターン、ブルートフォース攻撃、スキャナー、ボット、異常なリクエストを簡単に特定できます。

ターミナル出力がデフォルトの出力ですが、完全で自己完結型のリアルタイムHTMLレポート、JSON、およびCSVレポートを生成する機能も備えています。

これは何よりもモニターコマンドツールとして見ることができます。

インストール

Packaging status

リリースからのビルド

GoAccessは*nixシステムでコンパイルして使用できます。

以下のコマンドでGoAccessをダウンロード、展開、コンパイルします。

root@kitploit:~
$ wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
$ tar -xzvf goaccess-1.10.2.tar.gz
$ cd goaccess-1.10.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install

GitHubからのビルド(開発版)

root@kitploit:~
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

ディストリビューション

GNU+Linuxでは、お使いのディストリビューションのパッケージマネージャーを使用してGoAccessをインストールするのが最も簡単です。すべてのディストリビューションがGoAccessの最新バージョンを利用できるわけではありません。

Debian/Ubuntu

root@kitploit:~
# apt-get install goaccess

注意: これにより古いバージョンのGoAccessがインストールされる可能性があります。最新の安定版を実行していることを確認するには、以下の代替オプションを参照してください。

公式GoAccess Debian & Ubuntuリポジトリ

root@kitploit:~
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

注意:

  • 公式リポジトリの.debパッケージはHTTPSでも利用可能です。apt-transport-httpsをインストールする必要があるかもしれません。

Fedora

root@kitploit:~
# yum install goaccess

Arch

root@kitploit:~
# pacman -S goaccess

Gentoo

root@kitploit:~
# emerge net-analyzer/goaccess

OS X / Homebrew

root@kitploit:~
# brew install goaccess

FreeBSD

root@kitploit:~
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

OpenBSD

root@kitploit:~
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess

openSUSE

root@kitploit:~
# zypper ar -f obs://server:http http
# zypper in goaccess

OpenIndiana

root@kitploit:~
# pkg install goaccess

pkgsrc (NetBSD, Solaris, SmartOS, ...)

root@kitploit:~
# pkgin install goaccess

Windows

GoAccessはCygwinを使用してWindowsで使用できます。Cygwinのパッケージを参照してください。または、Windows 10のGNU+Linuxサブシステムを使用します。

Docker

Dockerイメージが更新され、アクセスログから出力を直接送信できるようになりました。レポートのみを出力したい場合は、外部環境のログをDockerベースのプロセスにパイプできます。

root@kitploit:~
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -

またはリアルタイム

root@kitploit:~
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -

docker-composeの使用方法に関するドキュメントもあります。

分離されたコンテナでのビルド

Debianベースのシステム向けに、開発ライブラリでローカルシステムを汚染しないように、分離されたコンテナ環境でバイナリをビルドすることもできます。

root@kitploit:~
$ curl -L "https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz" | tar -xz && cd goaccess-master
$ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .
$ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 > goaccess

Dockerイメージの使用方法の詳細は、DOCKER.mdをご覧ください。

配布パッケージ

GoAccessの要件は最小限で、Cで書かれており、ncursesのみが必要です。ただし、以下はソースからGoAccessをビルドするための一部のディストロにおけるオプションの依存関係の表です。

注意: ソースからコンパイル/ビルドするには、gcc、autoconf、gettext、autopointなどのビルドツールをインストールする必要があるかもしれません。例:base-devel、build-essential、"Development Tools"。

ストレージ

デフォルトのハッシュテーブル

インメモリストレージは、データセットのサイズを利用可能な物理メモリ量に制限する代わりに、優れたパフォーマンスを提供します。GoAccessはインメモリハッシュテーブルを使用します。メモリ使用量は非常に良好で、パフォーマンスもかなり優れています。このストレージはディスク上の永続化もサポートしています。

コマンドライン/設定オプション

コマンドに指定できる、または設定ファイルで指定できるオプションを参照してください。設定ファイルで指定する場合、先頭に--を付けずに長いオプションを使用する必要があります。

使用法/例

注意: データをパイプでGoAccessに渡すと、ログ/日時/時刻設定ダイアログは表示されません。設定ファイルまたはコマンドラインで事前に定義する必要があります。

はじめに

ターミナルに出力し、インタラクティブなレポートを生成するには:

root@kitploit:~
# goaccess access.log

HTMLレポートを生成するには:

root@kitploit:~
# goaccess access.log -a > report.html

JSONレポートファイルを生成するには:

root@kitploit:~
# goaccess access.log -a -d -o report.json

CSVレポートを標準出力に生成するには:

root@kitploit:~
# goaccess access.log --no-csv-summary -o csv

GoAccessはリアルタイムのフィルタリングと解析においても非常に柔軟です。たとえば、goaccessを起動してからのログを監視して問題を迅速に診断するには:

root@kitploit:~
# tail -f access.log | goaccess -

さらに、パイプを開いたままフィルタリングを行い、リアルタイム解析を維持するには、tail -fとgrep、awk、sedなどのパターンマッチングツールを利用できます:

root@kitploit:~
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

または、ファイルの先頭から解析しつつパイプを開いたままフィルタを適用するには:

root@kitploit:~
# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -

複数のログファイル

GoAccessで複数のログを解析する方法はいくつかあります。最も簡単なのは、コマンドラインに複数のログファイルを渡すことです:

root@kitploit:~
# goaccess access.log access.log.1

通常のファイルを読み取りながらパイプからファイルを解析することも可能です:

root@kitploit:~
# cat access.log.2 | goaccess access.log access.log.1 -

注意: コマンドラインに単一のダッシュを追加して、パイプから読み取ることをGoAccessに伝えます。

より柔軟性を高めるために、zcat --forceを使用して圧縮ファイルと非圧縮ファイルの両方を読み取ることもできます。たとえば、すべてのログファイルaccess.log*を処理するには、次のようにします:

root@kitploit:~
# zcat --force access.log* | goaccess -

注: Mac OS Xでは、zcatの代わりにgunzip -cを使用してください。

マルチスレッドサポート

マルチスレッド解析を有効にするには、--jobs=<count>(または-j)を使用します。例:

root@kitploit:~
# goaccess access.log -o report.html -j 4

チャンクサイズを調整するには、--chunk-size=<256-32768>を使用します。デフォルトのチャンクサイズは1024です。例:

root@kitploit:~
# goaccess access.log -o report.html -j 4 --chunk-size=8192

リアルタイムHTML出力

GoAccessはHTMLレポートでリアルタイムデータを出力する機能があります。HTMLファイルは外部ファイルに依存しない単一のファイルで構成されているため、メールで送信することもできます。とても便利です!

リアルタイムHTMLレポートの生成プロセスは、静的なレポートの作成と非常によく似ています。リアルタイムにするには、--real-time-htmlが必要です。

root@kitploit:~
# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html

レポートを表示するには、http://your_site/report.htmlにアクセスします。

デフォルトでは、GoAccessは生成されたレポートのホスト名を使用します。オプションで、クライアントのブラウザが接続するURLを指定できます。詳細な例についてはFAQを参照してください。

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io

デフォルトでは、GoAccessはポート7890でリッスンします。7890以外のポートを使用するには、次のように指定します(ポートが開いていることを確認してください):

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --port=9870

WebSocketサーバーを0.0.0.0以外のアドレスにバインドするには、次のように指定します:

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1

注意: TLS/SSL接続でリアルタイムデータを出力するには、--ssl-cert=<cert.crt>と--ssl-key=<priv.key>を使用する必要があります。

フィルタリング

日付の操作

Webログから日付をフィルタリングするのも便利なパイプです。

以下は、05/Dec/2010以降のすべてのHTTPリクエストを取得します。

root@kitploit:~
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -

または、昨日や明日などの相対日付を使用する場合:

root@kitploit:~
# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

特定の期間(DATE aからDATE bまで)のみを解析したい場合は、次のようにします:

root@kitploit:~
# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -

データ量を制限してストレージを再利用したい場合は、一定の日数だけ保持できます。たとえば、過去5日間のみを保持して表示するには:

root@kitploit:~
# goaccess access.log --keep-last=5

バーチャルホスト

ログにバーチャルホストフィールドが含まれていると仮定します。たとえば:

root@kitploit:~
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"

そして、トップURLがどのバーチャルホストに属しているかを確認するために、リクエストにバーチャルホストを追加したい場合:

root@kitploit:~
awk '$8=$1$8' access.log | goaccess -a -

同じことを行い、リアルタイムのフィルタリングと解析も使用する場合:

root@kitploit:~
tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -

バーチャルホストのリストを除外するには、次のようにします:

root@kitploit:~
# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -

ファイル、ステータスコード、ボット

リクエスト内の特定のページ(例:ページビュー、html、htm、phpなど)を解析するには:

root@kitploit:~
# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess -

注意:$7は共通および複合ログ形式(バーチャルホストなし)のリクエストフィールドです。ログにバーチャルホストが含まれる場合は、代わりに$8を使用する必要があります。対象とするフィールドを確認することをお勧めします。例:

root@kitploit:~
# tail -10 access.log | awk '{print $8}'

特定のステータスコード(例:500 内部サーバーエラー)を解析するには:

root@kitploit:~
# awk '$9~/500/' access.log | goaccess -

または複数のステータスコード(例:すべての3xxおよび5xx):

root@kitploit:~
# tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -

サーバーにアクセスしているボット(クローラー)のおおよその概要を取得するには:

root@kitploit:~
# tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -

ヒント

また、GoAccessを低い優先度で実行したい場合は、次のように実行できます:

root@kitploit:~
# nice -n 19 goaccess -f access.log -a

サーバーにインストールしたくない場合でも、ローカルマシンから実行できます!

root@kitploit:~
# ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess - --log-format=COMBINED

注意: SSHで-nオプションが必要なのは、GoAccessが標準入力から読み取れるようにするためです。また、パスフレーズが必要な認証は機能しないため、SSHキーを使用してください。

トラブルシューティング

これまでに回答された多くの質問や問題が寄せられています。

  • 日付/時刻のマッチングに問題がありますか?ログ形式とGoAccessを実行するシステムのロケールが一致していることを確認してください。#1571を参照。
  • パターンマッチングに問題がありますか?スペースが問題になることがよくあります。たとえば#136、#1579を参照。
  • ログエントリのマッチングに関するその他の問題:ログ/日付/時刻形式に関する200以上のクローズ済みIssueを参照。
  • ログ処理に問題がありますか?ログ処理に関する111以上のIssueを参照。

増分ログ処理

GoAccessは、内部ストレージを介してログを増分的に処理し、データをディスクにダンプする機能を備えています。次のように動作します。

  1. まず--persistでデータセットを永続化する必要があります。その後、同じデータセットを次のようにロードできます。
  2. --restore。新しいデータが渡された場合(パイプまたはログファイル経由)、元のデータセットに追加されます。
注意事項

GoAccessは処理されたすべてのファイルのinodeを追跡します(ファイルが同じパーティションに残っていることを前提としています)。さらに、ログからデータのスニペット、各ファイルの最後に解析された行、および最後に解析された行のタイムスタンプを抽出します。例:inode:29627417|line:20012|ts:20171231235059

まず、スニペットが解析中のログと一致するかどうかを比較します。一致する場合、ログが大幅に変更されていない(切り詰められていないなど)と見なします。inodeが現在のファイルと一致しない場合、すべての行を解析します。現在のファイルがinodeと一致する場合、残りの行を読み取り、解析済み行数とタイムスタンプを更新します。さらに予防策として、保存されているタイムスタンプ以下であるタイムスタンプを持つログ行は解析しません。

パイプデータは、最後に読み取られた行のタイムスタンプに基づいて動作します。たとえば、保存されているタイムスタンプ以上のタイムスタンプが見つかるまで、すべての受信エントリを解析して破棄します。

例
root@kitploit:~
// 先月のアクセスログ
# goaccess access.log.1 --persist

次に、次のようにロードします。

root@kitploit:~
// 今月のアクセスログを追加し、新しいデータを保持
# goaccess access.log --restore --persist

永続化されたデータのみを読み取る場合(新しいデータの解析なし)

root@kitploit:~
# goaccess --restore

貢献について ##GoAccess へのご協力を歓迎します。最も役立つ方法は、実際にお試しいただき、フィードバックをお寄せいただくことです。GitHub の issue トラッカーやプルリクエストを自由にご利用いただき、コード変更についての議論や投稿を行ってください。

翻訳に貢献するには、GitHub 上で直接 .po ファイルを編集するか、ビジュアルインターフェース inlang.com をご利用ください。

お楽しみください!

ツールをダウンロード
ディストリビューションNCursesGeoIP(オプション)GeoIP2(オプション)OpenSSL(オプション)
Ubuntu/Debianlibncurses-devlibgeoip-devlibmaxminddb-devlibssl-dev
RHEL/CentOSncurses-develgeoip-devellibmaxminddb-developenssl-devel
Archncursesgeoiplibmaxminddbopenssl
Gentoosys-libs/ncursesdev-libs/geoipdev-libs/libmaxminddbdev-libs/openssl
SlackwarencursesGeoIPlibmaxminddbopenssl