NginxPulse — 軽量な Nginx アクセスログ可視化パネル

DevOps

概要

NginxPulse は、Nginx のアクセスログを素早く解析してブラウザ上で可視化する軽量ツールです。リアルタイム集計(PV、リクエスト分布)、柔軟なフィルタリング(URL、ステータス、時間帯など)、IP の地域情報照会(ip2region を利用したローカル検索)やクライアント(User-Agent)解析を備え、少ない依存で動作します。バックエンドは Go(Gin+Logrus)で実装され、SQLite(modernc.org/sqlite)をデータ保存に使うため、セットアップが簡単で単一バイナリとしての配布や Docker 化に向いています。開発者が拡張しやすい設計も魅力です。

GitHub

リポジトリの統計情報

  • スター数: 78
  • フォーク数: 5
  • ウォッチャー数: 78
  • コミット数: 2
  • ファイル数: 18
  • メインの言語: Vue

主な特徴

  • リアルタイムに近いアクセスログの集計・可視化(PV、ステータス別、URI 別など)
  • IP の所在地判定をローカル DB(ip2region)で高速に実行
  • クライアント(ブラウザ・OS)解析とフィルタリング機能
  • Go バックエンド + Vue フロントエンドで軽量かつ単一実行可能/Docker 対応

技術的なポイント

NginxPulse はフルスタックでシンプルさを重視したアーキテクチャを採用しています。バックエンドは Go(Go 1.23.x)で書かれ、HTTP API は Gin フレームワークで提供されます。ログ出力や診断には Logrus を使用し、ロギングやデバッグが扱いやすくなっています。データ保管には modernc.org/sqlite による SQLite を利用しており、外部 DB に依存せず軽量な永続化が可能です。IP の所在地判定には ip2region のローカル DB を取り込み、ネットワーク越しの問い合わせなしで高速にマッピングできる点が特徴です。

フロントエンドは Vue ベースで、ブラウザ側で集計結果やチャートを表示します。サーバー側はログのパース(Common/Combined 形式想定)を行い、必要なメタ情報(IP、タイムスタンプ、HTTP メソッド、URI、ステータス、User-Agent など)を抽出して SQLite に保存またはインメモリで集計します。結果は REST API(あるいは WebSocket 経由)でフロントエンドに配信され、リアルタイム更新やフィルタリングが可能です。

設計面では、依存を最小化して単一バイナリでの配布を想定しているため、運用コストが低く、軽量な監視・可視化ニーズに向きます。拡張性としては、ログフォーマットの追加パーサー、外部 DB への切替、Prometheus メトリクスのエクスポート、IP データベースの更新スクリプトなどが実装しやすい構成です。Dockerfile を同梱しておりコンテナ化も容易、ローカル環境や CI/CD での展開も簡単に行えます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .codex: dir
  • .gitignore: file
  • .shared: dir
  • .windsurf: dir
  • Dockerfile: file

…他 13 ファイル

まとめ

シンプルで導入が容易な Nginx ログ可視化ツール、軽量な運用向けに最適です。

リポジトリ情報:

READMEの抜粋:

NginxPulse Logo

NginxPulse

轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。

demo-img-1.png

demo-img-2.png

目录

项目开发技术栈

  • 后端Go 1.23.x · Gin · Logrus
  • 数据SQLite (modernc.org/sqlite)
  • IP 归属地ip2region(本地库) + ...