日志分析
- 日志分析
-
- AWstats
-
- 分析nginx的通路日志
- 分析tomcat的通路日志
- Splunk
-
- 服務端
- 用戶端
- 參考
日志分析
分析對象:
web的通路日志。
記錄用戶端的IP,了解其所在地;
記錄哪些資源通路次數較多,比較受歡迎;
記錄通路時間,了解網站通路的波峰和波谷;
記錄用戶端使用的浏覽器。
資訊的彙總:
可視化圖表。
關注點:
-
獨立IP:
特定的IP位址通路網站的次數。
-
獨立訪客:
通路網站的自然人。
-
頁面浏覽量 pv(page view)
網站的某個内容或消息,比較受歡迎。
日志輪滾:
清空日志:
方法:
> 檔案名
cat /dev/null > 檔案名
AWstats
在centos7部署,
分析apache或nginx的日志。
分析tomcat的日志,需要修改配置。
準備:
[[email protected] ~]# yum install -y httpd
日志檔案:
将一個有資料的日志檔案拷貝到apache的日志檔案目錄下
1. 安裝awstats
[[email protected] ~]# lftp 172.16.0.99
lftp 172.16.0.99:/tar> get awstats-7.2.tar.gz
[[email protected] ~]# tar zxf awstats-7.2.tar.gz -C /usr/local/
[[email protected] ~]# cd /usr/local/
[[email protected] /usr/local]# ls
[[email protected] /usr/local]# mv awstats-7.2/ awstats # 改名
2. 配置awstats
[[email protected] /usr/local]# chown -R apache:apache awstats/ 給awstats設定權限
[[email protected] /usr/local/awstats/tools]# chmod +x *.pl # 給tools目錄下所有perl檔案添加執行權限
[[email protected] /usr/local/awstats/wwwroot/cgi-bin]# chmod +x *.pl # 給cgi-bin目錄下所有perl檔案添加執行權限
運作向導檔案,生成awstats的配置檔案:
[[email protected] /usr/local/awstats/tools]# ./awstats_configure.pl
> /etc/httpd/conf/httpd.conf
file (required if first install) [y/N] ? y
> awstats # ----> 這個名字設定好,重要.
[[email protected] /etc/awstats]# ls
awstats.awstats.conf
[[email protected] /etc/awstats]# vim awstats.awstats.conf
51 LogFile="/var/log/httpd/access_log"
被分析的日志的路徑
204 DirData="/usr/local/awstats/data"
資料庫檔案的路徑
[[email protected] ~]# mkdir /usr/local/awstats/data # 存放資料的位置
[[email protected] ~]# chown apache:apache /usr/local/awstats/data # 設定權限
3. 配置apache
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
order allow,deny
allow from all
Require all granted ----> 添加這行 全部準許
</Directory>
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl enable httpd
4. 生成資料庫檔案
[[email protected] ~]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=awstats -update
[[email protected] /usr/local/awstats/data]# ls
awstats112019.awstats.txt
浏覽器通路:
http://172.16.0.30/awstats/awstats.pl?config=awstats
分析nginx的通路日志
nginx的通路日志格式跟apache一樣,不需要其它設定
[[email protected] /etc/awstats]# vim awstats.awstats.conf
LogFile="/log/nginx/access.log"
[[email protected] ~]# mkdir -p /log/nginx
為了增加IO,可以使用raid0(多塊硬碟)挂載到/log
分析tomcat的通路日志
tomcat的日志格式比較特殊,為了準備識别需要修改配置檔案格式
[[email protected] /etc/awstats]# vim awstats.awstats.conf
51 LogFile="/log/tomcat/access_log"
123 LogFormat=1
124 LogFormat = "%host %other %logname %time1 %methodurl %code"
[[email protected] /log]# mkdir tomcat
[[email protected] /opt/apache-tomcat-8.0.50/logs]# scp localhost_access_log.2019-12-03.txt 172.16.0.30:/log/tomcat/access_log
[[email protected] /log]# cd tomcat/
[[email protected] /log/tomcat]# ls
access_log
# 删除舊的日志檔案,保留需要分析的日志.然後再次加載
[[email protected] /usr/local/awstats/data]# rm -f awstats122019.awstats.txt
[[email protected] /usr/local/awstats/data]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=awstats -update
Splunk
服務端
[[email protected] ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd splunk/
lftp 172.16.0.99:/splunk> get splunk-5.0.2-149561-linux-2.6-x86_64.rpm
[[email protected] ~]# rpm -ivh splunk-5.0.2-149561-linux-2.6-x86_64.rpm
-------------------------------------------------------------------------
Splunk has been installed in:
/opt/splunk
安裝路徑
To start Splunk, run the command:
/opt/splunk/bin/splunk start
啟動方式
To use the Splunk Web interface, point your browser to:
http://splunk:8000
通路方式
Complete documentation is at http://docs.splunk.com/Documentation/Splunk
幫助
-------------------------------------------------------------------------
[[email protected] ~]# /opt/splunk/bin/splunk start
通路測試:
http://splunk-ip:8000
用戶端
接收遠端節點的日志:
splunk 172.16.0.30
tomcat 172.16.0.121
安裝splunkforwarder
[[email protected] ~]# lftp 172.16.0.99
lftp 172.16.0.99:~> cd splunk/
lftp 172.16.0.99:/splunk> get splunkforwarder-5.0.2-149561-linux-2.6-x86_64.rpm
[[email protected] ~]# rpm -ivh splunkforwarder-5.0.2-149561-linux-2.6-x86_64.rpm
-------------------------------------------------------------------------
Splunk has been installed in:
/opt/splunkforwarder
To start Splunk, run the command:
/opt/splunkforwarder/bin/splunk start
# 啟動
[[email protected] /opt/splunkforwarder]# ./bin/splunk start
#添加splunk服務端ip (用戶端指向服務端)
[[email protected] /opt/splunkforwarder]# ./bin/splunk add forward-server 172.16.0.30:9997
Splunk username: admin ---> 使用者名
Password: changeme ---> 密碼
Added forwarding to: 172.16.0.30:9997. ---> 服務端位址
配置接收日志的IP和端口
[[email protected] /opt/splunkforwarder/etc/system/local]# ls
inputs.conf outputs.conf README server.conf
[[email protected] /opt/splunkforwarder/etc/system/local]# vim outputs.conf
這個檔案不需要改
[[email protected] /opt/splunkforwarder/etc/system/local]# vim inputs.conf
[default]
host = zagent-tomcat
[monitor:///var/log/httpd]
##日志的路徑
sourcetype = access_common
##日志的格式類型
配置apache:
[[email protected] ~]# yum install -y httpd
[[email protected] ~]# echo 172.16.0.121 > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
通路,刷出通路日志。
重新開機:
[[email protected] ~]# /opt/splunkforwarder/bin/splunk restart
參考
日志合并腳本★
#!/bin/bash
# 合并上一周的日志檔案
logdir="/log/nginx"
filename=“access.log-”
logfile="${logdir}/all_access.log"
$logfile
for i in
seq 7 -1 1
do
cat l o g d i r / {logdir}/ logdir/{filename}
date -d "$i day ago" "+%Y%m%d"
>> $logfile
done