将日志推送到s3

s3logs的Python项目详细描述


https://img.shields.io/pypi/v/s3logs.svg?style=flat-squarehttps://img.shields.io/pypi/dm/s3logs.svg?style=flat-square

按掩码从目录获取文件并将其推送到s3

安装

pip install s3logs

用法

s3logs config.conf

其中config.conf可以使用该结构:

[S3]access_key=<S3_KEY>secret_key=<S3_SECRET_KEY>host=<s3.example.com>bucket=<bucket_name>chunk_size=<bytes, default=52428800>[logs]suffix=.gzkey_suffix=.gzdirectory=/var/log/nginx/depth=30[map]example.com-access.log=example/accessexample.com-error.log=example/errormysite.me.access.log=mysite/access

当它与该配置一起使用时,脚本将获取目录/var/log/nginx/中的所有文件,只过滤那些以.gz结尾的文件,并根据map将其发送到s3。

例如,/var/log/nginx现在包含:

example.com-access.log
example.com-access.log.0.gz
example.com-access.log.1.gz
example.com-error.log
example.com-error.log.0.gz
example.com-error.log.1.gz
mysite.me.access.log
mysite.me.access.log.0.gz
mysite.me.error.log
mysite.me.error.log.0.gz

所以,如果今天是2015年12月9日,而您的主机名是node1,那么在您的s3上,bucket_name>;就是这些键:

node1/example/access/2015-12-09.gz
node1/example/access/2015-12-08.gz
node1/example/error/2015-12-09.gz
node1/example/error/2015-12-08.gz
node1/mysite/access/2015-12-09.gz

因为我们还没有解释如何映射mysite.me.error.log.0.gz—它将被跳过。

脚本还检查文件是否存在于S3中,只推那些文件,而不是。

如果文件名比<;depth>;.gz旧,参数depth将停止推送。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用JDO(DataNucleus)更新和删除数据?   数组如何在java中对具有双字节字符的字符串执行子字符串   java使用收到的经度和纬度动态更新google地图   java接口引用其实现的内部类   java如何处理JmsChannelFactoryBean错误,是否有可能使用自定义错误通道?   java“点击”网站按钮   排序JAVA:如何根据字段对列表进行排序   事件上的java设置位置不起作用   另一个类中数组中的java对象   在while和if语句中无法访问java代码   swing Java JComboBox外观   数据库Java:MVC实现   使用DOM解析java XML元数据属性   Java if语句保持循环