🖊️
K8s-Testing
  • 从docker入门到k8s部署
  • 设备准备
  • 安装Docker
  • 拉取镜像和运行测试
    • 入门操作测试1
    • 入门操作测试2
    • 登录docker hub并上传镜像
    • 服务器间镜像文件快速复制
    • MySQL镜像安装和测试
    • 容器网络入门操作1
    • 容器网络入门操作2
    • 创建docker network
    • Wordpress+Mysql+nginx反向代理安装
  • Docker编排模板测试
    • Docker Compose入门介绍
    • 通过docker compose安装Wordpress
    • 通过docker compose安装wordpress:5-php7.2-fpm
  • Dockerfile测试
    • Dockerfile入门
    • Dockerfile多阶段构建
  • Prometheus和Grafana的单机编排
    • 通过nginx-prometheus-exporter监控nginx指标
    • 通过Grafana展示nginx容器指标
    • 通过docker compose部署Grafana和Prometheus
  • EFK单机编排
    • Filebeat收集nginx容器日志并同步到Elastic Cloud
    • 通过docker部署Elasticsearch并定制Kibana的Dashboard
    • 通过docker compose部署EFK
  • Kubernetes基础
    • Kubernetes基础知识
    • 通过Kubeadm部署K8s集群
    • K8s基本操作命令
    • k8s滚动发布
    • 通过K8s部署wordpress:5-php7.2-fpm
    • Ingress安装
Powered by GitBook
On this page

Was this helpful?

  1. EFK单机编排

通过docker部署Elasticsearch并定制Kibana的Dashboard

目标:

使用单节点的Elasticsearch+Kibana,替代上一节使用的Elastic Cloud Service. 并使用Kibana定制一个Dashboard。

使用到的镜像:

docker pull elasticsearch:7.6.2

docker pull kibana:7.6.2

1)运行Elasticsearch单节点容器:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

其中,9200端口 是ES节点与外部通讯使用的端口,它是http协议的RESTful接口,各种CRUD操作都是走的该端口。

9300端口是ES节点之间通讯使用的端口,它是tcp协议通讯,集群间和TCPclient都走的它,jar之间就是通过tcp协议通讯。

2)运行一个新的Filebeat容器,output指定本地9200端口:

docker run -d \
  --name=filebeat \
  --user=root \
  --volume="$(pwd)/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  store/elastic/filebeat:7.6.2 filebeat -e -strict.perms=false \

  -E output.elasticsearch.hosts=["192.168.2.31:9200"]

其中filebeat.docker.yml文件沿用我们上一节默认配置即可。

3)检查一下Elasticsearch节点的运行情况:

#curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.17.0.3           19          97   0    0.04    0.16     0.08 dilm      *      628769d8630c

4)启动Kibana容器:

docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.6.2

--link参数后面是Elastisearch节点的容器名或ID。

5)设置Kibana的仪表板

5-1)访问宿主机上的kibana(http://宿主机ip:5601),首次访问的话,选择INDEX PATTERN为filebeat-7.6.2-{日期}-000001,然后切换到logs页面下,即可获得nginx日志

5-2)然后打开Visualize,创建一个基于Metrics->Count的计数器,点击Save保存为count。

5-3)再次选择Visualize,创建一个基于data table状态码排行(Buckets->Split rows, Aggregation-> Terms, Field->http.respone.status_code) 并保存为status code

5-4)再次选择Visualize,创建一个基于data table的请求来源地址排行(Buckets->Split rows, Aggregation-> Terms, Field->http.request.referrer) 并保存为referrer。

5-5)再次选择Visualize,创建一个基于Gauge的nginx访问来源地址nginx.access.remote_ip_list

5-6)选择Dashboard,Create new dashboard,然后把前面准备好的几组Visualize添加进去即可。

小技巧,如果要换成黑色主题,在Kibana的高级设置里把Dark mode打开即可。

PreviousFilebeat收集nginx容器日志并同步到Elastic CloudNext通过docker compose部署EFK

Last updated 5 years ago

Was this helpful?