简介
- Fluentd是一个开源的日志收集器
- Elasticsearch是一个基于restfulAPI的全文检索开源搜索引擎
本文使用fluntd与django对接,然后再将日志转发到elasticsearch,平台为centos7
Django部分
利用fluentd为用户开发的fluent-logger的插件,可以轻松的将日志收集起来,在开始之前需要安装一下这个模块python3 -m pip install fluent-logger
修改django的settings
Logging = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'fluent_formatter': {
'()': 'fluent.handler.FluentRecordFormatter', # fluent模块的日志格式化类
'format': {
'level': '%(levelname)s',
'module': '%(name)s',
'message': '%(message)s',
'time': '%(asctime)s',
'file': '%(filename)s',
'line': '%(lineno)d'},
},
'datefmt': '%Y-%m-%d %H:%M:%S',
}
},
'hanlders': {
'fluent_handler': {
'level': 'DEBUG',
'class': 'fluent.handler.FluentHandler', # fluent模块的日志处理类
'formatter': 'fluent_formatter',
'tag': 'django.debug', # 给收集到的日志命名,后面消息路由需要用到这个标签
'host': 'localhost', # fluentd地址
'port': 24224 # fluentd需要开启一个接受日志的source
}
},
'loggers': {
'': { # 根消息记录器
'handlers': ['fluent_handler'],
'level': 'DEBUG',
}
}
}
fluentd配置
fluentd需要配置一个source做日志的接收端,然后还需要安装一个输出日志到elasticsearch的插件td-agent-gem install fluent-plugin-elasticsearch
<source>
type forward
port 24224
</source>
<match django.log> # 消息路由匹配tag为django.log的日志源,
@type elasticsearch # output类型为elasticsearch
host 127.0.0.1 # elasticsearch的ip地址
port 9200 # 端口
index_name fluentd-django # 设置索引值
type_name fluentd
</match>
配置完成后启动服务器td-agent
elasticsearch
elasticsearch不需要过多的配置可以直接启动,./elasticsearch
, 启动成功后netstat -tlnp
能够看到一个9200的端口开放就代表启动成功,等fluentd往elasticsearch开始写日志的时候,不出意外能够看到类似这么一条消息[fluentd-django/xxxxxxxxxxxxx] create_mapping [fluentd]
# 查询index索引
curl -XGET 'localhost:9200/_cat/indices?v'
# 查询django日志字段信息
curl -XGET 'localhost:9200/fluentd-django?pretty'
# 查询数据 从第100条开始查询1条
curl -XGET 'localhost:9200/fluentd-django/_search/?pretty&from=100&size=1'
很好的博客,赞赞。
迎春花一开,引得百花竞放,梅花开,杏花开,桃花开,看的人眼花,花多的你都叫不上名字,番正都是花,看起来很好看,很映人的眼,很牵动人的心,能激发人多情,能触动人去联想,给人感觉是北京成了花的海洋,花的世界,花的天下,花的花境。冬天的护城河畔,虽然没有花,但是一河青冰也装饰的护城河银装素裹,玉带环绕,更是富有生活的特写。
博客大好,让人忘不了!