analogでリンク元レポートや検索語句レポートを取得する方法

このQ&Aのポイント
  • analogを使用してリンク元レポートや検索語句レポートを取得する方法について説明します。
  • Apacheのログフォーマットに%qを追加することで、analogで必要な情報を取得することができます。
  • 参考になるサイトや情報についても紹介します。
回答を見る
  • ベストアンサー

analogでリンク元レポートや検索語句レポートをとりたい

analogを実行すると以下の警告が出ます。 ドキュメントを確認するとレポートファイルが無いということ。 analog: Warning R: Turning off empty Referring Site Report analog: Warning R: Turning off empty Search Query Report analog: Warning R: Turning off empty Search Word Report apacheで上のレポートをとる場合どのようなLogFormatにすればよいのでしょう? ログ カスタムなどで検索し「LogFormat」に%qを加ええるなどやってみましたが記述エラーでうまくいきません。 どなたか参考になるサイト等紹介していただけないでしょうか? Apache/1.3.20 analog 5.24

  • fichi
  • お礼率38% (24/63)

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

combined というログフォーマットが定義されているかと思います。それを使えば全てのログを取得することができるでしょう。 ただし、Analog 側で設定を変更することによって、どのようなログフォーマットにも対応できるようになっています。 ちなみに、私の場合は SSL を利用した際と運営を行っていたので、ユーザの SSL 利用率や使用している暗号化方式、暗号化強度、SSL バージョンなどのログも取得していました。(残念ながら、それらの項目を無視することはできても、解析対象には入れられなかったような気がします)

fichi
質問者

補足

早速のご回答にご連絡遅くなってた変申し訳ありません。 httpd.confの記述で LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog /var/log/httpd/access_log combined という記述を入れておりますが、analogコマンドを実行すると analog: Warning R: Turning off empty Referring Site Report analog: Warning R: Turning off empty Failed Referrer Report analog: Warning R: Turning off empty Browser Report analog: Warning R: Turning off empty Search Query Report analog: Warning R: Turning off empty Search Word Report analog: Warning R: Turning off empty Internal Search Query Report analog: Warning R: Turning off empty Internal Search Word Report analog: Warning R: Turning off empty Browser Summary analog: Warning R: Turning off empty Operating System Report analog: Warning R: Turning off empty Processing Time Report と上記のような警告が出ます。 httpd.confで上記以外に設定する場所があるのでしょうか? 当方の情報としてはバーチャルドメインで確認してます。 バーチャルディレクティブにドメイン名-access_logとログファイル名を指定して動作確認を行ってます。

