一般的に使用されるSquidログ分析ツール

一般的に使用されるSquidログ分析ツール
著者:JackTian
マイクロチャネル公開番号:ITのJiege旅行(ID:Jake_Internet)

前回の記事では、Squidプロキシサーバー、プロキシ動作メカニズム、基本的なプロキシタイプ、Squidサービスのインストール、従来のプロキシの構築、透過プロキシ、ACLアクセス制御の基本概念を紹介しました。記事のリンクについては、以下を参照してください。最も一般的に使用されているオープンソースのSquidプロキシサーバーです。本日は、一般的に使用されているSquidログ分析ソフトウェアを紹介します。将来の日常業務に役立つ学生にも使用できることを願っています。

Sarg:フルネーム:Squid Analysis Report Generatorは、HTML形式を使用して、インターネットWebサイト情報、時間占有情報、ランキング、接続数、訪問数、およびユーザーがアクセスするその他の関連情報を一覧表示するSquidログ分析ツールです。

Squidログ分析ソフトウェア:http//www.squid-cache.org/Misc/log-analysis.html
一般的に使用されるSquidログ分析ツール

1.Sargのデプロイ中に
GDライブラリをインストールします

# yum -y install gd gd-devel

sargをインストールします

# mkdir /usr/local/sarg
# cd /usr/local/sarg/
# tar zxf sarg-2.3.7.tar.gz
# cd sarg-2.3.7
# ./configure --prefix=/usr/local/sarg/ -sysconfdir=/etc/sarg --enable-extraprotection && make && make install

構成アイテムの意味:

  • -sysconfdir = / etc / sarg:構成ファイルディレクトリ

  • --enable-extraprotection:セキュリティ保護を追加します

構成

# vi /etc/sarg/sarg.conf 
7 access_log /usr/local/squid/var/logs/access.log       // 指定 squid 的访问日志文件
25 title "Squid User Access Reports"                    // 网页 title 标题
120 output_dir /var/www/html/sarg                       // sarg 报告的输出目录
178 user_ip no                                          // 使用用户名显示
184 topuser_sort_field connect reverse                  // 在 top 排序中,指定连接次数,访问字节数,采用降序排列
190 user_sort_field connect reverse                     // 对于用户访问记录,连接次数按降序排列
206 exclude_hosts /usr/local/sarg/noreport              // 指定不计入排序的站点列表文件
257 overwrite_report no                                 // 当那个日期报告已经存在,是否覆盖报告
289 mail_utility mailq.postfix                          // 发送邮件报告的命令
434 charset UTF-8                                       // 使用字符集
518 weekdays 0-6                                        // 指定 top 排序时的星期周期,0 为周日
525 hours 9-12,14-16,18-20                              // 指定 top 排序时的时间周期
633 www_document_root /var/www/html                     // 网页根目录


上記の構成で実行し、ランキングに含まれておらず、/ usr / local / sarg / noreportファイルに保存する必要があるサイトを追加すると、追加されたドメイン名はランキングに表示されません。sargを直接実行して記録を開始します。シンボリックリンクを設定してからsargを実行すると、出力情報が表示されます。

# touch /usr/local/sarg/noreport
# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
# sarg
SARG: 纪录在文件: 0, reading: 100.00%
SARG: 没有找到纪录
SARG: 结束

2.Sarg関連のコマンドヘルプ

  • -a:ソートに含まれないホスト名またはアドレスを指定してください

  • -b:ユーザーエージェントログファイルの出力

  • -c:並べ替えに含まれていないサイトのリストのファイル名を/ usr / local / sarg / norecordsとして指定します。クライアントがアクセスしたこれらのサイトの場合、上位で並べ替えられません。

  • -d:日付範囲を指定します

  • -e:レポートの受信者の電子メールを指定します

  • -f:構成ファイルを指定します

  • -g:入力日付形式を指定します

  • -h:ヘルプ情報

  • -i:クライアントの並べ替え用のユーザー名またはIPアドレスを指定します

  • -l:イカのログファイルの絶対パスを指定します。

  • -o:Webレポートファイルの出力パスを指定します。sargの実行には、webmasterまたはその他の非管理者ユーザーを使用することをお勧めします。

  • -p:ユーザーIDドメインとしてIPアドレスを使用します

  • -w:一時ファイルディレクトリを指定し、ディレクトリが配置されているパーティションが1Gを超える十分な大きさであることを確認します。

3.計画タスク
sargを計画タスクにして、定期的に実行することができます。

# vim /usr/local/sarg/daily.sh                       // 每日日报
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
/usr/local/bin/sqmgrlog -l /usr/local/squid/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null
exit 0

# chmod +x /usr/local/sarg/daily.sh
# crontab -e                                         // 添加定时任务,每天 0 点执行
00 00 * * * /usr/local/sarg/daily.sh          
# chkconfig crond on

日次レポートに加えて、週次、月次、および電子メールのレポートを作成することもできます。次のスクリプトを参照できます。

週報:

-------------------------------------
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 week ago" +%d/%m/%Y)
/usr/local/bin/sqmgrlog -l /usr/local/squid/logs/access.log -o /usr/local/apache/htdocs/reports/weekly -z -d $YESTERDAY-$TODAY
exit 0

月报告:
-------------------------------------
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 month ago" +%d/%m/%Y)
/usr/local/bin/sqmgrlog -l /usr/local/squid/logs/access.log -o /usr/local/apache/htdocs/reports/monthly -z -d $YESTERDAY-$TODAY
/usr/local/squid/bin/squid -k rotate
exit 0

通过邮件发送报告:
-------------------------------------
#!/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
/usr/local/bin/sqmgrlog -l /usr/local/squid/logs/access.log -e [email protected] -z -d $YESTERDAY-$TODAY
exit 0

4つの一般的な問題
rpmパッケージのインストール、インストールできません、エラーが報告されます


warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de:

解決:

rpmステートメントの最後に--force--nodepsを追加し、rpm -ivh.rpmをrpm -ivh .rpm --force--nodepsに変更します。

Nodepsは依存関係を無視することを意味します。Linux環境では、ソフトウェア間に多かれ少なかれ依存関係があります。これら2つの設定オプションを使用すると、これらの依存関係を無視して、インストールまたはアンインストールを強制できます。

例えば:


rpm -ivh gd-devel-2.0.35-11.el6.x86_64.rpm --force --nodeps

または、アンインストールしてみてください。

man rpmを通じて、-allmatchesでこの問題を解決できることがわかりました。

例えば:

# rpm -e --allmatches --nodeps gd*

sargコマンドを実行すると、エラーが報告されます

# sarg
SARG: Unknown sort order "BYTES" for parameter "topuser_sort_field"

解決:

sarg.conf構成ファイルを編集し、topuser_sort_fieldのBYTESを削除して、ファイルの184行目からBYTESを逆に接続します。

# vi /etc/sarg/sarg.conf 
184 topuser_sort_field connect BYTES reverse

次に、コマンドsargを実行します。

# sarg
SARG: 纪录在文件: 0, reading: 100.00%
SARG: 没有找到纪录
SARG: 结束

おすすめ

転載: blog.51cto.com/15067236/2605048