前段时间,cloadeye炒的沸沸扬扬,听说邀请码还挺贵的。算求了,花了一天时间自己DIY了一个简洁版,经过测试还是能用的。下面是具体的操作方法:
一、准备工作
- 一个二级域名
- 一个VPS
二、HTTP带外数据记录
默认情况下,Apache的日志是不入库的。需要修改httpd.conf,在LogFormat位置的地方添加如下代码:
- 设置日志格式以及处理方式
1 | LogFormat "INSERT INTO apachelog (ID, dateTime, IP, URL, code, host, userAgent, size, request) VALUES ( NULL , \"%{%Y-%m-%d %H:%M:%S}t\", \"%a\", \"%U\", \"%>s\", \" %{Host}i\", \"%{User-Agent}i\", %b, %T);" sqlcomm CustomLog "| /usr/bin/mysql --user=root --password='******' --database=dns_http" sqlcomm |
- 设计数据库
- 重启服务服务器之后,即可在数据库之中查看到访问日志
三、DNS带外数据记录
3.1 设置DNS记录
为什么要这么设置?因为我只有一台VPS,上面的意思就是为ns.xssyou.com添加一条A记录;为test.xssyou.com添加一条ns记录;上面的结果就是,当我查询.test.xssyou.com的DNS记录的时候,本地DNS服务器回到ns.xssyou.com去查询
3.2 VPS搭建DNS权威服务器
安装bindDNS服务器
1
# yum -y install bind caching-nameserver
修改配置文件/etc/named.conf如下图
- 添加配置信息/etc/named.rfc1912.zone
1 | zone "test.xssyou.com" in { type master; file "test.xssyou.com.zone"; }; |
- 添加test.xssyou.com.zone文件
1 | $TTL 0 IN SOA @ ns.xssyou.com. ( 0 ; serial 0 ; refresh 0 ; retry 0 ; expire 0 ) ; minimum IN NS ns.xssyou.com. ns IN A 182.254.146.228 @ IN A 1.1.1.1 a IN A 1.1.1.2 * IN A 8.8.8.8 |
3.3 数据监控入库
此时已经能够正常获取DNS的日志了,但是此时是获取不到日志的,需要进行如下操作
- rndc status查看状态
- rndc querylog开启日志
- tail -f /var/log/messages动态查看DNS查询日志
最后,我写了一个Python脚本,动态捕获日志并入库。