容器技术
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 发布
-
+
首页
Elasticsearch+Fluentd+Kibana 日志收集系统的搭建
``` 本次安装部署是在docker环境中进行,没有安装docker的,先安装docker环境,具体也可以参考我另一篇文章: [https://blog.csdn.net/qq_31366767/article/details/120880458] ``` 1、 首先先创建好安装目录,然後在改目录下创建 docker-compse.yml 文件 ```bash version: '2' networks: es: services: elasticsearch: image: elasticsearch:7.13.4 container_name: elasticsearch restart: always volumes: - ./data:/usr/share/elasticsearch/data:Z - ./logs:/usr/share/elasticsearch/logs:Z - ./config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:Z - ./plugins:/usr/share/elasticsearch/plugins:Z ports: - 9200:9200 - 9300:9300 privileged: true environment: - bootstrap.memory_lock=true - ES_JAVA_OPTS=-Xms512m -Xmx512m - TAKE_FILE_OWNERSHIP=true - discovery.type=single-node ulimits: memlock: soft: -1 hard: -1 networks: - es ``` 2、在对应的文件目录下,创建elasticsearch.yml 文件,本文是在 当前安装目录下的 config目录里面创建。 ```bash cluster.name: "docker-cluster" network.host: 0.0.0.0 http.port: 9200 http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization xpack.security.enabled: true xpack.security.transport.ssl.enabled: true ``` 3、运行 启动命令 ```bash docker-compose up -d ``` 4、修改用户密码 4.1 进入容器 ```bash docker exec -it elasticsearch sh ``` 4.2 进入密码设置 ```bash ./bin/elasticsearch-setup-passwords -h ``` 4.3 设置密码 (自动生成模式,定义配置 输入 ./bin/elasticsearch-setup-passwords interactive ) ```bash ./bin/elasticsearch-setup-passwords auto ```  至此 密码设置完成 5、验证 在浏览器输入 http://xxxx.xxx.xxx.xxx:9200/ 输入 账号/密码  ## 二、Kibana安装配置 1、 首先先创建好安装目录,然後在改目录下创建 docker-compse.yml 文件 ```bash version: '2' networks: es: services: kibana: image: kibana:7.6.2 container_name: kibana privileged: true restart: always volumes: - ./config/kibana.yml:/usr/share/kibana/config/kibana.yml:Z ports: - 5601:5601 networks: - es ``` 2、在对应的文件目录下,创建kibana.yml 文件,本文是在 当前安装目录下的 config目录里面创建。 ```bash server.name: kibana server.host: "0.0.0.0" elasticsearch.hosts: [ "http://xxxx.xxxx.xxxx.xxx:9200" ] xpack.monitoring.ui.container.elasticsearch.enabled: true elasticsearch.username: "elastic" elasticsearch.password: "xxxxxx" i18n.locale: zh-CN ``` 3、运行 启动命令 ```bash docker-compose up -d ``` 浏览器输入网址:http://xxxx.xxxx.xxxx.xxxx:5601 输入账号密码  ## 三、Fluentd 安装配置 1、 首先先创建好安装目录,之后需要创建Dockerfile,内容如下 ```bash USER root RUN gem install elasticsearch -v 7.17.0 RUN ["gem", "install", "fluent-plugin-elasticsearch", "--no-document", "--version", "5.0.3"] USER root ``` 然后开始制作 docker的 images,我这里命名为 fluent, ```bash docker build -t fluent . ``` **值得注意的是,fluent-plugin-elasticsearch 插件的版本应该和 elasticsearch 对应,我这边使用的elasticsearch 为7.6.2 则 fluent-plugin-elasticsearch 应该在 5.0.3,版本无法对应的话,fluent 启动时 将报 无法连接至elasticsearch,如下:** ```bash "The client is unable to verify that the server is Elasticsearch. Some functionality may not be compatible if the server is running an unsupported product." ``` 2、准备 docker-compose 文件 ```bash version: '2' services: server-fluentd: image: fluentd:latest container_name: server-fluentd ports: - "24224:24224" - "24224:24224/udp" restart: always environment: - FLUENTD_CONF=fluentd.conf volumes: - ./log:/var/log - ./fluentd.conf:/fluentd/etc/fluentd.conf ``` 3、创建fluentd的配置文件fluentd.conf ```bash <source> @type forward port 24224 bind 0.0.0.0 </source> <match *.**> @type copy <store> @type elasticsearch host localhost port 9200 logstash_format true </store> <store> @type stdout </store> </match> ``` 4、运行 启动命令 ```bash docker-compose up -d ``` 因为 我没有给fluentd 指定 index 的名称,所以当它成功连接Elasticsearch 时 会创建一个默认的index,名为 logstash-\* 此时,你可是在 Elasticsearch 使用索引查询命令查看 ```bash curl http://localhost:9200/_cat/indices?v ```  看到索引创建以后,则代表连接成功。接下来 我们使用 EFK 来采集nginx的容器日志。 ## 四、 EFK 来采集nginx的容器日志 1、创建nginx 的docker-compose 文件 ```bash version: '3' services: nginx: image: nginx:latest ports: - "80:80" - "443:443" container_name: nginx logging: driver: fluentd options: fluentd-address: localhost:24224 fluentd-async-connect: 'true' mode: non-blocking max-buffer-size: 4m tag: nginx ``` 在这里 使用 fluentd nginx 容器所产生的日志将直接推送至 fluentd 2、运行 启动命令 ```bash docker-compose up -d ``` 3、在kibana 配置日志展示    至此 简单的EFK 日志查看就已经完成,后续将在项目中实践。
adouk
2023年4月21日 11:15
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码