Python Tech

用rsyslog处理日志

之前是用mysql数据库来保存用户的访问日志,现在已经超过2亿了,速度非常慢,还分了三张表,要换一种记录日志的方式。现在暂时没有时间做数据挖掘,要做的只是把日志先存起来,所以直接用linux自带的rsyslog来做。用户访问时,以UDP的方式,将访问信息封装成JSON发到rsyslog的端口,rsyslog会以文本的方式直接记录下来。以后就可以用syslog-ng之类的工具写到mongo或其他数据库。 修改配置文件 新建一个配置文件: $ sudo vi /etc/rsyslog.d/00-dmyz.conf 默认的日志格式是日期:主机:信息(datetime, host, msg),现在只需要保存msg,host和datetime之类都写在的msg里,以日期作为文件名来存放日志:

然后修改 /etc/rsyslog.conf 打开UDP端口用来接收日志:

写入数据 python提供了socket,可以先用以下列方式测试写入是否正常: [crayon-5bc603bc8578f0 …

Continue Reading