日志分析
- 日志分析
-
- 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