awffullのDebian11機への移設

目次

公開日 2023-06-14 更新日 6-16

この話は

アクセス解析(awffull)の導入でDebian9機に入れたawffullの移設である。

レンタルサーバーが提供している毎日のアクセスログを1,2週に一度ダウンロードして、ローカルなPCのawffullで月ごとの記録を取ろうといういうもの。メインで使用するPCを変更したのでそれに合わせて前のデータを維持しつつ、移設をする。

「ログファイルのダウンロードがcronでできるようになれば、」と書いたが、レンタルサーバーからのダウンロードの部分を調べるのが面倒で、1,2週に一度のペースならまぁいいかと未だに手動で行っている。

awffullパッケージインストール

synapticでawffullパッケージを入れる。今回はbullseye、geoipがはじめから関連でインストールされる。

Start-Date: 2023-06-12  22:35:54
Commandline: /usr/sbin/synaptic
Requested-By: adachi (1000)
Install: libgeoip1:amd64 (1.6.12-7, automatic), 
geoip-database:amd64 (20191224-3, automatic), 
awffull:amd64 (3.10.2-6)
End-Date: 2023-06-12  22:35:56

awffull.confの書換部分

強調部分は前回の記述から追加されているもの。ただし、UseHTTPS以外は報告していないが実際に追加して使用していたもの。

LogFile /media/adachi/S1T/dablog/dabiyone.com.log
OutputDir /var/www/awffull
Incremental    yes
HostName dabiyone.com
UseHTTPS       yes
GeoIP          yes
GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat
Top404Errors    10
HideSite       dabiyone.com
HideReferrer   dabiyone.com
HideURL         *.css
HideURL         *.js

上記設定の簡単な説明

LogFile 処理するログファイルのパスとファイル名(元は/var/log/apache2/access.log.1)
OutputDir 結果を出力するフォルダ(これはもとよりこうなっている)
Incremental 前の集計の内部情報を保存して次の集計で二重にならないようにする。(元はno)
HostName タイトルに使う自ホスト名(自動でインストールしたホスト名になっているが、任意)
UseHTTPS レポート中の各ページへのリンクがhttps:で始まるように替わるだけ。レンタルサーバーの設定でhttps:を使うようにしたので合わせる。
GeoIP IPアドレスから国情報を得る機能を使う。
GeoIPDatabase GeoIPの依るデータベースの所在(debianに合わせて変更)
Top404Errors 404を返したリクエストでどんなURLが多いかのレポート。これがあると自身のリンク切れに気がつくことがある。
HideSite 自分自身からのアクセスをレポートに含めない
HideReferrer 参照ページに自分自身をレポートに含めない
HideURL Top 30 of 〜 Total URLs が.jsだらけにならないように追加。

通常の集計作業の流れ

関係するディレクトリは3つ。

説明の記号 実際のパス 説明
~/Downloads/ レンタルサーバーからダウンロードしたログファイルが入る
/media/adachi/S1T/dablog/ 作業のためのディレクトリで、ここに過去のlogfileを保存し、bashscriptを置いている。
/var/www/awffull/ awffullの作ったhtml,pngファイルが入る
  1. レンタルサーバーから日毎のログファイルを①へダウンロードする。(すでに②にあるものはダウンロードしない)
  2. ①から②へ今月分のログファイルを移動。
  3. 前回までに保存してあるものを含めて今月分のログファイルを解凍してまとめ、dabiyone.com.logという名前で②へ保存
  4. awffullの起動。awffull.conf には②のdabiyone.com.logを使うようにLogFileの項に設定してある
  5. ③に出力される。

dabiyone.com.logは月が同じであれば追加され、月が変われば更新される。access.logのように「追加されてある程度溜まったら更新される」というログローテートされるファイルを模した状態になっているので、Incremental yes で運用されることで、正常に運用されるはず。

最近のawfullはlogfileの初期値をaccess.logからaccess.log.1に変更しているが、書き込み途中にアクセスするのを避けているのか、リアルタイムで処理しなくてもいいと考えたのか不明だが、同じであろう。

これを行うスクリプト。名前がhowtoなのは作業をメモしたものをそのまま使ったから。

adachi@banach:/media/adachi/S1T/dablog$ cat howto
 mv /home/adachi/Downloads/dabiyone.com_202306??.log.gz ./ 
 zcat dabiyone.com_202306??.log.gz >dabiyone.com.log
 awffull -v -c  /etc/awffull/awffull.conf 

移設の流れ

上記の流れを壊さないように作業します。

元PCの②③にあたるフォルダを作成し、新②、新③と呼ぶことにします。

  1. 元③にあるデーターを新③にコピーします。
  2. 元②にあるデーターを新②にコピーします。今月分のログファイルのみでも構いません。何日のログが最終であるかを記憶しておきます。スクリプトも。
  3. レンタルサーバーから新しいログを①にダウンロードします。すでに②にあるものはダウンロードしないのはいつものこと。
  4. スクリプトを実行します。
  5. ブラウザで確認します。

もし、設定ミスなどで(パーミッションなど)うまく行かなかったときには、いったん③のファイルを全部消し、②のファイルのうちスクリプトで移動されたログファイルを①にもどせば、最初からやり直すことができます。