调查Docker日志收集方法
所有日志都会输出到标准输出和标准错误输出。
・Docker的日志驱动程序
・难以集中处理日志
・配置传输给Fluentd
如果容器在启动时Fluentd已经停止工作,容器将无法启动
更多详情请参考以下网站
关于Docker容器上的日志集中汇总的总结
Docker的日志驱动程序:各自的特点和使用场景(json-file,syslog,journald,fluentd)
目标日志
实时生成的日志是目标。
・Fluentd / fluentd-ui – Fluentd和fluentd-ui
・FluentBit – FluentBit
・Filebeat – Filebeat
・Logstash – Logstash
已经存在的日志是目标。
Embark on the journey – 乘坐 Embluk
使用Docker-compose构建Embulk、Elasticsearch和Kibana环境,并使用Fluentd的批处理版本Embulk将Apache访问日志发送到Elasticsearch。
收集日志并将其存储在Grafana Loki中,然后在Grafana中查看。
作为日志收集代理程序,以下是一些例子:
promtail
Fluentd
FluentBit
官方网站
GitHub
尝试再次使用 fluent-plugin-grafana-loki
使用 Docker 容器环境中的 Fluentd 将日志发送到 Grafana Loki
由于 Grafana Loki 进行了重大发布,因此我尝试从日志收集到仪表盘化的整个过程
通过 Loki 在 Grafana 上查看收集到的日志,进行实操指导
让我们开始使用下一代日志基础设施 Grafana Loki!
尝试在 Docker 容器的日志记录中使用 Grafana+Loki
在 Minikube 中试用 Grafana Loki
与 Prometheus 类似的日志收集工具 Grafana Loki
Loki 和 promtail 入门指南
如何通过 Fluent Bit 将日志传输至 Grafana Loki
使用 Helm 尝试 Grafana Loki
使用 Grafana Loki 进行日志记录
使用 Grafana Loki 进行 Kubelet 日志入门指南
Grafana的报警通知功能
警报引擎和规则指南
来自警报引擎的指标
警报通知
钉钉
Discord
电子邮件
谷歌聊天
Hipchat
卡夫卡
Line
微软团队
OpsGenie
Pagerduty
Prometheus Alertmanager
Pushover
Sensu
Slack
Squadcast
电报
Threema
VictorOps
Webhook
创建能够发送SNMP Trap作为通知的警报
现在还不支持。
在Grafana中设置警报通知的电子邮件
Grafana电子邮件通知配置
在Grafana邮件配置中遇到的困难
通过Grafana进行邮件通知
Slack
通过BLE获取的数据可视化(Grafana)和警报通知(Slack)的执行
在Grafana中建立了将Elasticserch中积累的服务器指标可视化和警报通知到Slack的环境(Nifcloud)
使用Prometheus+Grafana进行性能监控
通过Grafana5.2.0+在Elasticsearch中执行对数据的报警,并将通知发送到Discord。
团队
使用Prometheus并结合Grafana,将告警通知发送给Teams非常简单。
使用Webhook,通过Prometheus2和Grafana6对系统进行监视,可以使用Grafana的警报功能。
将日志收集并保存到Elasticsearch中,然后用Kibana查看。
在Elasticsearch中进行日语全文搜索。
需要添加不支持默认状态下的日语形态素解析库。
用于Elasticsearch的新分词器”Sudachi”
通过在Elasticsearch中安装kuromoji进行日本语全文检索
Elasticsearch 7.2.0 + Kuromoji + Kibana + docker-compose的安装说明
通过docker上的Filebeat nginx模块,在Kibana中显示nginx日志
此外,还可以考虑安装”ICU(国际化组件)”库来提供Unicode的国际化支持。
使用Elasticsearch的日本语设置摘要
我个人认为,我推荐第三种方法。
个人觉得,我最推荐第三种方式。
在个人看来,我推荐第三个选项。
第一种方法是使用Fluentd(或者FluentBit)结合Elasticsearch和Kibana。
在使用Docker容器运行Fluentd时,
如果想要使用Fluentd的插件,
需要安装插件并创建Docker镜像。
有关安装Elastcsearch插件并创建Docker镜像的示例,请参考fluent/fluentd。
在运行fluentd时,请注意也要考虑UDP。
关于一些不太为人所知的功能,
尝试使用td-agent(fluentd)的monitor_agent来查看Graphite + Grafana获取的信息。
通过Fluent-plugin-elasticsearch v2.8.0的支持了解到Elasticsearch 6.0以后的动向。
尝试使用docker获取fluentd的nginx访问日志。
作为Docker新手,尝试使用fluentd + elasticsearch + kibana来可视化nginx日志。
如何使用fluentd-ui将docker容器中apache2的日志传送到收集容器
尝试启动fluentd-ui
流畅/流畅的位
关于物联网和嵌入式设备的数据收集器 Fluent Bit
尝试使用 Fluent Bit
使用贫民版 GKE/Fluent Bit 进行日志收集
关于 Fluent Bit 的 Golang 插件的 Dockerfile 创建经验
在 Amazon Linux 上运行 Fluent Bit
使用 Fluent Bit 和 Elasticsearch 进行 Docker 日志记录
选项2:Filebeat +(Logstash)+ Elasticsearch + Kibana
需要进行操作确认并检查是否存在问题,以便决定是选择使用Logstash还是仅使用Filebeat进行处理是否可行。
Filebeat模块是用于在docker上使用Filebeat nginx模块将nginx日志在Kibana上展示出来,并在docker中启动Elasticsearch+logstash+kibana,它简化了日志的可视化。此外,还可以通过使用Filebeat来可视化MySQL的日志。以下是Filebeat性能调优的要点总结。
第三种方法是将方法一和方法二结合起来。
考虑案例:
– 使用Filebeat – Modules来收集Nginx、Redis、MySQL等信息
→仅支持收集MySQL的错误日志和慢查询日志
→由于错误,可能存在无法收集的情况,请查阅GitHub的问题页
例如:由于Filebeat 7.4的错误,无法收集MySQL的错误日志,将在7.5版本中修复。
根据引入时间,可以选择上一个版本或等待新版本发布后重新验证或考虑
Mysql filebeat模块[mysql.error]未找到结果
Mysql filebeat模块[mysql.error]摄取管道问题#14076
→即使收集到了,有时也可能无法在Kibana的仪表盘中显示
例如:无法在图表中显示Nginx访问日志
只能获取操作系统名称或操作系统版本中的其中一个
(Filebeat 7.4.2。使用Firefox浏览器进行确认)
→只能获取user_agent.os.name
无法获取user_agent.os.version
仪表盘设置中同时获取两个值,但无法显示图表的可能原因是,如果可以获取到这两个值,则会显示。可能存在版本获取的错误。
例)nginx(容器的时区设定为Asia/Tokyo。访问日志/错误日志)
在Kibana中,访问日志的日期以日本时间显示,
而错误日志的日期以比Kibana中快9小时的时间显示
(已在Filebeat 7.4.2中确认)。
要解决此问题,请在Filebeat的设置中添加以下内容。
请注意,如果未更改容器的时区设置,此问题将不会出现。
processors:
- drop_fields.fields: ['event.timezone']
- add_fields:
target: event
fields:
timezone: 'Asia/Tokyo'
在Fluentd中,收集没有Filebeat模块的日志。可以选择不使用Fluentd,而是采用Logstash或者Filebeat+Logstash的模式。
Elasticsearch的时区问题
警報提示
调查基于Elasticsearch数据发送警报通知的方法。
OSS 的日志管理系统 Graylog
日志收集
日志搜索
创建仪表板
基于日志的警报通知
使用Graylog进行日志管理
使用Docker构建Graylog作为日志监控工具的步骤
将Syslog数据发送到Graylog
使用fluentd-graylog
使用Fluentd和Graylog记录Bunyan JSON日志
使用Graylog和Fluentd-2管理日志
使用Graylog管理日志
Docker日志的日志轮换设置
为了防止Docker生成的日志文件将磁盘使用率达到100%,必须设置max-size和max-file参数。
配置默认的日志驱动程序。
对Docker容器的日志文件进行日志轮转
如果在Docker容器启动时将Docker容器的日志目录挂载到Docker主机的目录上
如何在docker容器中重新打开nginx日志(logrotate)
docker容器中uwsgi和nginx日志的轮转
在Dockerfile中启动Nginx并进行日志轮换
请提供URL链接
日志收集工具的比较
Kafka适合Elastic Stack的第一部分
apache-kafka – Logstash和Kafka的区别
Fluentd和Flume NG,哪个日志收集基础设施更容易使用?
请参考官方GitHub页面获取Beats的Docker Compose示例和配置文件(yaml):
elastic/beats
beats/deploy/docker/
beats/deploy/kubernetes/