背景
我个人有在维护一些网站,有时候会出现 CPU 突然占用过高的情况,或者想分析一下有没有恶意爬虫等,现有的方式就是分析 Apache 访问日志,发现非常不直观,无意间了解到阿里云到日志服务这个产品,可以实现日志的复杂条件查询和数据可视化,于是尝试了一下,发现的确方便很多,在此记录一下我在该服务与 Apache 结合使用的配置过程。
阿里云日志服务官方介绍
日志服务(Log Service,简称 LOG/原 SLS)是针对实时数据一站式服务,在阿里集团经历大量大数据场景锤炼而成。
提供日志类数据采集、消费、投递及查询分析功能,全面提升海量日志处理/分析能力,服务智能研发/运维/运营/安全等场景。
本示例环境
- Ubuntu:16
- Apache:2.4.18
我只在当前环境下进行过配置,其他环境请酌情参考。
流程
一:开通日志服务
目前计费标准
计费项 | 公有云价格 | 金融云价格 | 免费额度 |
---|---|---|---|
读写流量 | 0.18 元/GB | 0.342 元/GB | 500 MB / 月 |
索引流量 | 0.35 元/GB | 0.665 元/GB | 500 MB / 月 |
存储空间 | 0.0115 元/GB*天 | 0.01725 元/GB*天 | 500 MB / 月 |
二:创建 Project 和 日志库
此部分配置建议参考官方的 五分钟快速入门 的 步骤一,需要注意到是 Project 与服务器最好在同一个区域,这样会通过内网获取日志,速度更快,也能避免产生公网流量。
三:服务器配置
添加自定义 Apache 日志格式
本示例中 apache 安装目录是
/etc/apache2
,日志存储目录是/var/log/apache2
,读者请根据自己安装情况进行更改
Apache 日志配置参数在 /etc/apache2/apache2.conf
文件中,默认提供 combined、common 甚至更多配置格式,不建议使用,因为包含的信息不是很全面,编辑此文件新增日志格式。
1 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized |
customized 为该日志格式的名称
编辑网站配置文件 /etc/apache2/sites-available/{自己定义的网站名}.conf
本示例网站配置文件
1 | <VirtualHost *:80> |
其中 CustomLog 项配置的是网站访问日志保存的路径和文件名,可以自定义,路径后面的 customized 是/etc/apache2/apache2.conf
中配置的日志格式名,这里使用刚刚新建的日志格式 customized。保存此处配置的日志存储路径用于后续操作
配置完后重启 Apache:
1 | # /usr/sbin/apachectl restart |
四:安装阿里云 Logtail 工具
官方详细安装文档 Linux 安装教程
建议通过自动选择安装参数方式安装,安装完毕后在app_info.json
文件中查看当前服务器 ip 地址。保存该 ip 地址用于后续的机器组配置。
app_info.json
文件路径:
1 | Linux:/usr/local/ilogtail/app_info.json |
五:阿里云控制台配置 Apache 日志服务
此部分配置建议参考官方文档的 分析 Apache 日志 部分
在该教程中的操作步骤部分的第 4 步中,日志格式选择自定义,Apache 配置字段填写前文新增的自定义日志格式参数。
在该教程中的操作步骤部分的第 5 步中创建机器组的时候,需要填写的 服务器 ip 为前文中 Logtail 工具获取的 ip 地址。
创建完毕后进入日志库的 Logtail 机器组 选项检查状态,操作如图:
如果心跳 OK 说明连接成功。
六:查询日志
进入日志库,找到刚刚创建 Logstore,点击查询进入查询界面就可以看到已经获取到的日志信息,查询界面可以进行复杂条件的语句查询和可视化配置。
示例:查询用户 ip 所在省份并生成可视化图表
查询语句 * | select ip_to_province(remote_addr) as address, count(1) as count group by address order by count desc limit 10
然后选择统计图表,切换到中国地图部分,就能查看到所生成的图表。也可以将该图表添加到仪表盘,后续可以直接浏览。
具体操作请看官方文档用户指南目录下的 查询与分析 和 数据可视化 两部分。