AWStatsでログ解析
の編集
http://yassu.jp/pukiwiki/index.php?AWStats%A4%C7%A5%ED%A5%B0%B2%F2%C0%CF
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
.htaccessで特定のホストのみベーシック認証を不要にする
2GB以上のファイルサイズを調べる
2つの数値や期間の重なりを判定する
AMPめも
AWS IoT
AWS IoTを利用する
AWStatsでログ解析
AdMob Android SDKからGoogle Play 開発者サービスへの移行方法
AdMobを導入してアプリをマネタイズ
AdSenseを掲載したい
Akismetの手動更新
Analogでログ解析
Apache
Apache2
Apache2のSSL対応
Apache2アクセスログのカスタマイズ
Apache2モジュールの追加
Apache2帯域&接続数制限
Apacheでコンテンツ圧縮
ApacheのSSL対応
Apacheのベンチマークテスト
BracketName
CS-Cart アドオンの作成
CS-Cart インポート機能
CS-Cart キャッシュのクリア
CS-Cart テーマの作成
CS-Cart テンプレートの編集
CS-Cart 管理画面のメニュー追加
CS-Cart 言語ファイルの更新
CS-Cart 納品書PDFのカスタマイズ
CS-Cartのインストール
CS-Cartのデバッグ
CS-Cartめも
CakePHP2.x系の設置
CakePHP3.x系の設置
CakePHP3での認証
CakePHP3でエラーの取得と設定方法
CakePHP3でカラムの最大値を取得
CakePHP3でテーブルの連結
CakePHP3でデータベースの変更履歴を残す
CakePHP3でデータ保存前に特定の値をセットする
CakePHP3でパスワードを暗号化してから保存する
CakePHP3でビューからレイアウトにscriptを渡す
CakePHP3でビューでコントローラー名とアクション名を取得
CakePHP3でログイン時間を残す
CakePHP3で共通関数を利用したい
CakePHP3にてACLでアクセス管理
CakePHP3のフォーム生成
CakePHP3の多言語対応
CakePHP3めも
CakePHPの設置
DBからMDB2へ
DELL関連
DNSの再帰的な問合せを使ったDDoS攻撃の対策
DNS設定
Delphiめも
EC-CUBE CSV関連のメモ
EC-CUBE form_personal_input.tplまわりについて
EC-CUBE バージョン確認方法
EC-CUBE2.13系のインストール
EC-CUBE2系 売上集計グラフにテキストが表示されない
EC-CUBE2系でパスワードを忘れた場合の対処法
EC-CUBE3.0.17以下でunserializeエラー
EC-CUBE3.0.x系のインストール
EC-CUBE3.n系のインストール
EC-CUBE3でのエラー発生時の原因確認方法
EC-CUBE3系 SQL操作系
EC-CUBE3系 テスト用商品を大量一括登録
EC-CUBE3系 特定のプラグインが有効か確認する方法
EC-CUBE3系 配送料の計算方法
EC-CUBE3系でパスワードを忘れた場合の対処法
EC-CUBE3系プラグインの作成
EC-CUBE4 Entity拡張したtraitにて定数を読み込みたい
EC-CUBE4 テンプレートのカスタマイズ
EC-CUBE4 フォームのエラー内容確認方法
EC-CUBE4 マスタテーブルの作成
EC-CUBE4 メールが届かない
EC-CUBE4 管理画面のメニュー追加方法
EC-CUBE4 商品CSVに項目を追加する
EC-CUBE4 送料計算をカスタマイズする
EC-CUBE4 特定のプラグインが有効か確認する方法
EC-CUBE4 独自の定数を定義
EC-CUBE4系のインストール
EC-CUBE4系プラグインの作成
EC-CUBEめも
EclipseでAndroidアプリ開発
EclipseでPHP開発
Ecripse Tips
ExcelファイルをPDFファイルへ変換
FFmpegで動画変換
FTP,SSHなどDNSがらみが遅い
Firefoxお気に入りアドオン
Firefoxめも
FormattingRules
FrontPage
Gitでバージョン管理
Google Playでアプリ公開
Googleに素早く全体をインデックスしてもらうためのベストプラクティス
Googleアナリティクスを設置したい
HTML要素をパースする
HTTPリダイレクト
Help
IMPでWEBメーラー
ImageMagickめも
InterWiki
InterWikiName
InterWikiSandBox
InterWikiテクニカル
JavaScriptでCookieを扱う
Javaめも
Javaを始めよう
Java環境構築
KNOPPIXの利用
Laravel アクセサとミューテタ
Laravel ページネーション
LaravelでのWEBアプリケーション開発手順
Laravelでツリー構造を扱う
Laravelで認証機能を実装する
Laravelのインストール
Laravelめも
Let's Encryptで無料SSL導入
Linuxめも
MQTT.fx
MQTTめも
MQTTブローカー Mosquitto
MRTGでサーバモニタリング
MRTGとqmailmrtg7でログ解析
Magento1系のインストール
Magento2 Blockの作成
Magento2 moduleの作成
Magento2 themeの作成
Magento2 イベントをObserverで検知する
Magento2 コアファイルの継承方法
Magento2 システムのアップグレード方法
Magento2 チューニング
Magento2 トラブルシューティング
Magento2 モードの切り替え
Magento2 開発に役立つ機能
Magento2 管理画面themeの作成
Magento2 商品データインポート時の画像の取り扱い
Magento2 商品データエクスポート時に追加した属性をカラム分けする
Magento2 消費税に対応する
Magento2 多言語に対応する
Magento2 独自JSファイルの読み込み
Magento2 独自スタイルシートの読み込み
Magento2 配送方法について
Magento2 複数通貨に対応する
Magento2でjQueryを使用する
Magento2を日本語化する
Magento2系のインストール
Magentoめも
Mastodonめも
MenuBar
MovableTypeからのデータ移行
MySQL 767byte問題
MySQL utf8をutf8mb4に変更する
MySQL 既存のデータベースからER図を作成する
MySQL 寿司ビール問題
MySQL5.0インストール
MySQLチューニング
NFSを使ってみる
Nagios
Namazuを飼う
OWASP ZAPでサイトの脆弱性をチェック
PEARのパッケージインストールができない
PECL拡張モジュールを使う
PG4WPのインストール
PHP
PHP dotenvを採用する
PHP4でXMLファイルを読み込む
PHP7で廃止された関数
PHPAcceleratorを使ってみる
PHPでExcelファイルを読み込む
PHPでLDAP認証
PHPでOAuth認証を行う
PHPめも
PHPよくある落とし穴
PHP拡張モジュール(PECL含む)の追加
PHP読み方講座
Pager
Perlめも
PostgreSQLのチューニング
PostgreSQLバージョンアップ
PostgreSQLベンチマークテスト
PostgreSQL関連めも
PostgreSQL用JDBCドライバビルド
Proxyサーバ Squid
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
PukiWikiめも
Python paho-mqtt
RRDtool
RecentDeleted
Redmineでプロジェクト管理
Ruby on Rails インストール
Rubyめも
SEOめも
SQLiteからデータを取り出しリスト表示
SQLiteでデータ管理
SSH
SafariのUSER_AGENT変更
Sambaでファイルサーバー
SandBox
Services_Amazon
Slim4めも
Smartyを使い倒す
SqWebMailでWEBメーラー
Subversion+Tracの構築
Subversion+Tracの使い方
Subversion単体
TCPDF+FPDIでPDF出力
Tripwireによる侵入検知
UNIXコマンドめも
URL、メールのリンク
URLに特定の文字列を含むアクセスを拒否
VB.NETめも
VMware Playerで開発環境構築
VirtualBoxとVagrantで開発環境構築
WAStatsでログ解析
WEBサイトの高速化
WP REST APIで投稿情報を取得する
WYSIWYGエディタの導入
WebDAVでファイル転送
WikiEngines
WikiName
WikiWikiWeb
Windows 10 を入手する アイコンを消したい
Windowsのコマンドプロンプトでtelnetを使用したい
Windowsめも
WordPressのアップグレード
WordPressのセキュリティー対策
WordPressの速度向上
WordPressめも
XMLのサイトマップを生成したい
XMLの内容にインデントを付けて見やすく整形する方法
XOOPSでコミュニティーサイト構築
YassuRoom
YukiWiki
Zend Frameworkで何ができるのか?
autocompleteを無効化する
bind FAQ
bootの容量不足
coLinux FAQ
coLinuxで開発環境構築
crontabでfgetcsv
daemontoolsでログ記録とプロセス管理
docomoのAndroidでSMSを受信
fgetcsvで文字コードと改行コードを変換する
https経由のファイルオープン
iptablesの設定
jQueryでvalidate
jQueryめも
logwatchでサーバ監視
maillogについて
netqmail
ntpサーバ
phpDocumentorでドキュメント作成
phpGroupWareでグループウェア
phpMQTT
phpMyAdmin
preg_replace関数で後方参照の$1を配列のキーとして利用する
qmail-injectでメール送信
qmailanalogでメールログ解析
qmailでdeferral CNAME_lookup_failed_temporarily
qmailでバーチャルドメイン
qmailで転送リレー設定
qmailをSSL対応にする
qmailインストール
simplexml_load_fileの使いドコロ
suコマンドの制限
swap領域の確保
viでテキスト置換
vpopmailのサーバ移転方法
vsftpd設定
yumインストールで環境構築
そろそろApacheからnginxへの移行を考えてみるか
めもリンク
よく使うデータ集
アカウント管理ソフトLISM
アプリのバージョンアップ
ウインドウを閉じる
ウェブサイトのサムネイルを作る
オブジェクトとクラス
カスタム投稿タイプの活用
カテゴリーの並び替え
カテゴリごとにカスタムフィールドの出し分けをしたい
キューの管理
クリックイベントで要素の表示を切り替え
コーディングめも
コマンドでFTP
サーバ用途はCentOS
ショッピングカート
シングルサインオン
スマートフォンからの閲覧に対応する
スマートフォンめも
スムーズスクロール
ソーシャルボタンを設置したい
ソーシャルログインの実装
テンプレートエンジンにTwigを採用する
ディスク使用量を制限する
ハンバーガーメニュー
バーコードを生成する
バージョン36になってから検索窓が使いにくい
バグと対策
パケットキャプチャ
パスワードをランダムに生成
ファイルのダウンロード
フラグ立てテクニック
プロジェクトをSubversionで管理
ヘルプ
メール送信できない!!
ユーザーが入力した文字列をエスケープする
ユーザーを一元管理 LDAP
ライブカメラやってみたい
リッチスニペットを設置する方法
レスポンシブ対応のスライダー
位置情報
移転のやり方
画像にテキスト
開発のために読んだ参考書籍
開発環境を整える
外部ファイル取得時のUSER_AGENT変更とタイムアウト設定
各正規表現
簡易キャッシュ
基本Tips
基本コマンドめも
機種依存文字をPostgreSQLにINSERT
記号
携帯電話からの閲覧に対応する
携帯電話めも
現在時刻の取得
最近の投稿にサムネイル画像を表示させたい
使えそうなWordPressプラグイン
時刻あわせ
自己署名証明書の作成
自前でGitサーバ構築
実行時設定
数字のカウントアップアニメーション
整形ルール
生年月日から年齢を算出する
全部を選択するチェックボックス
送信ドメイン認証SPFレコード
多次元配列を複数条件で並び替える
単純な実行時エラーを表示する
都市
都道府県
投稿記事内でPHPを実行したい
統合監視ツールZABBIX
同じ内容の入力フォームを追加・削除
特定のIPアドレスからの通信を遮断する方法
特定のUSER_AGENTを拒否
日付の処理はMoment.jsで行う
日本語
日本語ファイル名でダウンロード
配列をXML形式に変換する
半角全角の入力を制御する
不要サービスの停止
複数セレクトボックスの連動
複数台サーバでセッションを共有する
文字列から特定のパターンを抜き出して重複を削除する方法
郵便番号入力で住所を自動表示
#contents *AWStats [#qe8e9838] apache のアクセス解析ソフト AWStatsは、httpdのアクセスログを解析し、視覚的にブラウザで閲覧することが出来る形に整形するPerlのスクリプト 本家サイト http://awstats.sourceforge.net/~ 2006-04-07現在 最新安定板 ver6.5 完全日本語版 http://www.bflets.dyndns.org/Tools/AWStatsJpn.html~ 2006-04-07現在 ver6.5 完全日本語版 http://www.starplatinum.jp/awstats/awstats66/~ 2011-01-20現在 ver6.6 完全日本語版 http://www.starplatinum.jp/awstats/awstats70/~ 2011-03-28現在 ver7.0 本家「AWStats」もVer.4.0から正式に日本語に対応したことになってるが、非常にお粗末。~ より完璧な日本語対応を目指して修正を行ったものを公開しているすばらしい人がいたので、使せていただく。 *事前準備 [#te21962e] **Jcode.pm のインストール [#s3ec162c] オリジナルログ内のURLをデコードするために必要 参照~ http://openlab.jp/Jcode/index-j.html~ http://www.mytools.net/memo/JcodePM.html 「Jcode-0.xx.tar.gz」をダウンロード~ http://www.ring.gr.jp/pub/lang/perl/CPAN/modules/by-module/Encode/DANKOGAI/ インストール # tar zxvf Jcode-0.88.tar.gz # cd Jcode-0.88 # perl Makefile.PL; make; make install Can't locate ExtUtils/MakeMaker.pm などと怒られたら # yum install perl-ExtUtils-MakeMaker 確認 # perl -MJcode -e'print $Jcode::VERSION' 0.88 削除 # rm -rf Jcode-0.88 # rm -f Jcode-0.88.tar.gz **nkfインストール [#p12bb0a8] 「nkf207.tar.gz」をダウンロード~ http://sourceforge.jp/projects/nkf/ インストール # yum install nkf OR # tar zxvf nkf207.tar.gz # cd nkf207 # make # cp nkf /usr/bin/ 削除 # rm -rf nkf207 # rm -f nkf207.tar.gz **ワームが残すログによるAWStatsのエラー回避 [#q9131e8a] AWStatsなどでアクセスログを元に統計情報を出力している場合、~ ワームの残すアクセスログが原因でエラーとなり、実行できなくなる場合がある。~ これらの対策として、http.confを編集します。 詳細は[[Apache2アクセスログのカスタマイズ]]を参照。~ 画像等のログ排除の設定は不要 *環境確認 [#v4d459b7] -perlのバージョンが5.8.0以降である # perl -v This is perl, v5.8.5 built for i386-linux-thread-multi -perlの場所 # which perl /usr/bin/perl -WWWサーバのCGIディレクトリのパス~ 本文では /usr/local/apache2/cgi-bin とする -Apacheのアクセスログのパス~ 本文では /usr/local/apache2/logs/www.hoge.jp-access_log とする -WWWサーバのルートディレクトリ~ 本文では /home/hoge/public_html とする -Apacheのログフォーマットがcombinedである # vi /usr/local/apache2/conf/httpd.conf httpd.conf CustomLog /usr/local/apache2/logs/www.hoge.jp-access_log combined *AWStats 6.5完全日本語版 インストール [#z34653df] 参考~ http://www.akenotori.jp/soft/26.html#SEC9~ http://cyberam.dip.jp/linux_server/log/awstats60_main.html~ http://honana.com/awstats~ -「AWStats65_Jpn.tar.gz」をダウンロード~ http://www.bflets.dyndns.org/Tools/AWStatsJpn.html -7.0~ http://www.starplatinum.jp/awstats/awstats70/ **インストール [#x67895af] ディレクトリの作成 // AWStatsインストールディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats // ログディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats/logs // データディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats/data // イメージファイルディレクトリ # mkdir -p /usr/local/apache2/htdocs/images/awstats インストール # tar zxvf AWStats65_Jpn.tar.gz # cd AWStats65_Jpn # cd /usr/local/src/AWStats65_Jpn/wwwroot/ # cp -rf cgi-bin/* /usr/local/apache2/cgi-bin/awstats/ # cp -rf icon/* /usr/local/apache2/htdocs/images/awstats/ **設定 [#y378b947] # cd /usr/local/apache2/cgi-bin/awstats/ # nkf -ed awstats.model_jp.conf > awstats.www.hoge.jp.conf # vi awstats.www.hoge.jp.conf awstats.www.hoge.jp.conf LogFile="/usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8" SiteDomain="www.hoge.jp" HostAliases="localhost 127.0.0.1 REGEX[hoge\.jp$]" DNSLookup=1 DirData="/usr/local/apache2/cgi-bin/awstats/data" DirCgi="/cgi-bin/awstats" DirIcons="/images/awstats" DetailedReportsOnNewWindows=0 SkipHosts="REGEX[^192\.168\.0\.]" # 特定のホストを除く SkipFiles="REGEX[^\/program.php]" # 特定のファイルを除く **手動で実行 [#offf1c1f] ログファイル作成 # /usr/local/apache2/cgi-bin/awstats/utf8_decode.pl </usr/local/apache2/logs/www.hoge.jp-access_log > /usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8 アクセス解析実行 # cd /usr/local/apache2/cgi-bin/awstats # ./awstats.pl -config=www.hoge.jp -update 正常に終了していれば、処理結果が以下のような形で表示されます。 Lines in file: 225730 Found 5 dropped records, Found 124 corrupted records, Found 0 old records, Found 225601 new records. 画像を表示できるよう httpd.conf に下記を追記~ # vi /usr/local/apache2/conf/httpd.conf Alias /images/awstats/ "/usr/local/apache2/htdocs/images/awstats/" ブラウザでアクセス解析ファイルにアクセスしてみる http://www.hoge.jp/awstats/ *定期的に実行 [#nec1d314] # cd /usr/local/src/AWStats65_Jpn/ # nkf -ed awstats.cron > /usr/local/apache2/cgi-bin/awstats/awstats.cron awstats.cron #! /usr/bin/perl # 完全日本語版AWStats用サンプルcronファイル # # ファイルパス等は自分の環境に合わせて書き直して下さい。 # httpのログファイルをデコードした上で一時ディレクトリに格納します。 # access_log.utf8は一時的にデコードしたログを保存するファイルの名前です。 system("/usr/local/apache2/cgi-bin/awstats/utf8_decode.pl < /usr/local/apache2/logs/www.hoge.jp-access_log > /usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8"); # ログファイルが複数の場合、ファイル数の分行う #system("/usr/local/apache2/cgi-bin/awstats/utf8_decode.pl < /usr/local/apache2/logs/www.hoge.jp-ssl_access_log > #/usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8"); # awstats.plが切り詰めないオリジナルのログを切り詰めます。 #open(LOG,"+</usr/local/apache2/logs/www.hoge.jp-access_log"); #truncate(LOG,0); #close(LOG); #open(LOG,"+</usr/local/apache2/logs/www.hoge.jp-ssl_access_log"); #truncate(LOG,0); #close(LOG); # Ver.5.0から、更新処理を別途走らせる必要ができたらしい.... system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -update > /dev/null"); # awstats.plを走らせ、htmlファイルを出力します。 # 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す # る方が、良好なパフォーマンスが得られます。 #system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html"); # アクセス可能になるように出力したhtmlファイルの権限を変更 #system("chgrp hoge /home/hoge/public_html/awstats/index.html"); #system("chown hoge /home/hoge/public_html/awstats/index.html"); パーミッションを変更 # chmod 700 /usr/local/apache2/cgi-bin/awstats/awstats.cron cron でこのスクリプトを自動実行 (例では30分毎に実行) # crontab -e 30 * * * * perl /usr/local/apache2/cgi-bin/awstats/awstats.cron *AWStatsとlogrotateの問題点解決 [#w33fc0ea] Apacheのaccess_logをlogrotateによりローテーションしている場合に問題が発生する。 例えば4時10分にaccess_logの ログローテーションが行われるとすると~ 「定期的に実行する」で紹介したスクリプトは30分おきに実行されるので~ 4時に実行されたとして次に実行されるのは4時30分であるため、~ 4時から4時10分の間にaccess_logに記録されたログはawstatsの統計情報に反映されない。 この問題を解決するにはaccess_logをローテーションする直前にawstats.plにより統計情報をアップデートします。 /etc/logrotate.d/apacheを編集します。 # vi /etc/logrotate.d/apache 下記をapache再起動の前に追加 prerotate perl /usr/local/apache2/cgi-bin/awstats/awstats.cron endscript "/usr/local/apache2/logs/*_log" { rotate 4 compress weekly sharedscripts prerotate perl /usr/local/apache2/cgi-bin/awstats/awstats.cron endscript postrotate /usr/local/apache2/bin/apachectl restart endscript } *静的HTML出力 [#f2b9dccf] cgiが重いのであればHTML出力。~ ※現在月の分しかHTMLは作成されない。過去の月の閲覧はcgi。~ ※公開したくない場合は対策が必要。(cgiは設定でIPなどの閲覧制限をかけられる)~ 手動実行 # ./awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html クローンで動かす場合はawstats.cronに追記 # awstats.plを走らせ、htmlファイルを出力します。 # 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す # る方が、良好なパフォーマンスが得られます。 system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html"); # アクセス可能になるように出力したhtmlファイルの権限を変更 system("chgrp hoge /home/hoge/public_html/awstats/index.html"); system("chown hoge /home/hoge/public_html/awstats/index.html"); #exlink
タイムスタンプを変更しない
#contents *AWStats [#qe8e9838] apache のアクセス解析ソフト AWStatsは、httpdのアクセスログを解析し、視覚的にブラウザで閲覧することが出来る形に整形するPerlのスクリプト 本家サイト http://awstats.sourceforge.net/~ 2006-04-07現在 最新安定板 ver6.5 完全日本語版 http://www.bflets.dyndns.org/Tools/AWStatsJpn.html~ 2006-04-07現在 ver6.5 完全日本語版 http://www.starplatinum.jp/awstats/awstats66/~ 2011-01-20現在 ver6.6 完全日本語版 http://www.starplatinum.jp/awstats/awstats70/~ 2011-03-28現在 ver7.0 本家「AWStats」もVer.4.0から正式に日本語に対応したことになってるが、非常にお粗末。~ より完璧な日本語対応を目指して修正を行ったものを公開しているすばらしい人がいたので、使せていただく。 *事前準備 [#te21962e] **Jcode.pm のインストール [#s3ec162c] オリジナルログ内のURLをデコードするために必要 参照~ http://openlab.jp/Jcode/index-j.html~ http://www.mytools.net/memo/JcodePM.html 「Jcode-0.xx.tar.gz」をダウンロード~ http://www.ring.gr.jp/pub/lang/perl/CPAN/modules/by-module/Encode/DANKOGAI/ インストール # tar zxvf Jcode-0.88.tar.gz # cd Jcode-0.88 # perl Makefile.PL; make; make install Can't locate ExtUtils/MakeMaker.pm などと怒られたら # yum install perl-ExtUtils-MakeMaker 確認 # perl -MJcode -e'print $Jcode::VERSION' 0.88 削除 # rm -rf Jcode-0.88 # rm -f Jcode-0.88.tar.gz **nkfインストール [#p12bb0a8] 「nkf207.tar.gz」をダウンロード~ http://sourceforge.jp/projects/nkf/ インストール # yum install nkf OR # tar zxvf nkf207.tar.gz # cd nkf207 # make # cp nkf /usr/bin/ 削除 # rm -rf nkf207 # rm -f nkf207.tar.gz **ワームが残すログによるAWStatsのエラー回避 [#q9131e8a] AWStatsなどでアクセスログを元に統計情報を出力している場合、~ ワームの残すアクセスログが原因でエラーとなり、実行できなくなる場合がある。~ これらの対策として、http.confを編集します。 詳細は[[Apache2アクセスログのカスタマイズ]]を参照。~ 画像等のログ排除の設定は不要 *環境確認 [#v4d459b7] -perlのバージョンが5.8.0以降である # perl -v This is perl, v5.8.5 built for i386-linux-thread-multi -perlの場所 # which perl /usr/bin/perl -WWWサーバのCGIディレクトリのパス~ 本文では /usr/local/apache2/cgi-bin とする -Apacheのアクセスログのパス~ 本文では /usr/local/apache2/logs/www.hoge.jp-access_log とする -WWWサーバのルートディレクトリ~ 本文では /home/hoge/public_html とする -Apacheのログフォーマットがcombinedである # vi /usr/local/apache2/conf/httpd.conf httpd.conf CustomLog /usr/local/apache2/logs/www.hoge.jp-access_log combined *AWStats 6.5完全日本語版 インストール [#z34653df] 参考~ http://www.akenotori.jp/soft/26.html#SEC9~ http://cyberam.dip.jp/linux_server/log/awstats60_main.html~ http://honana.com/awstats~ -「AWStats65_Jpn.tar.gz」をダウンロード~ http://www.bflets.dyndns.org/Tools/AWStatsJpn.html -7.0~ http://www.starplatinum.jp/awstats/awstats70/ **インストール [#x67895af] ディレクトリの作成 // AWStatsインストールディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats // ログディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats/logs // データディレクトリ # mkdir /usr/local/apache2/cgi-bin/awstats/data // イメージファイルディレクトリ # mkdir -p /usr/local/apache2/htdocs/images/awstats インストール # tar zxvf AWStats65_Jpn.tar.gz # cd AWStats65_Jpn # cd /usr/local/src/AWStats65_Jpn/wwwroot/ # cp -rf cgi-bin/* /usr/local/apache2/cgi-bin/awstats/ # cp -rf icon/* /usr/local/apache2/htdocs/images/awstats/ **設定 [#y378b947] # cd /usr/local/apache2/cgi-bin/awstats/ # nkf -ed awstats.model_jp.conf > awstats.www.hoge.jp.conf # vi awstats.www.hoge.jp.conf awstats.www.hoge.jp.conf LogFile="/usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8" SiteDomain="www.hoge.jp" HostAliases="localhost 127.0.0.1 REGEX[hoge\.jp$]" DNSLookup=1 DirData="/usr/local/apache2/cgi-bin/awstats/data" DirCgi="/cgi-bin/awstats" DirIcons="/images/awstats" DetailedReportsOnNewWindows=0 SkipHosts="REGEX[^192\.168\.0\.]" # 特定のホストを除く SkipFiles="REGEX[^\/program.php]" # 特定のファイルを除く **手動で実行 [#offf1c1f] ログファイル作成 # /usr/local/apache2/cgi-bin/awstats/utf8_decode.pl </usr/local/apache2/logs/www.hoge.jp-access_log > /usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8 アクセス解析実行 # cd /usr/local/apache2/cgi-bin/awstats # ./awstats.pl -config=www.hoge.jp -update 正常に終了していれば、処理結果が以下のような形で表示されます。 Lines in file: 225730 Found 5 dropped records, Found 124 corrupted records, Found 0 old records, Found 225601 new records. 画像を表示できるよう httpd.conf に下記を追記~ # vi /usr/local/apache2/conf/httpd.conf Alias /images/awstats/ "/usr/local/apache2/htdocs/images/awstats/" ブラウザでアクセス解析ファイルにアクセスしてみる http://www.hoge.jp/awstats/ *定期的に実行 [#nec1d314] # cd /usr/local/src/AWStats65_Jpn/ # nkf -ed awstats.cron > /usr/local/apache2/cgi-bin/awstats/awstats.cron awstats.cron #! /usr/bin/perl # 完全日本語版AWStats用サンプルcronファイル # # ファイルパス等は自分の環境に合わせて書き直して下さい。 # httpのログファイルをデコードした上で一時ディレクトリに格納します。 # access_log.utf8は一時的にデコードしたログを保存するファイルの名前です。 system("/usr/local/apache2/cgi-bin/awstats/utf8_decode.pl < /usr/local/apache2/logs/www.hoge.jp-access_log > /usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8"); # ログファイルが複数の場合、ファイル数の分行う #system("/usr/local/apache2/cgi-bin/awstats/utf8_decode.pl < /usr/local/apache2/logs/www.hoge.jp-ssl_access_log > #/usr/local/apache2/cgi-bin/awstats/logs/www.hoge.jp-access_log.utf8"); # awstats.plが切り詰めないオリジナルのログを切り詰めます。 #open(LOG,"+</usr/local/apache2/logs/www.hoge.jp-access_log"); #truncate(LOG,0); #close(LOG); #open(LOG,"+</usr/local/apache2/logs/www.hoge.jp-ssl_access_log"); #truncate(LOG,0); #close(LOG); # Ver.5.0から、更新処理を別途走らせる必要ができたらしい.... system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -update > /dev/null"); # awstats.plを走らせ、htmlファイルを出力します。 # 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す # る方が、良好なパフォーマンスが得られます。 #system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html"); # アクセス可能になるように出力したhtmlファイルの権限を変更 #system("chgrp hoge /home/hoge/public_html/awstats/index.html"); #system("chown hoge /home/hoge/public_html/awstats/index.html"); パーミッションを変更 # chmod 700 /usr/local/apache2/cgi-bin/awstats/awstats.cron cron でこのスクリプトを自動実行 (例では30分毎に実行) # crontab -e 30 * * * * perl /usr/local/apache2/cgi-bin/awstats/awstats.cron *AWStatsとlogrotateの問題点解決 [#w33fc0ea] Apacheのaccess_logをlogrotateによりローテーションしている場合に問題が発生する。 例えば4時10分にaccess_logの ログローテーションが行われるとすると~ 「定期的に実行する」で紹介したスクリプトは30分おきに実行されるので~ 4時に実行されたとして次に実行されるのは4時30分であるため、~ 4時から4時10分の間にaccess_logに記録されたログはawstatsの統計情報に反映されない。 この問題を解決するにはaccess_logをローテーションする直前にawstats.plにより統計情報をアップデートします。 /etc/logrotate.d/apacheを編集します。 # vi /etc/logrotate.d/apache 下記をapache再起動の前に追加 prerotate perl /usr/local/apache2/cgi-bin/awstats/awstats.cron endscript "/usr/local/apache2/logs/*_log" { rotate 4 compress weekly sharedscripts prerotate perl /usr/local/apache2/cgi-bin/awstats/awstats.cron endscript postrotate /usr/local/apache2/bin/apachectl restart endscript } *静的HTML出力 [#f2b9dccf] cgiが重いのであればHTML出力。~ ※現在月の分しかHTMLは作成されない。過去の月の閲覧はcgi。~ ※公開したくない場合は対策が必要。(cgiは設定でIPなどの閲覧制限をかけられる)~ 手動実行 # ./awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html クローンで動かす場合はawstats.cronに追記 # awstats.plを走らせ、htmlファイルを出力します。 # 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す # る方が、良好なパフォーマンスが得られます。 system("/usr/local/apache2/cgi-bin/awstats/awstats.pl -config=www.hoge.jp -output -staticlink > /home/hoge/public_html/awstats/index.html"); # アクセス可能になるように出力したhtmlファイルの権限を変更 system("chgrp hoge /home/hoge/public_html/awstats/index.html"); system("chown hoge /home/hoge/public_html/awstats/index.html"); #exlink
テキスト整形のルールを表示する