搭建prometheus、grafana环境的过程这里就不再赘述,网上很多,这里只讲cassandra监控的过程。 1、导入cassandra grafana监控包, 5408监控模板可以在grafana官网上查到:https://grafana.com/grafana/dashboards/5408 2、将cassandra https://github.com/prometheus/jmx_exporter上的cassandra配置,这里面的配置跟5408这个dashboard不兼容,需要修改很多,直接用https://grafana.com /grafana/dashboards/5408里面的配置即可,为了方便使用我把文件上传到csdn文档里面(免费),有需要的自取https://download.csdn.net/download/john1337 cassandra找到cassandra相关目录,cassandra-env.sh在/etc/cassandra目录下 4、执行命令systemctl restart cassandra重启cassandra 5、
Prometheus+Grafana监控集群 1.安装Grafana 1.1下载并安装 下载地址:https://grafana.com/grafana/download 离线快速安装部署: wget https://dl.grafana.com/oss/release/grafana-6.3.3-1.x86_64.rpm sudo yum localinstall grafana -6.3.3-1.x86_64.rpm 1.2 启动grafana 安装完成后,grafana服务默认已安装,配置文件/etc/grafana/grafana.ini,如需要修改路径及端口,可在该文件中修改 上配置过数据源 登录后会提示创建 选择prometheus 配置prometheus地址 最终save&Test即可 4.3 导入仪表盘 将4.1中下载的模板导入 导入 修改名称及数据源 Import即可 5、 http://ip:9090/-/reload /** 热加载的前提是启动时加了–web.enable-lifecycle */ 问题1: 修改添加节点后vi prometheus.yml,热加载集群
Kubernetes集群:监控Kubernetes集群本身的关键指标 Kubernetes集群上部署的应用:监控部署在Kubernetes集群上的应用 1.基础设施层和中间件层的监控 其中基础设施层监控指标的拉取肯定是来在 可是我们目前的监控系统是以k8s集群外部的Prometheus为主的,grafana和告警都是使用这个外部的Prometheus,如果还需要在Kubernetes集群内部部署一个Prometheus的话一定要把它桶外部的 2.4 Kubernetes集群Grafana Dashboard 部署grafana apiVersion: v1 kind: Service metadata: name: grafana --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: grafana name: grafana : grafana/grafana:latest name: grafana imagePullPolicy: Always ports:
XML=true" # Tomcat访问账号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署情况而定 XML=true" # Tomcat访问账号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署情况而定 4、query(A,5m,now),字母A代表选择的metrics中设置的sql,也可以选择其它在metrics中设置的,但这里是单选。 5m代表从现在起往之前的五分钟,即5m之前的那个点为时间的起始点,now为时间的结束点,此外这里可以自己手动输入时间。 5、设置的预警临界点,这里手动输入,和6是同样功能,6可以手动移动,两种操作是等同的。 配置预警信息以及通知方式: ?
XML=true" # Tomcat访问账号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署情况而定 XML=true" # Tomcat访问账号密码 必须配置 username = "tomcat" password = "tomcat" timeout = "5s" # 标识Tomcat名称、根据实际项目部署情况而定 4、query(A,5m,now),字母A代表选择的metrics中设置的sql,也可以选择其它在metrics中设置的,但这里是单选。 5m代表从现在起往之前的五分钟,即5m之前的那个点为时间的起始点,now为时间的结束点,此外这里可以自己手动输入时间。 5、设置的预警临界点,这里手动输入,和6是同样功能,6可以手动移动,两种操作是等同的。 配置预警信息以及通知方式: ?
Grafana安装部署 准备镜像 [root@k8s-dns ]# docker pull grafana/grafana:7.3.3 [root@k8s-dns ]# docker tag grafana grafana-kubernetes-app grafana-cli plugins install grafana-clock-panel grafana-cli plugins install grafana-piechart-panel group_interval: 5m # 如果一个报警信息已经发送成功了,等待'repeat_interval'时间来重新发送他们 repeat_interval: 5m ='idle'}[5m]))) by (instance) > 0.85 for: 5m labels: severity: warning annotations: expr: rate(node_disk_write_time_ms[1m]) / rate(node_disk_writes_completedl[1m]) > 100 for: 5m
我们可以使用 Prometheus 来监控整个 Kubernetes 集群。 : 如果集群中有一个 ingress 控制器,请更新 grafana-ingress.yaml 文件中的域和 ingress 类,并创建 ingress 资源。 否则,你将永远不会收到有关集群状态变更和资源利用率的通知。 我们可以根据需要更改配置。 Alert Manager 配置了一个以 YAML 格式编写的配置文件,该文件定义了规则、通知路由和接收器。 下面是 Email、Slack 和 Webhook 接收器的配置示例: Email : global: resolve_timeout: 5m receivers: - name: email_config >" auth_password: "< smtp_password >" route: group_by: - job receiver: email_config group_interval: 5m
【问题表现】 某项目在UAT环境进行全链路压测的过程中,发现在grafana平台上没有数据显示; 查看coding平台上的日志,发现脚本执行时间只有1分钟左右且接口没有执行; ? ? 在组内几个大佬的帮助下,发现参数化文件的路径要修改成配置好的路径,而且还要上传到集群中才可以使用; ? ? 【复测结果】 把数据文件上传到集群后,重新构建构建集群,复测结果比较理想 ?
介绍 为什么要监视多个Kubernetes集群,主要有两个原因。在第一个使用场景中,您拥有集群,每个开发阶段(如开发、阶段化和生产)都有一个集群。 广泛采用的基于度量的开源监控和告警系统Prometheus进行监控应用程序和集群。每个集群的监测设置都非常健全和完整; 然而,对于跨集群的度量标准没有明确的做法。 第三个集群将是我们的可观测性集群,与前两个类似,Prometheus也在这里运行。 在安装了所有的helm cahrt、服务器和客户端之后,所有的Prometheus服务都可以在我们的可观察性集群中使用,现在我们有一些可以在Grafana中可视化这些指标。 要么我们在Grafana中将所有不同的Prometheus服务作为单独的数据源添加,要么我们用这些端点配置Prometheus服务。
架构类型 grafana/grafana:latest 功能性说明 Telegraf Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据 Influxdb InfluxDB 是一个开源 image: grafana/grafana:latest container_name: grafana expose: - "3000" ports: - "13000 restart: always docker-compose.yml文件可在github上下载,下载地址:https://github.com/marionxue/docker.git 启动监控集群 up -d # 启动容器 docker-compose logs -f # 查看日志 docker-compose ps # 查看启动的哪些容器 docker-compose down # 删除监控集群的所有容器 ,但是数据还持久在本地 docker-compose down -v # 删除监控集群的所有容器以及数据
中间件层:监控独立部署于Kubernetes集群之外的中间件,例如:MySQL、Redis、RabbitMQ、ElasticSearch、Nginx等。 Kubernetes集群:监控Kubernetes集群本身的关键指标 Kubernetes集群上部署的应用:监控部署在Kubernetes集群上的应用 二 Prometheus相关概念 2.1 数据模型 查看所有Kubernetes集群上的Endpoint通过服务发现的方式自动连接到了Prometheus。 ? 通过图形化界面查看内存。 ? ]# vi grafana.yaml 1 --- 2 apiVersion: v1 3 kind: Service 4 metadata: 5 name: grafana 6 4.5 配置Grafana 配置dashboard,本实验使用162号模板,此Dashboard 模板来展示 Kubernetes 集群的监控信息。 ?
简单测试 [root@h104 ~]# curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="set by h104" {"action":"set","node":{"key":"/message","value":"set by h104","modifiedIndex":11,"createdIndex":11},"prevNode":{"key":"/message","value":"abc","modifiedIndex":10,"
拷贝目录 [root@h101 zk]# rsync -av zookeeper-3.4.6-real root@192.168.100.102:/root/zk/zookeeper-3.4.6-real/ root@192.168.100.102's password: sending incremental file list created directory /root/zk/zookeeper-3.4.6-real zookeeper-3.4.6-real/ zookeeper-3.4.6-r
脱离集群 可以使用 Ctrl-C 来平滑地退出,也可以强行Kill退出,区别是主动告知其它节点自己的离开,和被其它节点标记为失效,被发现离开 ---- 健康检查 健康检查对于避免将请求发送给运行不正常的服务是一个相当关键的机制
最近因为部门需要做下线上PHP集群业务的监控,自己就研究了一下。 开始在网上看了很多博客,都只是讲一些GRAFANA的很基本的应用,很少有完整讲讲业务应用监控的,自己研究了2天,总算测试通过了,就先写一篇文档记录下自己整理的一些东西,后面继续加深学习。 一、环境: 3台docker容器,安装centos7系统 monitor_model:安装influxDB+telegraf+grafana+nginx+php7(由于自己测试,开始就安装一台上了) php-test01 4、测试是否可以拿到php数据 curl http://127.0.0.1:88/status_model curl http://127.0.0.1:88/status_php-test01 5、 配置telegraf /etc/telegraf/telegraf.conf 配置两组php机器(urls那里是一个数组,我试了半天,汗) 6、打开grafana测试,配置好数据源 可以根据sql
grafana+promethues部署k8s集群监控 git:https://github.com/coreos/kube-prometheus/tree/release-0.4 sed -i ""
内存节点集群 内存node是将所有元数据保存在内存中的node,是以一定安全风险为代价交换性能的选择,由于不保存数据到硬盘,所以断电或重启后数据将会丢失,也正因为不必与硬盘打交道,所以速度会非常快 一般使用它来动态地扩展集群性能 (只使用RAM node的集群是脆弱的) RAM nodes keep their metadata only in memory.
multi-user.target新建一个prometheus的配置文件,并且复制到prometheus配置目录下,重启服务# my global configglobal: scrape_interval: 5s evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute. status grafana-server我们现在应该能够通过在浏览器中访问以下 URL 来访问 Grafana:http://localhost:3000。 Query: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) *这个公式查询计算过去 5 分钟内每个实例的平均 它从 100% 中减去每个 CPU 实例处于空闲状态的平均时间百分比(以 5 分钟为间隔测量),从而有效地得出平均活动 CPU 使用率。
加入集群 rabbitmqctl join_cluster rabbit@h101 [root@h102 ~]# rabbitmqctl join_cluster rabbit@h101 Clustering
【背景】 首次在coding平台上部署集群进行压测,压测完成后,grafana平台上查不到数据。 ? 【排障过程】 查看集群构建日志,没有发送请求记录 ? 脚本设置运行时间为6分钟,集群只运行了13S,期间没有请求发送记录,运行期间,没有报错记录。很明显是脚本本身有问题,而非集群数据等报错。 压测脚本需要上传到集群上,才能调用: ? 1638955613(1).png 修改csv配置的数据文件路径:(路径格式为 /jmeter/文件名) ? 4、重新构建集群,解决问题 ? 【小结】 1、理清coding平台与集群机的工作原理,才能快速定位问题。Coding平台代码仓只作为文件的中转站,集群不能直接调用数据文件。 2、沟通方法很重要。