提交 e2e64e89 编写于 作者: 阳明的博客's avatar 阳明的博客

[update] 更新部分文档说明

上级 b0e5539d
......@@ -54,11 +54,6 @@
* [PVC](docs/34.PVC.md)
* [StorageClass](docs/35.StorageClass.md)
### CI/CD:
* [动态 Jenkins Slave](docs/36.Jenkins Slave.md)
* [Jenkins Pipeline 部署 Kubernetes 应用](docs/37.Jenkins Pipeline.md)
* [Jenkins BlueOcean](docs/38.Jenkins BlueOcean.md)
### 服务发现
* [kubedns](docs/39.kubedns.md)
* [ingress 安装配置](docs/40.ingress.md)
......@@ -94,4 +89,11 @@
### 日志收集
* [日志收集架构](docs/61.日志收集架构.md)
* [搭建 EFK 日志系统](docs/62.搭建 EFK 日志系统.md)
\ No newline at end of file
* [搭建 EFK 日志系统](docs/62.搭建 EFK 日志系统.md)
### CI/CD:
* [动态 Jenkins Slave](docs/36.Jenkins Slave.md)
* [Jenkins Pipeline 部署 Kubernetes 应用](docs/37.Jenkins Pipeline.md)
* [Jenkins BlueOcean](docs/38.Jenkins BlueOcean.md)
* [Harbor](docs/63.Harbor.md)
......@@ -206,20 +206,29 @@ kind: ClusterRole
metadata:
name: prometheus
rules:
- apiGroups: [""]
- apiGroups:
- ""
resources:
- nodes
- services
- endpoints
- pods
- nodes/proxy
verbs: ["get", "list", "watch"]
- apiGroups: [""]
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs: ["get"]
- nonResourceURLs: ["/metrics"] # 对非资源型 endpoint metrics 进行 get 操作
verbs: ["get"]
- nodes/metrics
verbs:
- get
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
......
......@@ -51,7 +51,7 @@ kind: Service
apiVersion: v1
metadata:
name: elasticsearch
namespace: kube-logging
namespace: logging
labels:
app: elasticsearch
spec:
......@@ -442,7 +442,7 @@ kibana NodePort 10.105.208.253 <none> 5601:31816/TCP 2
![kibana welcome](https://ws3.sinaimg.cn/large/006tNc79gy1fz9h04vmnnj316o0tktdh.jpg)
## 部署 Fluentd
## 部署 Fluentd
`Fluentd` 是一个高效的日志聚合器,是用 Ruby 编写的,并且可以很好地扩展。对于大部分企业来说,Fluentd 足够高效并且消耗的资源相对较少,另外一个工具`Fluent-bit`更轻量级,占用资源更少,但是插件相对 Fluentd 来说不够丰富,所以整体来说,Fluentd 更加成熟,使用更加广泛,所以我们这里也同样使用 Fluentd 来作为日志收集工具。
### 工作原理
......@@ -459,7 +459,7 @@ Fluentd 通过一组给定的数据源抓取日志数据,处理后(转换成
一般来说我们是通过一个配置文件来告诉 Fluentd 如何采集、处理数据的,下面简单和大家介绍下 Fluentd 的配置方法。
#### 日志源配置
比如我们这里为了收集 Kubernetes 节点上的所有容器日志,就需要做如下的日志源配置:
比如我们这里为了收集 Kubernetes 节点上的所有容器日志,就需要做如下的日志源配置:
```
<source>
......@@ -829,17 +829,17 @@ Fluentd 启动成功后,我们可以前往 Kibana 的 Dashboard 页面中,
![create index](https://ws3.sinaimg.cn/large/006tNc79gy1fz9nkcfrrrj31cf0u00y2.jpg)
在这里可以配置我们需要的 Elasticsearch 索引,前面 Fluentd 配置文件中我们采集的日志使用的是 logstash 格式,这里只需要在文本框中输入`logstash-*`即可匹配到 Elasticsearch 集群中的所有日志数据,然后点击下一步,进入以下页面:
在这里可以配置我们需要的 Elasticsearch 索引,前面 Fluentd 配置文件中我们采集的日志使用的是 logstash 格式,这里只需要在文本框中输入`logstash-*`即可匹配到 Elasticsearch 集群中的所有日志数据,然后点击下一步,进入以下页面:
![index config](https://ws2.sinaimg.cn/large/006tNc79gy1fz9noes54aj31di0u043y.jpg)
在该页面中配置使用哪个字段按时间过滤日志数据,在下拉列表中,选择`@timestamp`字段,然后点击`Create index pattern`,创建完成后,点击左侧导航菜单中的`Discover`,然后就可以看到一些直方图和最近采集到的日志数据了:
在该页面中配置使用哪个字段按时间过滤日志数据,在下拉列表中,选择`@timestamp`字段,然后点击`Create index pattern`,创建完成后,点击左侧导航菜单中的`Discover`,然后就可以看到一些直方图和最近采集到的日志数据了:
![log data](https://ws4.sinaimg.cn/large/006tNc79gy1fz9ntqiplvj31df0u04bf.jpg)
### 测试
现在我们来将上一节课的计数器应用部署到集群中,并在 Kibana 中来查找该日志数据。
现在我们来将上一节课的计数器应用部署到集群中,并在 Kibana 中来查找该日志数据。
新建 counter.yaml 文件,文件内容如下:
```yaml
......@@ -860,13 +860,13 @@ spec:
$ kubectl create -f counter.yaml
```
Pod 创建并运行后,回到 Kibana Dashboard 页面,在上面的`Discover`页面搜索栏中输入`kubernetes.pod_name:counter`,就可以过滤 Pod 名为 counter 的日志数据:
Pod 创建并运行后,回到 Kibana Dashboard 页面,在上面的`Discover`页面搜索栏中输入`kubernetes.pod_name:counter`,就可以过滤 Pod 名为 counter 的日志数据:
![counter log data](https://ws4.sinaimg.cn/large/006tNc79gy1fz9o3c5ds8j31df0u0qg5.jpg)
我们也可以通过其他元数据来过滤日志数据,比如
您可以单击任何日志条目以查看其他元数据,如容器名称,Kubernetes 节点,命名空间等。
到这里,我们就在 Kubernetes 集群上成功部署了 EFK ,要了解如何使用 Kibana 进行日志数据分析,可以参考 Kibana 用户指南文档:[https://www.elastic.co/guide/en/kibana/current/index.html](https://www.elastic.co/guide/en/kibana/current/index.html)
到这里,我们就在 Kubernetes 集群上成功部署了 EFK ,要了解如何使用 Kibana 进行日志数据分析,可以参考 Kibana 用户指南文档:[https://www.elastic.co/guide/en/kibana/current/index.html](https://www.elastic.co/guide/en/kibana/current/index.html)
当然对于在生产环境上使用 Elaticsearch 或者 Fluentd,还需要结合实际的环境做一系列的优化工作,本文中涉及到的资源清单文件都可以在[]()找到。
当然对于在生产环境上使用 Elaticsearch 或者 Fluentd,还需要结合实际的环境做一系列的优化工作,本文中涉及到的资源清单文件都可以在[https://github.com/cnych/kubernetes-learning/tree/master/efkdemo](https://github.com/cnych/kubernetes-learning/tree/master/efkdemo)找到。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册