在分布式系统中,由于节点服务会部署多台,一旦出现线上问题需要通过日志分析定位问题就需要登录服务器一台一台进行日志检索,非常不便利,这时候就需要用到EFK日志收集工具。

在应用服务端部署Filebeat,将我们打印到日志文件中的日志发送到Logstash中,在经过Logstash的解析格式化后将日志发送到ElasticSearch中,最后通过Kibana展现出来。EFK基础版的架构如下:

安装elasticsearch之前先配置如下的系统变量

修改/etc/sysctl.conf,在最后追加如下配置

vm.max_map_count = 655360

修改/etc/security/limits.conf,增加如下配置

*                   soft    memlock          unlimited

*               hard    memlock          unlimited

*               hard    nofile           65536

*               soft    nofile           65536

修改/etc/security/limits.d/20-nproc.conf,增加如下配置

*          soft    nproc     4096

root       soft    nproc     unlimited

安装配置elasticsearch

elasticsearch:7.5.1

discovery.type           single-node

宿主机创建如下目录+文件:

mkdir -p /usr/local/src/elk/elasticsearch/conf/

cd /usr/local/src/elk/elasticsearch/conf/

chmod 777 /usr/local/src/elk/elasticsearch/conf/

touch elasticsearch.yml

修改elasticsearch.yml配置文件

cluster.name: "elk-cluster"

network.host: 0.0.0.0

bootstrap.memory_lock: true

discovery.type: single-node

建立es的日志文件夹和数据文件夹,并对文件夹授权

mkdir  -p /usr/local/src/elk/elasticsearch/logs

mkdir  -p /usr/local/src/elk/elasticsearch/data

chmod  -R 777 /usr/local/src/elk/elasticsearch/logs

chmod  -R 777 /usr/local/src/elk/elasticsearch/data

添加卷:

/usr/local/src/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml

/usr/local/src/elk/elasticsearch/logs:/usr/share/elasticsearch/logs:rw

/usr/local/src/elk/elasticsearch/data:/usr/share/elasticsearch/data:rw

安装配置logstash

logstash:7.5.1

宿主机创建如下目录:

mkdir  -p /usr/local/src/elk/logstash/config

chmod  -R 777 /usr/local/src/elk/logstash/config

cd /usr/local/src/elk/logstash/config

导出logstash的配置文件到宿主机

docker cp 05c68f9e51c5:/usr/share/logstash/config /usr/local/src/elk/logstash

建立logstash数据文件夹,并对其授权

mkdir -p /usr/local/src/elk/logstash/data

chmod -R 777 /usr/local/src/elk/logstash/data

复制logstash启动文件,并对其修改

cd /usr/local/src/elk/logstash/config

cp logstash-sample.conf logstash.conf

修改logstash.conf,配置output

# Sample Logstash configuration for creating a simple

# Beats -> Logstash -> Elasticsearch pipeline.

input {

beats {

port => 5044

}

}

output {

elasticsearch {

hosts => ["http://172.31.0.207:9200"]

index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"

#user => "elastic"

#password => "changeme"

}

}

添加卷

/usr/local/src/elk/logstash/config:/usr/share/logstash/config

/usr/local/src/elk/logstash/data:/usr/share/logstash/data

logstash -f /usr/share/logstash/config/logstash.conf

安装配置kibana

宿主机创建如下目录+文件:

mkdir  -p /usr/local/src/elk/kibana/conf/

cd /usr/local/src/elk/kibana/conf/

chmod -R 777 /usr/local/src/elk/kibana/conf/

touch kibana.xml

修改kibana配置

server.name: kibana

server.host: "0"

elasticsearch.hosts: [ "http://172.31.0.207:9200" ]

xpack.monitoring.ui.container.elasticsearch.enabled: true

i18n.locale: zh-CN

设置i18n.locale: zh-CN属性后会对kibana进行汉化,这样便于操作,主要还是我英语不太好~

添加卷

/usr/local/src/elk/kibana/conf/kibana.xml:/usr/share/kibana/config/kibana.yml

启动完成后等一段时间访问kibana地址http://172.31.0.207:5601/验证是否正常访问

日志集成

在EFK基础架构中,我们需要在客户端部署Filebeat,通过Filebeat将日志收集并传到LogStash中。在LogStash中对日志进行解析后再将日志传输到ElasticSearch中,最后通过Kibana查看日志。

宿主机创建目录:

mkdir -p /usr/local/src/elk/

cd /usr/local/src/elk/

安装配置filebeat

  • 下载filebeat7.5.1            https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz
  • 将下载后的文件上传至服务器并解压
    tar -zxvf filebeat-7.5.1-linux-x86_64.tar.gz
  • 修改filebeat.yml

rancher上部署的docker容器,日志位置在/var/lib/docker/containers/containerID/目录下的*-json.log文件里,因此需要收集这个文件的内容。

filebeat.inputs:

- type: log

enabled: true

paths:

