NginxPulse — 軽量な Nginx アクセスログ可視化パネル
概要
NginxPulse は、Nginx のアクセスログを素早く解析してブラウザ上で可視化する軽量ツールです。リアルタイム集計(PV、リクエスト分布)、柔軟なフィルタリング(URL、ステータス、時間帯など)、IP の地域情報照会(ip2region を利用したローカル検索)やクライアント(User-Agent)解析を備え、少ない依存で動作します。バックエンドは Go(Gin+Logrus)で実装され、SQLite(modernc.org/sqlite)をデータ保存に使うため、セットアップが簡単で単一バイナリとしての配布や Docker 化に向いています。開発者が拡張しやすい設計も魅力です。
リポジトリの統計情報
- スター数: 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 ログ可視化ツール、軽量な運用向けに最適です。
リポジトリ情報:
- 名前: nginxpulse
- 説明: 轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。
- スター数: 78
- 言語: Vue
- URL: https://github.com/likaia/nginxpulse
- オーナー: likaia
- アバター: https://avatars.githubusercontent.com/u/35120858?v=4
READMEの抜粋:
NginxPulse
轻量级 Nginx 访问日志分析与可视化面板,提供实时统计、PV 过滤、IP 归属地与客户端解析。
demo-img-1.png
demo-img-2.png
目录
项目开发技术栈
- 后端:
Go 1.23.x·Gin·Logrus - 数据:
SQLite (modernc.org/sqlite) - IP 归属地:
ip2region(本地库) +...