関連するQ&A

  • 検索表示について

    このようなプルダウン付きの検索バーを作成しています。 この検索結果をこの検索バーの下に表示させるためにはどうすればいいでしょうか?よろしくお願いします。 <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- var site = new Array(); var target = "main"; site[0] = ["Goo", "http://search.goo.ne.jp/web.jsp", "MT", ["from", "USR"], ["IE", "sjis"]]; site[1] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[2] = ["Yahoo", "http://search.yahoo.co.jp/bin/search", "p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData && !window.opera) return; // 検索サイトのリストを生成 var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } // デフォルトで選択状態にする場合はその配列番号を option[n] に指定 // select.options[3].selected = true; // 既存の検索フォームにこのドロップダウンを追加 var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); // フォームが送信された時に selectSearch() を呼び出す obj.onsubmit = selectSearch; } function jump(){ var url = document.form.select.options[document.form.select.selectedIndex].value; if(url != "" ){ if(target == 'top'){ top.location.href = url; } else if(target == 'blank'){ window.open(url, 'window_name'); } else if(target != ""){ eval('parent.' + target + '.location.href = url'); } else{ location.href = url; } } } function selectSearch() { var str = document.forms[0].p.value; // 入力された検索文字 var num = document.forms[0].addlist.value; // 選択されたリストの番号 // 選択された検索サイトのフォーム生成(送信先の指定) var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; // setform.target = "_blank"; // 検索結果を新しいウインドウに表示する場合に追加 // 検索文字クエリ var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); // 検索文字以外のクエリ if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } // 生成したフォームを文末に追加してそのフォームを送信 document.body.appendChild(setform); setform.submit(); // document.forms[document.forms.length - 1].submit(); return false; } // --> </script> <br> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" name="p" value="" size="50" maxlength=255 > <input type="submit" value="検索"> </form> </body> </html>

  • 検索バーについて

    現在、下のソースを使い検索サイトを作成しています。今、yahooやgoogleのようにtopページでキーワードを入力して検索するところを作成できたのですが、その検索結果を結果ページで表示したいのですが、どうしても表示できません。ソースは下のとおりです。アドバイス等よろしくお願いします。説明が下手ですみません。 (topページ) <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Script-Type" content="text/javascript"> </head> <body> <script type="text/javascript"> <!-- var site = new Array(); site[0] = ["Google", "http://www.google.com/search", "q", ["hl", "ja"], ["ie", "Shift_JIS"]]; site[1] = ["Yahoo", "http://search.yahoo.co.jp/bin/search", "p",["ei", "Shift_JIS"]]; window.onload = function() { if (!document.createElement) return; if (document.all && !window.clipboardData &&!window.opera) return; var select = document.createElement("select"); select.id = "addlist"; for (var i = 0; i < site.length; i++) { var opt = document.createElement("option"); opt.value = i; var str = document.createTextNode(site[i][0]); opt.appendChild(str); select.appendChild(opt); } var obj = document.forms[0]; obj.elements[obj.elements.length - 1].value = "検索"; obj.insertBefore(select, obj.elements[1]); obj.onsubmit = selectSearch; } function selectSearch() { var str = document.forms[0].p.value; var num = document.forms[0].addlist.value; var setform = document.createElement("form"); setform.action = site[num][1]; setform.method = "GET"; setform.target = "_blank"; var query = document.createElement("input"); query.type = "hidden"; query.name = site[num][2]; query.value = str; setform.appendChild(query); if (site[num].length > 3) { for (var i = 3; i < site[num].length; i++) { var extra = document.createElement("input"); extra.type = "hidden"; extra.name = site[num][i][0]; extra.value = site[num][i][1]; setform.appendChild(extra); } } document.body.appendChild(setform); setform.submit(); return false; } // --> </script> <form action="http://search.yahoo.co.jp/bin/search" method="GET"> <input type="text" value=""> <input type="submit" value="検索"> </form> </body> </html> (結果ページ) <html lang="ja">     : topページのソースと全て同じソースです。 : </form> <iframe src="#" width="100%" height="82%" scrolling="yes" name="main" frameborder="0">ブラウザ</iframe> </body> </html>

  • yahooカスタムサーチ使用時のSSL警告

    ホームページを作成していますが、 HTTPSのページで警告が出て困っています。 https://のページにアクセスすると、 「~このページには安全でない他のリソースが含まれています。~」となってしまいます。 (chromeだと、URLの左の南京錠マークの上に黄色の三角がついている状態) 調べたところ、当サイトではyahooカスタムサーチを使用しており、 そこで使用されている。 http://custom.search.yahoo.co.jp/images/window/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.gif と http://i.yimg.jp/images/search/customsearch/yjlogo/yjlogo_type4.gif がhttp://~でアクセスされていることが原因で警告が出ているようです。 規約的に画像を消したりすることはNGのようですが、 https://のページでも警告がでることなく利用する方法はありませんか? よろしくお願いします。

  • エスケープでエラーが出ます。

    $search_query = "select SQL_CALC_FOUND_ROWS * from king"; $usersearch= htmlentities($_GET['usersearch']); $clean_search = str_replace('、', ' ',$clean_search); $clean_search = str_replace(' ', ' ',$usersearch); $search_words = explode(' ', $clean_search); $final_search_words = array(); if (count($search_words) > 0) { foreach ($search_words as $word) { if (!empty($word)) { $final_search_words[] = $word; } } } // Generate a WHERE clause using all of the search keywords $where_list = array(); if (count($final_search_words) > 0) { foreach($final_search_words as $word) { $where_list[] = "syou LIKE '%$word%'"; } } $where_clause = implode(' AND ', $where_list); // Add the keyword WHERE clause to the search query if (!empty($where_clause)) { $search_query .= " WHERE $where_clause"; } $pid = intval($_GET['pid']); if ($pid < 1) $pid = 1; $limit_start_rows = ( $pid - 1 ) * 10; $search_query .= " LIMIT {$limit_start_rows}, 10"; $result = mysql_query($search_query); $num_rows_result = mysql_query("SELECT FOUND_ROWS()"); $num_rows = mysql_fetch_assoc($num_rows_result); $num_rows = $num_rows['FOUND_ROWS()']; if($num_rows== 0){ $message="該当データは見つかりませんでした。"; } else $message=$num_rows ."件該当しました<br/>"; echo $message; while($row = mysql_fetch_array($result) 2行目のhtmlentities()を外すと正常に動作しますが、この関数を付けるとエラーが出てしまいます。 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ドメイン 76です。ちなみに76は、ここに提示している最後のwhile~です、よろしくお願いします。

    • 締切済み
    • PHP
  • Alfred Evernote検索出来ない…?

    PC素人です。出来るだけググってはみたのですが同様の質問も解決法も 見つけられなかったので質問させて頂きます。 AlfredにてURLスキーム( evernote://search/{query} )を利用し、 Evernoteを素早く検索出来る、という評判を聞いて早速Alfredを導入したのですが、 Evernoteは起ち上がっても肝心の検索がされません。 Evernoteの検索窓にはAlfredで入力した文字が確かに入力されています。 でも検索は実行されていません。 その状態でreturnキーを押しても反応が無く 一文字消したり、あるいは足したりするとその瞬間検索される、という具合です。 (起ち上がった状態では文字列が全て選択された状態になっているので 一文字消すにも、足すにも2ステップ必要になり、全く手早くない。) Alfredからの起動直後、Evernoteが文字列を認識していないような印象… Alfred 1.3.2をAppストアでなくサイトからダウンロードしました。 Powerpackも購入済みです。(確か購入前も同じ症状でした。) Evernoteは5.0.4 Mac OS X 10.8.2 Alfred PreferenceのCustom Searchでの設定の際にあるチェックボックス “Encode query using UTF8”は、良く分からないのですがチェックの有無は 結果に関係しませんでした。 また、試しにSafariのアドレスバーからevernote://search/○○を実行してみたのですが 同じ結果でした。 どなたか原因が分かる方、どうか教えて下さい。 お願いいたします。

  • apacheとawstats連携

    こんばんは。 Webサーバを構築中にIPアドレスの変更の必要が出てしまい、 変更したところ、awstatsによるアクセス状況の更新されな くなりました。 「更新されない」とは、「http://ホスト名/awstats.pl」を 実行し、下記の個所2点を見て判断しました。  ・更新日付が、IP変更前と変わらない  ・アクセスログが、IPアドレス変更以降カウントされていない 色々調べたところ、apacheのアクセスログに「combined」 だけが大量に出力されていました。 #cat /var/log/httpd/access_log combined combined combined   : ログ関係の設定を見てみましたが、導入時に変更したままでした。 #cat /etc/httpd/conf/httpd.conf ServerName web01  : LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" common LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent  : CustomLog logs/access_log combined  : #cat /etc/httpd/conf/httpd.conf  : LogFormat=1 LogSeparator=" " SiteDomain="web01" HostAliases="localhost 127.0.0.1" DNSLookup=1  : 環境は、以下の通りです。 OS :CentOS release 5.7 (Final) http:apache2.2.3 php :php5.3 awstats:7.0 awstatsは初めての利用でしたので、IPアドレスの変更で影響が大きいとは 予想もしておらず、サイトを見ても似たようなサイトが見つからず困って しまいました。 「awstats.pl」は、色々なサイトを見て、「"YYYY年MM月"の日付の調整」等 「やっておくべき事項」は、対応しています。 解決策や再調査事項等のアドバイスをお願いします。

  • CentOS WEB開発 フォルダパーミッション

    職場で、Linuxの経験が無いにも関わらず WEBサイトのサーバ移行をしていまして、躓きました。 新サーバはAWSにてCentOS 6.9 Apache 2.2.15 php 5.3.3となっています。 httpd.conf内にて、デフォルトのDocument Rootから 変更し、そのフォルダ以下にhtmlやphpといった必要な ファイルを置いています。 デフォルトのDocument Rootやその近辺(一つ上の階層)では 置いたhtmlやphpをブラウザで表示することができますが 新たにDocument Rootに設定したフォルダだと 403 Forbidden You don't have permission to access /index.html on this server. と表示されたので、該当のフォルダのパーミッションを 755(775や777も試しました)、ファイルのを644に設定し WEBで見ても現象は変わりません。 -rw-r--r--. 1 apache apache 24 Dec 25 01:52 index.html -rw-r--r--. 1 apache apache 3049 May 16 2017 index.php drwxr-sr-x. 9 apache apache 4096 Dec 25 08:13 www(←Document Rootに設定したフォルダ) .htaccessも変更したDocument Rootフォルダに置いてます。 (中身は下記2行ですが) AddHandler x-httpd-php5 .php .phps DirectoryIndex index.php index.html index.htm 他に何か考慮する点はありますでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPの検索システムについてご教授下さい

    こんにちは。現在PHPで検索システムを実装しようとしておるのですが、どうしても条件絞り込みを行うことができず(全件表示されてしまう)困っております。PHP初心者で、無知なため先輩方ご教授頂けますと幸いです。PHPのソースは以下となります。 <?php $debug = fales; //DB接続 mysql_connect('db_host','db_user','db_pass') or die(mysql_error()); mysql_select_db('db_name') or die(mysql_error()); if($debug) print_r($_POST); //エラーチェック //リクエストメソッドチェック if($_SERVER["REQUEST_METHOD"] != "POST"){ // ブラウザからHTMLページを要求された場合 }else{ // フォームからPOSTによって要求された場合 } $query = "SELECT * FROM search "; if(!empty($name)) { $name = addslashes($name); $where = "name = '$name' "; } if(!empty($tel)) { $tel = addslashes($tel); $where .= "tel '$tel' "; } if(!empty($sex)) { $sex = addslashes($sex); $where .= "sex = '$sex' "; } if(!empty($where)) { $where = substr($where, 0, -4); $where = "WHERE" . $where; } $query .= '$where'; $result = mysql_query($query . implode(" AND ", $where)); $num_rows = mysql_num_rows($result); if($num_rows == 0) $message = "該当するデータはありませんでした"; else $message = $num_rows . "件ヒットしました"; ?> 検索結果<br> <?=$message?> <table border=1> <tr><td>名前</td><td>電話番号</td><td>性別</td></tr> <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row['name']?></td><td><?=$row['tel']?></td><td><?=$row['sex']?></td></tr> <? endwhile; ?> </table> <a href="input.html">再検索</a> 現在データベースにはサンプルとして10件入れておりますが、どの条件で検索を行なっても10件全てが検索結果として表示されてしまいます。どこを触れば良いのでしょうか…? お忙しいところ大変恐れ入りますが何卒、よろしくお願い申し上げます。

    • 締切済み
    • PHP
  • レポートに用いる語句

    仕事で研究レポートを作成しています。 その中の文として例えば(AとBがほぼ同様に変化した。)という文章を書きたい時このほぼ同様とは口頭語であってレポートとしては不適だと言う指摘がありました。レポートとしては使ってはいけない語句なのでしょうか?他どのような表現をしたらいいのでしょうか?教えてください

  • PHP 検索PG

    いつもお世話になっております。 PHP勉強中の初心者です。今回検索PGの作成を試みているのですがうまく検索されません。わかる人がいましたらお力を貸して下さい。 ------------------------------- 環境 レンタルサーバー:カゴヤ PHP 5.2.6 Apache/1.3.41 MySQLバージョン 5.0.33 -------------PHP----------------- <?php $debug = false; //DB接続 require_once("DB.php"); // データベースとの接続情報を記述 //$dsn ="mysql://ユーザー名:pw@localhost/データベース名"; //$db =DB::connect($dsn); if($debug) print_r($HTTP_POST_VARS); //クエリ生成 $query = "SELECT * FROM search "; //検索条件生成 //名前 if(!empty($name)) { $name = addslashes($name); $where = "name = '$name'"; } 住所 if(!empty($address)) { $address = addslashes($address); $where .= "address REGEXP '$address' && "; } //性別 if(!empty($gender)) { $gender = addslashes($gender); $where .= "gender = '$gender' && "; } //スキル if(!empty($skill)) { foreach($skill as $value) { $value = addslashes($value); $temp_where .= "skill REGEXP '$value' || "; } $temp_where = substr($temp_where, 0, -4); $where .= "(". $temp_where. ") && "; } if(!empty($where)) { $where = substr($where, 0, -4); $where = "WHERE " . $where; } $query .= $where; if($debug) { print "<BR><BR>"; print $query; } $result = mysql_query($query); $num_rows = mysql_num_rows($result); if($num_rows == 0) $message = "該当するデータはありませんでした"; else $message = $num_rows . "件ヒットしました"; ?> 検索結果<br> <?=$message?> <table border=1> <tr><td>名前</td><td>住所</td><td>性別</td><td>スキル</td></tr> <? while($row = mysql_fetch_assoc($result)): ?> <tr><td><?=$row[name]?></td><td><?=$row[address]?></td><td><?=$row[gender]?></td><td><?=$row[skill]?></td></tr> <? endwhile; ?> </table> <a href="input.html">再検索</a> ------------------------------- ----------html----------------- <html> <body bgcolor="#FFFFFF" text="#000000"> <form name="" method="POST" action="search.php"> 検索条件を指定してください<br> <table width="500" border="1" cellspacing="1" cellpadding="0"> <tr> <td>名前</td> <td> <input type="text" name="name" size="40" maxlength="255"> </td> </tr> <tr> <td>住所</td> <td> <input type="text" name="address" size="40" maxlength="255"> </td> </tr> <tr> <td>性別</td> <td> <input type="radio" name="gender" value="男性"> 男性  <br> <input type="radio" name="gender" value="女性"> 女性<br> <input type="radio" name="gender" value="その他"> その他</td> </tr> <tr> <td>スキル</td> <td> <input type="checkbox" name="skill[0]" value="ワープロ"> ワープロ<br> <input type="checkbox" name="skill[1]" value="表計算"> 表計算<br> <input type="checkbox" name="skill[2]" value="プログラミング"> プログラミング<br> <input type="checkbox" name="skill[3]" value="営業"> 営業<br> <input type="checkbox" name="skill[4]" value="音楽"> 音楽</td> </tr> </table> <input type="submit" name="submit" value="検索"> <input type="reset" value="条件クリア"> </form> </body> </html> --------------------------------------------------- 名前で検索した際に違う名前でも全件表示されてしまいます。 完全に一致したら表示させたいのですがやりかたがわかりません。 だれかわかるかたいらっしゃいましたらご教授よろしくお願い 致します。

    • 締切済み
    • PHP