根据关键词文章采集系统(关键没成品可分享的标题很高端的ansible部署日志收集系统)
优采云 发布时间: 2022-04-04 15:32根据关键词文章采集系统(关键没成品可分享的标题很高端的ansible部署日志收集系统)
好久没写博客了,关键还没成品分享。
标题很高端,其实就是简单的ansible+fluentd+es+kibana。
本文内容主要是关于自动化部署日志采集系统fluentd
每个工具的简要介绍:
Fluentd 是一个日志采集系统。它的特点是它的所有部分都是可定制的。您可以通过简单的配置将日志采集到不同的地方。目前开源社区贡献了以下存储插件:es、hdfs、mongodb、redis、mysql等。
ElasticSearch 是一个基于 Lucene 构建的开源、分布式、RESTful 搜索引擎。专为云计算而设计,可实现实时搜索,稳定可靠,速度快,安装使用方便。支持使用基于 HTTP 的 JSON 进行数据索引。
Kibana 是 Logstash 和 ElasticSearch 的日志分析 Web 界面。您可以使用它来高效地搜索、可视化和分析日志。
Ansible 是一个模型驱动的配置管理器,支持多节点发布和远程任务执行。默认情况下,SSH 用于远程连接。无需在被管节点上安装额外的软件,并且可以使用各种编程语言进行扩展。
架构图如下(画的不好请见谅):
过程如下:
它不断地“跟踪”访问日志文件。
它将传入的日志条目解析为有意义的字段(例如 ip、路径等)并缓冲它们。
它定期将缓冲的数据写入es。
4. 通过 Kibana 进行展示、搜索、查看等操作;
---------------------
接下来简单说一下td-agent.conf的设置:详细的语法还是从fluentd的官方文档看还是比较清楚的,这里就不解释了。
1. 采集服务器端本地日志
type tail
format syslog
path /var/log/messages
pos_file /var/log/td-agent/messages.pos
tag system.nginx.message
index_name adminpack
type_name nginx
type elasticsearch
include_tag_key true
tag_key @log_name
host es-server
port 9200
logstash_format true
flush_interval 5s
简单来说就是一个source源文件,对应一个match storage
2. 采集远程客户端客户端服务器日志
首先,服务器服务器必须打开一个接收端口
以及对应的匹配,让你知道保存在哪里
index_name adminpack
type_name nginx
type elasticsearch
include_tag_key true
tag_key @log_name
host es-server
port 9200
logstash_format true
flush_interval 5s
然后client客户端设置forward,同样是设置source源文件
下面是一个典型的客户端配置文件
type tail
format apache2
path /var/log/nginx/access.log
pos_file /var/log/td-agent/nginx.access.pos
tag mysql.nginx.access
type tail
format syslog
path /var/log/messages
pos_file /var/log/td-agent/messages.pos
tag system.nginx.message
# output type
type forward
send_timeout 10s
recover_wait 5s
heartbeat_interval 1s
phi_threshold 8
hard_timeout 10s
# primary host
name collector
host 192.168.200.216
port 24224
weight 60
# Failed
type file
path /var/log/fluent/forware-failed
# Buffer Parameters
buffer_type memory
flush_interval 3s
就是这样,简单灵活
最后看kibana的效果图
我们之前用的是fluentd+mongodb的形式,已经上线快一年了,效果不错。这个比较适合二次开发,非常好。fluentd有一个采集Mysql慢日志的插件,这个很好,很容易找到,结合我们的监控系统进行分析。
那么为什么不使用更常见的 logstash+es+kibana 类呢?
主要原因是在线选择流畅。一旦我改变了一切,人们都懒得改变它,我对fluentd很满意,不想改变它。
这个项目在 github 上。这是小恶魔写的。我把它分叉并稍微改变了它。你可以试试看。
地址: