Kubernetes fluentd+elasticsearch+kibana
前提:dns服务,k8s集群
下载kubernetes,并解压
https://github.com/kubernetes/kubernetes/releases tar zxvf kubernetes.tar.gz cd kubernetes/cluster/addons/fluentd-elasticsearch
部署elasticsearch
[root@k8s_master fluentd]# cat Elasticsearch-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: elasticsearch-logging-v1 namespace: kube-system labels: k8s-app: elasticsearch-logging version: v1 kubernetes.io/cluster-service: "true" spec: replicas: selector: k8s-app: elasticsearch-logging version: v1 template: metadata: labels: k8s-app: elasticsearch-logging version: v1 kubernetes.io/cluster-service: "true" spec: containers: - image: elasticsearch name: elasticsearch-logging resources: # need more cpu upon initialization, therefore burstable class limits: cpu: 1000m requests: cpu: 500m ports: - containerPort: name: db protocol: TCP - containerPort: name: transport protocol: TCP volumeMounts: - name: es-persistent-storage mountPath: /data volumes: - name: es-persistent-storage emptyDir: {}
[root@k8s_master fluentd]# cat Elasticsearch-svc.yaml apiVersion: v1 kind: Service metadata: name: elasticsearch-logging namespace: kube-system labels: k8s-app: elasticsearch-logging kubernetes.io/cluster-service: "true" kubernetes.io/name: "Elasticsearch" spec: ports: - port: protocol: TCP targetPort: db selector: k8s-app: elasticsearch-logging
部署kibana
[root@k8s_master fluntd]# cat kibana-rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: kibana-logging-v1 namespace: kube-system labels: k8s-app: kibana-logging version: v1 kubernetes.io/cluster-service: "true" spec: replicas: selector: k8s-app: kibana-logging version: v1 template: metadata: labels: k8s-app: kibana-logging version: v1 kubernetes.io/cluster-service: "true" spec: containers: - name: kibana-logging image: kibana resources: # keep request = limit to keep this container in guaranteed class limits: cpu: 900m requests: cpu: 500m env: - name: "ELASTICSEARCH_URL" value: "http://elasticsearch-logging:9200" ports: - containerPort: name: ui protocol: TCP [root@k8s_master fluntd]# cat kibana-svc.yaml apiVersion: v1 kind: Service metadata: name: kibana-logging namespace: kube-system labels: name: kibana-logging kubernetes.io/cluster-service: "true" kubernetes.io/name: "Kibana" spec: ports: - port: protocol: TCP targetPort: ui nodePort: type: NodePort selector: k8s-app: kibana-logging
部署fluentd
[root@k8s_master fluntd]# cat fluentd-pod.yaml apiVersion: v1 kind: Pod metadata: name: fluentd-elasticsearch namespace: kube-system spec: containers: - name: fluentd-elasticsearch image: registry.cn-hangzhou.aliyuncs.com/kb_containers/fluentd-elasticsearch:1.20 imagePullPolicy: IfNotPresent resources: limits: memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: varlog mountPath: /var/log - name: varlibdockercontainers mountPath: /var/lib/docker/containers readOnly: true terminationGracePeriodSeconds: volumes: - name: varlog hostPath: path: /var/log - name: varlibdockercontainers hostPath: path: /var/lib/docker/containers
上述全部创建成功以后(如果不成功,使用kubectl describe/logs 命令组合使用查看相关event和logs看结构即可),检查相关资源
kubectl get pods --namespace=kube-system kubectl get rc --namespace=kube-system kubectl get service --namespace=kube-system kubectl get endpoints --namespace=kube-system kubectl cluster-info #查看kibana和elasticsearch的连接信息
查看elasticsearch是否有索引
api/v1/proxy/namespaces/kube-system/services/elasticsearch-logging/_cat/indices?v #查看是否有索引信息,如果没有,可能是没有日志信息
本例使用fluentd收集容器相关信息,日志存储路径为/var/log/containers目录下以.log结尾的文件,如果没有,则需要查看docker相关配置文件,如下
[root@k8s_node1 containers]# cat /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs #OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false' #默认是将容器日志写到/var/log/message OPTIONS='--selinux-enabled --log-driver=json-file --signature-verification=false' #需要修改为 json-file写到Container目录下 if [ -z "${DOCKER_CERT_PATH}" ]; then DOCKER_CERT_PATH=/etc/docker fi # Do not add registries in this file anymore. Use /etc/containers/registries.conf # from the atomic-registries package. # # docker-latest daemon can be used by starting the docker-latest unitfile. # To use docker-latest client, uncomment below lines #DOCKERBINARY=/usr/bin/docker-latest #DOCKERDBINARY=/usr/bin/dockerd-latest #DOCKER_CONTAINERD_BINARY=/usr/bin/docker-containerd-latest #DOCKER_CONTAINERD_SHIM_BINARY=/usr/bin/docker-containerd-shim-latest
重启docker服务即可
systemctl daemon-reload systemctl restart docker
Kubernetes fluentd+elasticsearch+kibana的更多相关文章
- kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统
一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...
- Kubernetes Fluentd+Elasticsearch+Kibana统一日志管理平台搭建的填坑指南
在初步完成Kubernetes集群架构的建立后,通过搭建一些监控组件,我们已经能够实现 图形化的监控每个node,pod的状态信息和资源情况 通过scale进行replicateSet的扩展和伸缩 通 ...
- elasticsearch+kibana+fluentd 日志搜集集群搭建
使用fluentd来搜集Nginx日志,准备3台服务器,列表如下 node1 elasticsearch/kibana/td-agent node2 td-agent/nginx node3 td-a ...
- 使用logstash+elasticsearch+kibana快速搭建日志平台
日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: * 根据关键字查询日志详情 * 监控系统的运行状况 * 统计分析,比如接口的调用次数.执行时间.成功 ...
- logstash+elasticsearch+kibana快速搭建日志平台
使用logstash+elasticsearch+kibana快速搭建日志平台 日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日 ...
- 【转载】使用logstash+elasticsearch+kibana快速搭建日志平台
原文链接:http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html 日志的分析和监控在系统开发中占非常重要的地 ...
- Helm3 安装 ElasticSearch & Kibana 7.x 版本
文章转载自:http://www.mydlq.club/article/13/ 系统环境: helm 版本:v3.2.1 Kubernetes 版本:1.18.3 ElasticSearch Char ...
- 安装logstash,elasticsearch,kibana三件套
logstash,elasticsearch,kibana三件套 elk是指logstash,elasticsearch,kibana三件套,这三件套可以组成日志分析和监控工具 注意: 关于安装文档, ...
- lagstash + elasticsearch + kibana 3 + kafka 日志管理系统部署 02
因公司数据安全和分析的需要,故调研了一下 GlusterFS + lagstash + elasticsearch + kibana 3 + redis 整合在一起的日志管理应用: 安装,配置过程,使 ...
随机推荐
- 如何从GitHub下载csv文件
当打开存.csv文件的页面时,不用直接点击页面的Download,这样会使csv文件直接用浏览器打开. 要点击Raw按钮,鼠标右键,文件另存为,可以直接把csv文件下载到本地.
- GlusterFS群集存储项目
最小化安装的centos7.5 内存大于1GB 关闭selinux,防火墙端口放行(port:24007,111)(测试建议关闭firewalld) 一.环境部署 所有软件包离线安装,原因是yum安装 ...
- Asp.Net WebAPI配置接口返回数据类型为Json格式
Asp.Net WebAPI配置接口返回数据类型为Json格式 一.默认情况下WebApi 对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式 例如:从浏览器直接输入地址,或者默认的XM ...
- kali权限提升之配置不当提权与WCE
kali权限提升之配置不当提权与WCE 1.利用配置不当提权 2.WCE 3.其他提权 一.利用配置不当提权 与漏洞提权相比更常用的方法 在大部分企业环境下,会有相应的补丁更新策略,因此难以通过相应漏 ...
- 当锚点遇到fixed
问题:页面内容导航fixed+锚点错位 solution: 锚点定位跟外边距没有关系. 我们使用内边距padding-top=fixed导航高度来使锚点可以精准定位: 此时新的问题产生了,内边距的存在 ...
- Surging微服务的注意事项
做个记录 1.Service的方法必须是异步方法 这个是同事发现的,非异步方法Swagger会用不了 2.仓储层不能用接口 这个是自己做的,根据同事的例子,本来好好的,想着在仓储层给加个接口,然后用接 ...
- $.each()、$.map()区别浅谈
遍历应该是各种语言中常会用到的操作了,实现的方法也很多,例如使用for.while等循环语句就可以很轻松的做到对数组或对象的遍历,今天想讲的不是它们,而是简单方便的遍历方法. 大致的整理了一下,经常用 ...
- 去掉所有的html标签,得到HTML标签中的所有内容
text——含有HTML标签的字符串 var text1=text.replace(/<\/?.+?>/g,""); text=text1.replace(/ /g,& ...
- 深入学习:Windows下Git新手教程(上)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/huangyabin001/article/details/35557231 一,安装Git: 1.1 ...
- C# .NET 0命令行安装Windows服务程序
设计原则:万物皆对象 背景:在我的项目中,即需要与硬件通过Socket连接通讯,又需要给App提供Wcf服务操作接口,虽然都完成了,但是却是一个控制台(虽然我很喜欢控制台,因为它简单易用),把它放到服 ...