集中化的日志管理

编辑于 2022-03-16 18:05:54 阅读 3014

把日志放到node节点的主机目录上,在到主机目录上配置rsyslog收集到专门的日志服务器。 从这个日志服务器启一个logstash或者filebeat写入es。 不建议直接从每个节点直接写入es。因为日志量大的时候可能es就会被弄死,另外这么多的filebeat也是要占用不少资源的。 如果觉得麻烦,就每个node写个文件监控。自动添加rsyslog的配置然后重启rsyslog。 这样可以保证日志不丢,还能有序插入es不会因为业务高峰把es弄死,还可以利用logstash再进行一些日志格式化的需求。 目前用这个方案,把istio的所有envoy访问日志、traefik、应用程序日志收集到es上稳定的很。现在每15分钟大概150万条记录。

流程图

log.JPG

上图包含多种架构,详见下文分解

项目日志

如php项目,每次请求都会记录多条日志,用于监控项目的运行情况

1.最简单的办法是 给你用的框架写一个日志驱动,把日志主动提交到数据收集器,比如 fluentd

常见架构

php项目日志->fluentd->elasticsearch1️⃣

php项目日志->fluentd->kafka->logstash->elasticsearch2️⃣

php.JPG

系统服务日志

如nginx, mysql, php

常见架构

system log->rsyslog->logstash->elasticsearch3️⃣

system log->filebeat->logstash->elasticsearch4️⃣

system log->filebeat->redis->logstash->elasticsearch5️⃣

system log->filebeat->kafka->logstash->elasticsearch6️⃣

# 上图未体现出来的
system log->fluent bit->logstash->elasticsearch

system log->fluent bit->redis->logstash->elasticsearch

system log->fluent bit->kafka->logstash->elasticsearch


#不推荐的,如果你们的流量低,服务器配置还可以,可以这么做
系统服务和logstash/fluentd安装在一台服务器,直接输出到elasticsearch7️⃣

WX202203171614472x.png

相关文章

http://www.cuiwei.net/p/1886813055

https://www.cnblogs.com/tanwentao/p/15749435.html

1️⃣ http://www.cuiwei.net/p/1886813055

3️⃣ http://www.cuiwei.net/p/1827808682

4️⃣ http://www.cuiwei.net/p/1119335331

5️⃣6️⃣ https://github.com/chudaozhe/grafana-dashboard-nginx-logs

7️⃣ http://www.cuiwei.net/p/1376701836

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验