【情報公開】Webサーバのアクセスログ管理(visitorsの運用)@2015.01.04

【情報公開】Webサーバのアクセスログ管理(visitorsの運用)@2015.01.04

Comments Off on 【情報公開】Webサーバのアクセスログ管理(visitorsの運用)@2015.01.04

Webサービスを運用する場合、サービスをより良く利用してもらうために、GoogleAnalyticsなどのWebアクセス解析ツールを利用して、行動分析してWebサービスの内容変更などに役立てたりします。しかし、ユーザ側でWAF (Web Application Firewall)などを利用されると、Cookieの値やIPアドレスなどが正確に取れない場合が少なくありません。そこで、Webシステムを運用しているWebサーバのアクセスログを直接視覚化してWebアクセス解析の補足ツールとして利用する例を紹介します。利用するツールは、「visitors」になります。

visitorsのインストール

  • visitors-0.7をダウンロードし、実行バイナリファイルを作成
    • $ wget http://www.hping.org/visitors/visitors-0.7.tar.gz
      $ tar zxvf visitors-0.7.tar.gz
      $ cd visitors_0.7
      $ make
      $ su 
      
  • root権限等で、PATHが通っているsbin等のディレクトリ (例:/usr/local/sbin/) に実行ファイルをコピー
    • $ su
      # cp visitors /usr/local/sbin/
      
  • visitorsにPATHが通っているか確認
    • # exit
      $ which visitors
      /usr/local/sbin/visitors
      

visitorsによるWebアクセス統計を自動でhtml化して表示 (apache等のWebサーバが起動していることが前提)

  • crontabを利用して定期的にreport.htmlを作成する。
  • 下記の例では、4:00AMにreport.htmlを自動作成させるよう、crontabに”4 * *….”の行を追加。
  • Webサーバへのアクセスログ”access.log”が格納されている場所や、WebサーバのRootDirectoryの場所 (下記では、/var/www/) は、個々の環境にあわせてください。
    • $ su
      # crontab -u root -e
      
      * 4 * * * /usr/local/sbin/visitors -A -m 30 /var/log/apache2/access.log -o html > /var/www/webvisitors/report.html
      
  • crontabの内容を確認
    • # crontab -u root -l
      
      * 4 * * * /usr/local/sbin/visitors -A -m 30 /var/log/apache2/access.log -o html > /var/www/webvisitors/report.html
      

Webアクセス結果をセキュアに管理する(Webサーバ上でhttpsが利用できることが前提)。

  • report.htmlへのアクセスは、https通信のみを利用するよう、”vi”コマンドで.htaccessに下記を記載する。
    • # cd /var/www/webvisitors/
      # vi .htaccess
      
      RewriteEngine on
      RewriteCond %{HTTPS} off
      RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
      
  • httpd.confやapache2.confに、下記の”# Digest Authentication”以降を追記する。
  • 下記では、”webmaster”というIDでDigest認証することを想定している。
    • # vi /etc/httpd/conf/httpd.conf
      
      # Digest Authentication @ 2015.01.04
      <Directory "/var/www/webvisitors">
          AuthType Digest
          AuthName "Secret Zone"
          AuthDigestDomain /webvisitors/
          AuthUserFile /etc/httpd/.htdigest
          Require user webmaster
      </Directory>
      
  • Digest認証用のパスワードファイルを作成する。
  • 下記コマンド入力後にパスワードを入力する。
    • # htdigest -c /etc/httpd/.htdigest 'Secret Zone' webmaster
      
  • Webサーバを再起動する。
    • # service httpd restart
      
  • report.htmlが生成された後、report.htmlにアクセスしWebアクセス結果を確認する。
    • visitors-report

(技術開発部 林經正)

About the author:

Tags:

Back to Top