GoAccess
公式
https://gigazine.net/news/20200613-goaccess/
https://brandonrozek.com/blog/goaccess/
https://qiita.com/tetsuoMikami/items/5ec750558460b4c78098
利用イメージ
CUI案
- peco が起動して、ログファイルが一覧表示される
- ログファイルを選択すると、そのログに対して goaccess を実行し、結果がCUIで表示される
- ローテートされた圧縮ファイルの場合は、自動的に解凍して処理してくれる
- goaccess で解析した結果ファイルは一定時間キャッシュされ、2回目に同じファイルを開こうとしたら瞬時に開いてくれる
ブラウザ案1(EzGate組み込み)
domain 'goaccess.example.com' {
goaccess from: '10.0.0.1' # 接続元IPを指定するイメージ
}
としておいて、そのドメインにアクセスするとログファイルが一覧表示されて、ファイルをクリックすると goaccess の Web版が起動する。
SSH接続不要。ただし from の部分を毎回セットしないといけないので、SSH接続は結局必要になりそう。
basic認証を導入すれば from を書かなくてもいいかも。
ブラウザ案2(EzGateとはポートを分ける)
local_goaccess_server port: 8099
としておいて、ポート番号を分けてしまう。Web画面を見る場合は、ローカルPCからSSHポートフォワードなどを使う。
よりセキュア。
SSH接続が必須だが、nologinでポートフォワードだけすればよいので、すこしセキュアで手軽。公開鍵認証にしておいて、専用sshコマンドさえ作っておけばいつでも接続できる。
別コンテナ案
上記を別コンテナで提供する。
ログファイルさえ見えれば goaccess を処理できるので、ログディレクトリを Docker volume やホストディレクトリで共有し、マウントさせればよい。
クラウド側に goaccess コンテナを起動して、ブラウザ案2の構成を使うのも考えられる。
またはローカルに goaccess クライアントコンテナを置いといて、以下のようにSSHでリモートのログを流し込む方法も考えられる。
ssh user@remote_server tail -f ~/ezgate/logs/access.log \
| docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o html --log-format COMBINED --real-time-html - > report.html
https://hub.docker.com/r/allinurl/goaccess
https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager
これなら何も導入しなくても使える。
ngxtop
公式GitHub
python製 CUIツール。
シンプルなので、とりあえずこれをインストールしておくのでもよい。
GoAccess
公式
https://gigazine.net/news/20200613-goaccess/
https://brandonrozek.com/blog/goaccess/
https://qiita.com/tetsuoMikami/items/5ec750558460b4c78098
利用イメージ
CUI案
ブラウザ案1(EzGate組み込み)
としておいて、そのドメインにアクセスするとログファイルが一覧表示されて、ファイルをクリックすると goaccess の Web版が起動する。
SSH接続不要。ただし
fromの部分を毎回セットしないといけないので、SSH接続は結局必要になりそう。basic認証を導入すれば
fromを書かなくてもいいかも。ブラウザ案2(EzGateとはポートを分ける)
としておいて、ポート番号を分けてしまう。Web画面を見る場合は、ローカルPCからSSHポートフォワードなどを使う。
よりセキュア。
SSH接続が必須だが、
nologinでポートフォワードだけすればよいので、すこしセキュアで手軽。公開鍵認証にしておいて、専用sshコマンドさえ作っておけばいつでも接続できる。別コンテナ案
上記を別コンテナで提供する。
ログファイルさえ見えれば goaccess を処理できるので、ログディレクトリを Docker volume やホストディレクトリで共有し、マウントさせればよい。
クラウド側に goaccess コンテナを起動して、ブラウザ案2の構成を使うのも考えられる。
またはローカルに goaccess クライアントコンテナを置いといて、以下のようにSSHでリモートのログを流し込む方法も考えられる。
https://hub.docker.com/r/allinurl/goaccess
https://github.com/xavier-hernandez/goaccess-for-nginxproxymanager
これなら何も導入しなくても使える。
ngxtop
公式GitHub
python製 CUIツール。
シンプルなので、とりあえずこれをインストールしておくのでもよい。