根据关键词文章采集系统(关键没成品可分享的标题很高端的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 上。这是小恶魔写的。我把它分叉并稍微改变了它。你可以试试看。

  地址:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线