著者: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
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: 结束