K8S(15)监控实战

您所在的位置:网站首页 k8s监控docker K8S(15)监控实战

K8S(15)监控实战

2023-09-08 20:57| 来源: 网络整理| 查看: 265

K8S监控实战-ELK收集K8S内应用日志

目录K8S监控实战-ELK收集K8S内应用日志1 收集K8S日志方案1.1 传统ELk模型缺点:1.2 K8s容器日志收集模型2 制作tomcat底包2.1 准备tomcat底包2.1.1 下载tomcat82.1.2 简单配置tomcat2.2 准备docker镜像2.2.1 创建dockerfile2.2.2 准备dockerfile所需文件2.2.3 构建docker3 部署ElasticSearch3.1 安装ElasticSearch3.1.1 下载二进制包3.1.2 配置elasticsearch.yml3.2 优化其他设置3.2.1 设置jvm参数3.2.2 创建普通用户3.2.3 调整文件描述符3.2.4 调整内核参数3.3 启动ES3.3.1 启动es服务3.3.1 调整ES日志模板4 部署kafka和kafka-manager4.1 但节点安装kafka4.1.1 下载包4.1.2 修改配置4.1.3 启动kafka4.2 获取kafka-manager的docker镜像4.2.1 方法一 通过dockerfile获取4.2.2 直接下载docker镜像4.3 部署kafka-manager4.3.1 准备dp清单4.3.2 准备svc资源清单4.3.3 准备ingress资源清单4.3.4 应用资源配置清单4.3.5 解析域名4.3.6 浏览器访问5 部署filebeat5.1 制作docker镜像5.1.1 准备Dockerfile5.1.2 准备filebeat配置文件5.1.3 准备启动脚本5.1.4 构建镜像5.2 以边车模式运行POD5.2.1 准备资源配置清单5.2.2 应用资源清单5.2.3 验证6 部署logstash6.1 准备docker镜像6.1.1 下载官方镜像6.1.2 准备配置文件6.2 启动logstash6.2.1 启动测试环境的logstash6.2.2 查看es是否接收数据6.2.3 启动正式环境的logstash7 部署Kibana7.1 准备相关资源7.1.1 准备docker镜像7.1.3 准备dp资源清单7.1.4 准备svc资源清单7.1.5 准备ingress资源清单7.2 应用资源7.2.1 应用资源配置清单7.2.2 解析域名7.2.3 浏览器访问7.3 kibana的使用

1 收集K8S日志方案

K8s系统里的业务应用是高度“动态化”的,随着容器编排的进行,业务容器在不断的被创建、被摧毁、被漂移、被扩缩容…

我们需要这样一套日志收集、分析的系统:

收集 – 能够采集多种来源的日志数据(流式日志收集器) 传输 – 能够稳定的把日志数据传输到中央系统(消息队列) 存储 – 可以将日志以结构化数据的形式存储起来(搜索引擎) 分析 – 支持方便的分析、检索方法,最好有GUI管理系统(web) 警告 – 能够提供错误报告,监控机制(监控系统) 1.1 传统ELk模型缺点:

img

Logstash使用Jruby语言开发,吃资源,大量部署消耗极高 业务程序与logstash耦合过松,不利于业务迁移 日志收集与ES耦合又过紧,(Logstash)易打爆(ES)、丢数据 在容器云环境下,传统ELk模型难以完成工作 1.2 K8s容器日志收集模型

img

2 制作tomcat底包 2.1 准备tomcat底包 2.1.1 下载tomcat8 cd /opt/src/ wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.50/bin/apache-tomcat-8.5.50.tar.gz mkdir /data/dockerfile/tomcat tar xf apache-tomcat-8.5.50.tar.gz -C /data/dockerfile/tomcat cd /data/dockerfile/tomcat 2.1.2 简单配置tomcat

删除自带网页

rm -rf apache-tomcat-8.5.50/webapps/*

关闭AJP端口

tomcat]# vim apache-tomcat-8.5.50/conf/server.xml

修改日志类型

删除3manager,4host-manager的handlers

tomcat]# vim apache-tomcat-8.5.50/conf/logging.properties handlers = [1catalina.org.apache.juli.AsyncFileHandler](http://1catalina.org.apache.juli.asyncfilehandler/), [2localhost.org.apache.juli.AsyncFileHandler](http://2localhost.org.apache.juli.asyncfilehandler/), java.util.logging.ConsoleHandler

日志级别改为INFO

1catalina.org.apache.juli.AsyncFileHandler.level = INFO 2localhost.org.apache.juli.AsyncFileHandler.level = INFO java.util.logging.ConsoleHandler.level = INFO

注释所有关于3manager,4host-manager日志的配置

#3manager.org.apache.juli.AsyncFileHandler.level = FINE #3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs #3manager.org.apache.juli.AsyncFileHandler.prefix = manager. #3manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 #4host-manager.org.apache.juli.AsyncFileHandler.level = FINE #4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs #4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. #4host-manager.org.apache.juli.AsyncFileHandler.encoding = UTF-8 2.2 准备docker镜像 2.2.1 创建dockerfile cat >Dockerfile config.yml /opt/tomcat/logs/stdout.log # 日志文件 EOF 2.2.3 构建docker docker build . -t harbor.zq.com/base/tomcat:v8.5.50 docker push harbor.zq.com/base/tomcat:v8.5.50 3 部署ElasticSearch

官网 官方github地址 下载地址 部署HDSS7-12.host.com上:

3.1 安装ElasticSearch 3.1.1 下载二进制包 cd /opt/src wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.6.tar.gz tar xf elasticsearch-6.8.6.tar.gz -C /opt/ ln -s /opt/elasticsearch-6.8.6/ /opt/elasticsearch cd /opt/elasticsearch 3.1.2 配置elasticsearch.yml mkdir -p /data/elasticsearch/{data,logs} cat >config/elasticsearch.yml config/server.properties deployment.yaml


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3