elk:elasticsearch kibana l是啥鬼??logstash
kubenetes上的日志收集模式:https://www.jianshu.com/p/72f34de4dd35
一共有三种收集模式:一个是DaemonSet模式,一个是sidecar模式,一个是自带的kubctl log的模式。各有优势。。
sidecar就是把日志收集和处理功能从app中拆分出来,就像摩托车的边车或者车斗。用的时候上,不用的时候拆掉。
一个可落地的日志处理系统?ELK or 其他????
ELK的模式?
问题:各种工具在日志系统中起到什么作用???
日志处理的架构:
即 收集日志(flume,fluentd,logstash这些)+消息队列(kafka)+日志处理(elastic search+kibana,splunk)+其他日志处理(比如向其他服务提供log数据等),再加上日志存储(NFS(网络文件系统))
几大处理方案:
1.flume+kafka+splunk
2.elk+kafka
最佳实践经验:数据收集和转化的环节,建议使用flume+kafka的配合,为啥?因为flume可以以数据流向haddop发送,kafka的缓存比flume的专业,且有自己的分布式存储,各有所长。
对比:
https://blog.51cto.com/splunkchina/1948105
https://blog.csdn.net/gyshun/article/details/79710534
首先要在服务器上收集日志,然后把日志传送给需要的服务,比如用户行为分析服务,比如日志v存储服务,比如日志分析等。基于这些服务,还要考虑中间会不会阻塞导致的数据丢失,于是便有了消息队列(kafka,redis等)
splunk:一个和elk 作为同款PK的日志处理平台,https://blog.51cto.com/splunkchina/1948105
kafka:apache公司的,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,服务器端的日志收集工具(比如logstash或者flume等)要配置kafka,接收端也要配置kafka,相当于一个中转站,接受来自于收集工具的日志,缓存并发给下游,这么做的意义?它是一个流处理平台
logstash:装于服务器上,监控,过滤并收集日志(同时在服务器上安装logstash agent并在elk机器上安装logstash index接收)
elastic search:对搜索的日志处理,存储
kibana:日志显示及图形化处理
flume:apache公司的,装于服务器,用于日志收集,外发,功能同logstash
fluentd: 同flume,但不是apache的
elastic search
logging driver
file base????
Prometheus
syslog 开源,可以把各服务