python网站访问日志分析_python实现apahce网站日志分析示例

本文介绍了一种使用Python和Shell脚本分析网站日志的方法,包括读取Apache access.log文件,统计不同IP的访问次数,并调用外部API获取每个IP的地理位置信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:

应用到:shell与python数据交互、数据抓取,编码转换

代码如下:

#coding:utf-8

#!/usr/bin/python

'''

程序说明:apache access.log日志分析

分析访问网站IP 来源情况

日期:2014-01-06 17:01

author:gyh9711

程序说明:应用到:shell与python数据交互、数据抓取,编码转换

'''

import os

import json

import httplib

import codecs

LogFile='/var/log/apache2/access.log'

#日志

logMess='/tmp/acc.log'

if os.path.isfile(logMess):

os.system('cp /dev/null %s'% logMess)

file=codecs.open(logMess,'w+',encoding='utf-8')

def cmd(cmd):

return os.popen(cmd).readlines()

'''

def getIp(ip):

return json.loads(os.popen("/usr/bin/curl http://ip.taobao.com/service/getIpInfo.php?ip=%s" % ip).readline())['data']

'''

conn = httplib.HTTPConnection('ip.taobao.com')

def getIpCountry(ip):

conn.request('GET','/service/getIpInfo.php?ip=%s' % ip)

r1=conn.getresponse()

if r1.status == 200:

return json.loads(r1.read())['data']

else:

return "Error"

#将access.log文件进行分析,并转为python数组

file.write(u"字段说明:ip 访问次数据 ip国家 城市的 isp号 省份 所在地区\n")

ipDb=[]

for i in cmd('''/usr/bin/awk '{print $1}' %s |sort |uniq -c''' % LogFile):

ip = i.strip().split(' ')

ipDb.append(ip)

#通过taobao 提供接口分析ip地址来源

for i in ipDb:

_tmpD=getIpCountry(i[1])

#格式说明:ip 访问次数据 ip国家 城市的 isp号 省份 所在地区

out="%s%s%s%s%s%s%s"%(i[1].ljust(20),i[0].ljust(10),_tmpD['country'].ljust(20),_tmpD['city'].ljust(16),_tmpD['isp_id'].ljust(16),_tmpD['region'].ljust(16),_tmpD['area'].ljust(16))

print out

file.write("%s\n"%out)

conn.close()

file.close()

'''

'''

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

TAG标签:网站日志分析

<think>好的,用户需要关于在Linux环境下配置Apache服务器以及解决常见问题的方法。首先,我需要根据提供的引用信息整理出步骤和解决方案。引用里提到了安装Apache的不同命令,比如Ubuntu用apt,CentOS用yum,还有配置文件的路径,以及如何修改默认网页内容。 用户可能想知道完整的配置流程,包括安装、启动服务、配置文件的位置、虚拟主机设置、日志查看等。常见问题可能涉及端口冲突、权限问题、无法访问等。我需要确保每个步骤都清晰,并且引用对应的参考资料。例如,安装部分引用[1]和[3],配置文件引用[2],修改网页内容引用[4]。 还要注意用户可能遇到的防火墙或SELinux问题,这些也是常见障碍。需要提醒用户检查这些设置,并给出相应的命令,如firewall-cmd和setenforce。此外,生成相关问题时,应该涵盖优化、虚拟主机配置、SSL证书、日志分析等方面,帮助用户进一步学习。 最后,确保回答符合格式要求,使用正确的LaTeX格式,独立公式用$$,行内用$,但在这个问题中可能用不到数学公式,所以重点放在代码块和结构上。确保引用标识正确添加,例如在提到安装步骤时引用[^1],配置文件时引用[^2]等。</think>### Apache在Linux下的配置及常见问题解决 #### 1. 安装Apache服务器 - **Ubuntu/Debian**: ```bash sudo apt update sudo apt install apache2 ``` - **CentOS/RHEL**: ```bash sudo yum install httpd ``` 安装完成后,启动并启用服务: Ubuntu/Debian: `sudo systemctl start apache2 && sudo systemctl enable apache2` CentOS/RHEL: `sudo systemctl start httpd && sudo systemctl enable httpd` [^1][^3] --- #### 2. 配置文件路径 Apache主配置文件通常位于: - **Ubuntu/Debian**: `/etc/apache2/apache2.conf` - **CentOS/RHEL**: `/etc/httpd/conf/httpd.conf` 可通过命令查找配置文件: ```bash rpm -ql httpd | grep ".conf" # CentOS/RHEL dpkg -L apache2 | grep ".conf" # Ubuntu/Debian ``` --- #### 3. 修改默认访问页面 修改默认网页内容: ```bash echo "Welcome to Apache Server" > /var/www/html/index.html # CentOS/RHEL echo "Welcome to Apache Server" > /var/www/html/index.html # Ubuntu/Debian ``` [^4] --- #### 4. 虚拟主机配置(以CentOS为例) 1. 创建虚拟主机配置文件: ```bash vi /etc/httpd/conf.d/vhost.conf ``` 2. 添加配置内容: ```apache <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/example-site ServerName example.com ErrorLog /var/log/httpd/example-error.log CustomLog /var/log/httpd/example-access.log combined </VirtualHost> ``` 3. 重启服务: ```bash systemctl restart httpd ``` --- #### 5. 常见问题解决 | 问题类型 | 解决方法 | |-----------------------|--------------------------------------------------------------------------------------------| | **端口冲突** | 检查`netstat -tulnp | grep :80`,修改`Listen 80`为其他端口 | | **权限问题** | 使用`chown -R apache:apache /var/www`设置目录权限 | | **无法访问页面** | 检查防火墙规则:`firewall-cmd --permanent --add-service=http && firewall-cmd --reload` | | **SELinux拦截** | 临时关闭:`setenforce 0`;永久关闭:修改`/etc/selinux/config`为`disabled` | | **配置文件语法错误** | 使用`apachectl configtest`验证配置文件 | --- #### 6. 日志分析 - 访问日志路径:`/var/log/httpd/access_log`(CentOS)或`/var/log/apache2/access.log`(Ubuntu) - 错误日志路径:`/var/log/httpd/error_log`(CentOS)或`/var/log/apache2/error.log`(Ubuntu) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值