- /var/lib/docker/containers/*/*json.log

此段配置日志输入,指定日志存储路径

output.logstash:

# The Logstash hosts

hosts: ["192.168.71.198:5044"]

此段配置日志输出,指定Logstash存储路径

启动filebeat
./filebeat -e -c filebeat.yml
如果需要静默启动,则使用nohup ./filebeat -e -c filebeat.yml & 命令启动即可

Kibana操作

索引模式告诉Kibana如何访问你的数据。

附件
rancher实现EFK日志收集.docx

rancher实现EFK日志收集相关推荐

  1. Kubernetes安装EFK日志收集

    Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch.Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案. 后续我会更新使用Log-Pilot ...

  2. Kubernetes EFK 日志收集

    Kubernetes EFK 日志收集 日志收集架构 Kubernetes集群本身不提供收集日志的解决方案,目前基于ELK日志收集的方案主要有三种 在节点运行一个agent收集日志 在Pod中包含一个 ...

  3. 日志收集系统EFK安装及配置

    目的 服务器运维系统日志监控是非常重要的工作.,目前常见的有EFK日志收集系统,实际上是3个系统组成,elasticsearch +  filebeat+kibana.这三个软件在 elastic.c ...

  4. Kubernetes 基于 EFK 技术栈的日志收集实践

    之前写过一篇文章介绍了容器环境下日志管理的原理机制:从 Docker 到 Kubernetes 日志管理机制详解,文章内容偏理论,本文在该理论的支撑下具体实践 Kubernetes 下基于 EFK 技 ...

  5. 性能优越的轻量级日志收集工具,微软、亚马逊都在用!

    ELK日志收集系统大家都知道,但是还有一种日志收集系统EFK,肯定有很多朋友不知道!这里的F指的是Fluentd,它具有Logstash类似的日志收集功能,但是内存占用连Logstash的十分之一都不 ...

  6. 电商大数据日志收集系统之EFK

    背景 日志管理的挑战: 关注点很多,任何一个点都有可能引起问题 日志分散在很多机器,出了问题时,才发现日志被删了 很多运维人员是消防员,哪里有问题去哪里 集中化日志管理思路: 日志收集 -->格 ...

  7. 看不到日志_Kubernetes中常用的日志收集方案

    在kubernetes中对日志的处理方式叫做cluster-level-logging,即这个日志处理系统跟容器,Pod,Node的生命周期无关,也就是无论是容器挂了,Pod被删除了还是Node宕机了 ...

  8. 一套标准的ASP.NET Core容器化应用日志收集分析方案

    点击上方蓝字 给一个关注吧 讲故事 关注我公众号的朋友,应该知道我写了一些云原生应用日志收集和分析相关的文章,其中内容大多聚焦某个具体的组件: 超级有用的TraceId,快点用起来吧! 如何利用NLo ...

  9. 容器内应用日志收集方案

    容器化应用日志收集挑战 应用日志的收集.分析和监控是日常运维工作重要的部分,妥善地处理应用日志收集往往是应用容器化重要的一个课题. Docker处理日志的方法是通过docker engine捕捉每一个 ...

最新文章

  1. Java的jar文件安装成windows 服务
  2. 欠122亿乐视能不能“真还”?数据拆解乐视债务账单
  3. 使用JAX-RS的HTTP缓存
  4. 【GitHub】知识蒸馏从入门到精通
  5. visual c++ build tools下载地址
  6. E45: ‘readonly‘ option is set (add ! to override)
  7. jvm:ObjectMonitor源码
  8. Linux使用带时区转换的时间函数注意事项(负负得正)
  9. 5.16--java数据类型转换及杂记
  10. 物联卡中心:物联卡实名制安不安全?
  11. 利用Scrybe增强您的触摸板计算机的性能
  12. CSDN 免费视频教程
  13. 国内首个支持ASP.NET Core和Node.js的虚拟主机
  14. springCloud五大核心组件介绍
  15. 淮北职业技术学院大一计算机考试,淮北职业技术学院教务管理系统入口http://xb.hbvtc.net/jwc...
  16. 大数据分析工具作业task01:np.random总结及几种常见概率分布图形的绘制
  17. 数据分析-Excel图表
  18. Tourist Attractions
  19. 百度度秘事业部软件研发一面经验
  20. 第4节 交换机基本原理

热门文章

  1. Java StringTokenizer 类与示例
  2. 东星医疗通过注册:上半年营收2亿 苏州济峰与平安基金是股东
  3. javaScript中的鼠标事件
  4. throw new Error(‘Electron failed to install correctly, please delete node_modules/electron and try
  5. Web.config中customErrors异常信息配置
  6. 日常备忘|Adobe软件|解决 PR 或 AE 启动不了桌面弹出 Crash 文件
  7. 【吴恩达深度学习】自然语言处理---个人总结(持续更新)
  8. 分类变量、有序变量与数值变量相关性分析方法总结及 R 语言应用
  9. 基于STM32开源:磁流体蓝牙音箱(包含源码+PCB)
  10. 【高性能】Web性能压力测试JMeter、测试秒杀Red