容器技术
ubuntu使用APT安装docker并指定版本
Helm部署与使用
Helm常用命令
从Helm仓库创建应用流程示例
Helm部署与使用
K8S中部署mysql-ha高可用集群
helm启动mysql-ha
helm几个常用仓库
Kubernetes使用helm部署Mysql-Ha
k8s入门:Helm 构建 MySQL
docker批量修改tag(批量push)
k8s之yaml文件详解
将 MySQL 通过 bitpoke/mysql-operator 部署到 k8s 内部
k8s pvc扩容:pvc创建后扩容
K8S性能分析
部署Metrics Server
Kubernetes集群搭建
kubespray 部署常见问题和优化汇总
kubernetes-sigs/kubespray at release-2.15
K8S-pod配置文件详解
KubeSphere知识库
在 Kubernetes 上最小化安装 KubeSphere
卸载 KubeSphere 和 Kubernetes
KubeSphere 应用商店
修改pod中容器的时区
k8s之Pod安全策略
Harbor 登陆失败,用户名或者密码不正确。405 Not Allowed
Docker-leanote_n1
kubesphere/kubekey
Kubernetes Static Pod (静态Pod)
kubernets kube-proxy的代理 iptables和ipvs - 30岁再次出发 - 博客园
k8s生产实践之获取客户端真实IP - SSgeek - 博客园
kube-proxy ip-tables故障解决
k8s入门:Helm 构建 MySQL
docker批量修改tag(批量push)
prometheus operator 监控redis-exporter
Helm3 安装 ElasticSearch & Kibana 7.x 版本
kubernete强力删除namespace_redis删除namespace命令
EFK (Elasticsearch + Fluentd + Kibana) 日志分析系统
k8s日志收集实战(无坑)
fluentd收集k8s集群pod日志
Elasticsearch+Fluentd+Kibana 日志收集系统的搭建
TKE/EKS之configmap,secret只读挂载
K8s基于Reloader的ConfigMap/Secret热更新
使用 Reloader 实现热部署_k8s reloader
k8s使用Reloader实现更新configmap后自动重启pod
在 Kubernetes 上对 gRPC 服务器进行健康检查 | Kubernetes
Kubernetes ( k8s ) gRPC服务 健康检查 ( livenessProbe ) 与 就绪检查 ( readinessProbe )
排查kubernetes中高磁盘占用pod
helm 安装 MongoDB 集群
helm 安装 Redis 1 主 2 从 3哨兵
【k8s】使用 Reloader 实现热部署
k8s证书过期,更新后kubelet启动失败
kubeadm证书/etcd证书过期处理
三种监控 Kubernetes 集群证书过期方案
K8s 集群(kubeadm) CA 证书过期解决方案
k8s调度、污点、容忍、不可调度、排水、数据卷挂载
5分钟搞懂K8S的污点和容忍度(理论+实战)
Kubernetes进阶-8基于Istio实现微服务治理
macvlan案例配置
快速解决Dockerhub镜像站无法访问问题
info_scan开源漏洞扫描主系统部署
本文档使用 MrDoc 发布
-
+
首页
EFK (Elasticsearch + Fluentd + Kibana) 日志分析系统
> EFK 不是一个软件,而是一套解决方案。EFK 是三个开源软件的缩写,Elasticsearch,Fluentd,Kibana。其中 ELasticsearch 负责日志分析和存储,Fluentd 负责日志收集,Kibana 负责界面展示。它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案。 > 本文主要基于Fluentd实时读取日志文件的方式获取日志内容,将日志发送至Elasticsearch,并通过Kibana展示。 ``` $ docker pull elasticsearch:7.10.1 $ docker pull kibana:7.10.1 $ docker pull fluent/fluentd:v1.12-debian-armhf-1 ``` ``` $ mkdir -p elasticsearch/data kibana/data fluentd/conf $ chmod 777 elasticsearch/data kibana/data fluentd/conf ``` ``` ├── docker-compose-ek.yml ├── docker-compose-f.yml ├── elasticsearch │ └── data ├── fluentd │ ├── conf │ │ └── fluent.conf │ └── Dockerfile ├── kibana │ ├── data │ │ └── uuid │ └── kibana.yml ``` ``` $ vim /etc/sysctl.conf vm.max_map_count = 2621440 $ sysctl -p ``` ``` $ cat fluentd/conf/fluent.conf <source> @type forward port 24224 <--Fluentd 默认启动的端口> bind 0.0.0.0 </source> <source> @type tail path /usr/local/var/log/access.log <--收集的log绝对路径> tag celery.log <--TAG,标示log> refresh_interval 5 pos_file /usr/local/var/log/fluent/access-log.pos <parse> @type none </parse> </source> <match access.log> @type copy <store> @type elasticsearch host 192.168.1.11 <--Elasticearch 地址> port 22131 <--Elasticearch 端口> user elastic <--Elasticearch 用户名,可选,如果es没有配置用户密码,此处删除> password elastic <--Elasticearch 密码,可选,如果es没有配置用户密码,此处删除> logstash_format true logstash_prefix celery logstash_dateformat %Y%m%d include_tag_key true type_name access_log tag_key @log_name flush_interval 10s suppress_type_name true </store> <store> @type stdout </store> </match> // 如果多个日志文件,拷贝上面的配置即可(注:第一个<source>定义Fluentd的配置不用拷贝); ``` ``` $ vim ./kibana/kibana.yml # # ** THIS IS AN AUTO-GENERATED FILE ** # # Default Kibana configuration for docker target server.name: kibana server.host: "0" # server.basePath: "/efk" elasticsearch.hosts: [ "http://elasticsearch:9200" ] monitoring.ui.container.elasticsearch.enabled: true i18n.locale: "zh-CN" # elasticsearch.username: "kibana_system" # elasticsearch.password: "kibana_system" ``` ``` $ cat fluentd/Dockerfile FROM fluent/fluentd:v1.12-debian-armhf-1 USER root RUN ["gem", "install", "fluent-plugin-elasticsearch"] #USER fluent # 构建 docker build -f fluentd/Dockerfile -t fluentd:v1.12-debian-armhf-1.1 . ``` ``` $ cat docker-compose-f.yml version: '2' services: fluentd: image: fluentd:v1.12-debian-armhf-1.1 container_name: fluentd mem_limit: 8G volumes: - ./fluentd/conf:/fluentd/etc # Fluentd配置文件 - /usr/local/var/log:/usr/local/var/log # 收集的Log目录位置 ports: - "22130:24224" - "22130:24224/udp" networks: - monitoring networks: monitoring: driver: bridge ``` ``` $ cat docker-compose-ek.yml version: '2' services: elasticsearch: image: elasticsearch:7.10.1 container_name: elasticsearch mem_limit: 8G environment: - discovery.type=single-node - xpack.security.enabled=true volumes: - /etc/localtime:/etc/localtime - ./elasticsearch/data:/usr/share/elasticsearch/data # Elasticsearch数据目录 ports: - "22131:9200" networks: - monitoring kibana: image: kibana:7.10.1 container_name: kibana mem_limit: 4G volumes: - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml # Kibana配置文件 - ./kibana/data:/usr/share/kibana/data # Kibana数据目录 - /etc/localtime:/etc/localtime links: - "elasticsearch" depends_on: - "elasticsearch" ports: - "22132:5601" networks: - monitoring networks: monitoring: driver: bridge ``` ``` $ docker-compose -f docker-compose-f.yml up -d <--Fluentd> $ docker-compose -f docker-compose-ek.yml up -d <--elasticsearch+kibana> ``` ``` docker exec -it efk_elasticsearch_1 bash ./bin/elasticsearch-setup-passwords interactive --- Please confirm that you would like to continue [y/N]y Enter password for [elastic]: <--输入用户elastic的密码> Reenter password for [elastic]: <--再次输入定义的密码> Enter password for [apm_system]: <--输入用户apm_system的密码> Reenter password for [apm_system]: <--再次输入定义的密码> Enter password for [kibana_system]: <--输入用户kibana的密码> Reenter password for [kibana_system]: <--再次输入定义的密码> Enter password for [logstash_system]: <--输入用户logstash_system的密码> Reenter password for [logstash_system]: <--再次输入定义的密码> Enter password for [beats_system]: <--输入用户beats_system的密码> Reenter password for [beats_system]: <--再次输入定义的密码> Enter password for [remote_monitoring_user]: <--输入用户remote_monitoring_user的密码> Reenter password for [remote_monitoring_user]: <--再次输入定义的密码> Changed password for user [apm_system] Changed password for user [kibana_system] Changed password for user [logstash_system] Changed password for user [beats_system] Changed password for user [remote_monitoring_user] Changed password for user [elastic] exit ``` ``` $ vim ./fluentd/conf/fluent.conf user elastic <--此处为在elasticsearch设置的elastic用户密码> password elastic <--此处为在elasticsearch设置的elastic用户密码> ``` ``` $ vim ./kibana/kibana.yml elasticsearch.username: "kibana_system" <--此处为在elasticsearch设置的kibana_system用户密码> elasticsearch.password: "kibana_system" <--此处为在elasticsearch设置的kibana_system用户密码> ``` ``` $ docker-compose -f docker-compose-f.yml down $ docker-compose -f docker-compose-f.yml up -d $ docker-compose -f docker-compose-ek.yml down $ docker-compose -f docker-compose-ek.yml up -d ``` ``` $ vim nginx.conf location /efk/ { proxy_pass http://192.168.1.11:5601/; } // 配置kibana $ vim ./kibana/kibana.yml server.basePath: "/efk" <--/efk为url路径> ``` ``` $ docker-compose -f docker-compose-ek.yml down $ docker-compose -f docker-compose-ek.yml up -d ``` - 用户名&密码就是刚刚创建的elasticsearch用户信息:elastic / elastic    ### 填入关键词系统可以自动匹配   ### 索引管理,输入关键词可以看到刚才创建的索引  ### 主页——Kibana可视化和分析——Discover,填入关键词可以过滤日志  ### 修改elastic的密码,Kibana登录密码 ``` // curl -H "Content-Type:application/json" -XPOST -u <elastic用户名>:<elastic密码> 'http://192.168.1.11:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "<elastic新密码>" }' 示例:curl -H "Content-Type:application/json" -XPOST -u elastic:elastic 'http://192.168.1.11:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }' ```
adouk
2023年4月19日 16:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码