当前位置: 首页 > news >正文

dw php网站开发企业搭建自己的网站

dw php网站开发,企业搭建自己的网站,广州家具网站建设,免费网站百度收录一、设计背景 1.1项目简介 本项目旨在创建一个全面的容器化应用程序监控解决方案#xff0c;基于Prometheus监控Docker平台上的各种服务。在当今的软件开发环境中#xff0c;容器化技术已成为一种关键的工具#xff0c;使应用程序能够更快速、可靠地交付和扩展。然而…一、设计背景 1.1项目简介 本项目旨在创建一个全面的容器化应用程序监控解决方案基于Prometheus监控Docker平台上的各种服务。在当今的软件开发环境中容器化技术已成为一种关键的工具使应用程序能够更快速、可靠地交付和扩展。然而随着容器数量的增加和复杂性的提高监控这些容器化服务的性能和健康状态变得至关重要。通过这个项目我们的目标是提供一个完善的监控解决方案帮助开发人员、系统管理员和运维团队更好地理解和管理他们的容器化应用程序。这将有助于提高应用程序的稳定性、可用性和性能从而促进更快速、高效的软件开发和部署。 1.2课题目标 随着信息技术的不断发展容器化技术已经成为现代应用程序开发和部署的主要趋势之一。Docker等容器平台的出现为应用程序的快速交付和部署提供了便利然而随之而来的挑战是如何有效地监控和管理这些容器化服务。在这个背景下本毕业设计项目选择了基于Prometheus监控Docker平台作为研究课题。Prometheus作为一种开源的监控和警报工具已经在容器环境中得到广泛应用但如何将其有效地集成到Docker平台中以确保容器化应用的性能、可用性和可伸缩性仍然是一个具有挑战性的问题。因此本项目旨在研究和实现一个可靠的监控解决方案以满足容器化应用的监控需求。 二、设计思路 2.1 开发环境与工具 使用到的工具为 VMware WorkstationVMware Workstation是一款虚拟机软件可以用于创建和管理虚拟机。它提供了一个可视化界面使用户可以在单个物理主机上同时运行多个虚拟机以便在不同的操作系统环境中进行开发、测试或演示。 Centos7.9.2009Centos7.9.2009是一种基于Linux的操作系统它被广泛用作服务器操作系统。Centos提供了稳定、安全和可靠的基础系统可以作为Docker平台的基础环境。 DockerDocker是一种开源的容器化平台它使得应用程序和其依赖项可以打包成轻量级、可移植的容器。通过使用Docker开发人员可以更方便地构建、部署和管理应用程序实现快速交付和跨平台运行。 Grafana EnterpriseGrafana Enterprise是一款功能强大的数据可视化工具。它提供了丰富的图表、面板和仪表盘可以将来自各种数据源的指标数据进行可视化展示和交互式探索帮助用户更好地理解和分析数据。 AlertmanagerAlertmanager是一种用于处理和管理告警的服务。它可以接收来自监控系统如Prometheus的告警通知并根据预定义的规则进行分组、去重、静默或发送给相应的接收者以便及时响应和解决问题。 Node ExporterNode Exporter是用于收集主机指标数据的一个Prometheus导出器。它可以在主机上运行定期采集主机的硬件和操作系统指标并将其暴露给Prometheus进行监控和存储。 PrometheusPrometheus是一款开源的监控和警报工具。它提供了强大的时间序列数据采集、存储和查询功能能够监控多种数据源的指标并支持设定灵活的告警规则。Prometheus还与Grafana等工具紧密集成实现数据的可视化和分析。 表 2-1 开发环境 工具作用VMware Workstation创建虚拟机Centos7.9.2009作为平台基础系统Docker容器平台grafana-enterprise数据可视化alertmanager告警服务node_exporter收集数据服务prometheus监控和警报工具 2.2 系统版本 以下是当前工具和系统使用的版本信息。 表 2-2 系统版本 系统版本VMware Workstation pro16Centos77.9.2009docker18.06.3grafana-enterprise9.4.3alertmanager0.25.node_exporter1.5.0prometheus2.37.6 2.3 系统设计 这个系统设计旨在实现全面的监控包括自身、Docker平台、以及Docker上运行的Nginx和MySQL并将监控数据可视化通过Grafana展现。系统架构包括Prometheus服务器作为核心组件负责数据采集和存储Node Exporter用于监控宿主机系统性能Docker监控通过cAdvisor或Docker自身的指标监测容器Nginx Exporter用于收集Nginx服务器的性能数据而MySQL Exporter则从MySQL数据库中提取性能指标。监控数据汇总后通过Grafana连接到Prometheus数据源实现实时监控和创建仪表板。监控数据的采集和存储通过Prometheus进行它定期从各个目标中收集性能数据并存储在其内部数据库中提供强大的查询和检索功能。最终Grafana用于创建自定义仪表板可视化展示监控数据帮助实时监测系统和应用程序的性能以及分析历史趋势。整个系统设计旨在提供全面的监控解决方案以便有效地管理和优化运行中的自身、Docker平台、Nginx和MySQL等组件。 三、需求分析 3.1 项目平台要求 Docker平台搭建和管理需求用户应能够轻松地搭建和管理Docker容器平台包括容器编排和集群管理平台应支持多种操作系统和云环境以满足不同用户的需求。 Prometheus集成和配置需求用户应能够方便地配置Prometheus以监控Docker平台上的容器和服务支持多个Prometheus实例的集成以适应不同的监控需求。支持数据收集和存储的灵活性以满足各种监控数据的需求。 监控规则和告警需求用户应能够定义自定义监控规则以检测容器和服务的性能问题应支持告警规则的设置以及多种告警通知渠道如邮件、短信等。用户应能够灵活地调整告警阈值和策略以适应不同应用的需求。 可视化和仪表板需求系统应提供直观的仪表板和可视化工具以帮助用户监控容器化应用程序的性能和状态。仪表板应支持自定义配置以满足不同用户的可视化需求。用户应能够生成和导出有用的监控报告以便进行性能分析和决策支持。 安全性和权限需求系统应具有强大的安全性措施包括身份验证、授权和数据加密以保护监控数据的完整性和保密性应支持多级权限管理以确保不同用户具有适当的访问权限。 可扩展性和性能需求系统应具备良好的可扩展性以适应不断增长的容器数量和监控需求应能够高效处理大量的监控数据以保持系统的性能稳定。 文档和培训需求系统应提供清晰的文档和培训材料以帮助用户快速上手和有效使用监控工具。 3.2 监控需求分析 节点监控监控Docker主机的硬件资源利用率包括CPU、内存、磁盘和网络等指标。这可以通过Prometheus的节点导出器例如node_exporter实现。 容器监控监控Docker容器的运行状态和资源消耗情况包括CPU使用率、内存使用量、网络流量和磁盘I/O等指标。可以使用cAdvisor或者Docker自身的监控API获取容器的指标并由Prometheus进行采集和存储。 服务健康监测监控Docker中运行的服务的可用性和性能。可以使用Prometheus的黑盒监测Blackbox Exporter对服务进行定期的HTTP或TCP健康检查并记录响应时间、状态码等指标。 日志监控集成日志收集工具如ELK/EFK以监控Docker容器的日志输出。可以使用Filebeat将容器日志发送到Logstash/Elasticsearch/Fluentd等进行处理和存储并通过Prometheus的日志导出器进行查询和分析。 告警与警报设置告警规则当某个指标超过阈值或触发特定条件时发送警报给运维人员或团队。Prometheus具有灵活的告警管理机制可以根据业务需求设置告警规则并通过邮件、短信、Slack等方式发送警报。 可视化与报表使用Grafana等工具构建监控仪表盘将采集到的指标进行可视化展示以便查看和分析。可以创建图表、面板和报表来监控Docker平台的整体状态和趋势。 五、系统实现 5.1 部署prometheus 5.1.1 服务器物理配置规划 服务器的硬件配置如下。 表 5-1 配置规划 角色系统架构内存大小核心数量prometheusCentos7.9.20094G4cpudockerCentos7.9.20098G8cpu 5.1.2 IP地址、主机名称规划 服务器的IP地址规划如下。 表 5-2 主机ip地址 **IP **地址主机名角色网卡1192.168.100.250 nat模式Prometheus监控服务器网卡1192.168.100.251 nat模式Docker容器服务器 5.1.3 环境准备 修改服务器名称关闭防火墙并创建用于运行Prometheus的用户。 Prometheus节点 #修改服务器名称 hostnamectl set-hostname Prometheus #关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/config #创建prometheus工作目录 mkdir -p /opt/prometheus/ #创建运行Prometheus服务的用户 useradd -M -s /usr/sbin/nologin prometheus5.1.4 软件包下载 去各组件的官方网站下载项目对应的软件包。 Prometheus节点 #Prometheus下载 wget [https://ghproxy.com/https://github.com/prometheus/prometheus/releases/download/v2.37.6/prometheus-2.37.6.linux-amd64.tar.gz](https://ghproxy.com/https://github.com/prometheus/prometheus/releases/download/v2.37.6/prometheus-2.37.6.linux-amd64.tar.gz) #alertmanager下载 wget [https://ghproxy.com/https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz](https://ghproxy.com/https://github.com/prometheus/alertmanager/releases/download/v0.25.0/alertmanager-0.25.0.linux-amd64.tar.gz) #node_exporter下载 wget [https://ghproxy.com/https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz](https://ghproxy.com/https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz) #grafana下载 wget [https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.3.linux-amd64.tar.gz](https://dl.grafana.com/enterprise/release/grafana-enterprise-9.4.3.linux-amd64.tar.gz)5.1.5 解压软件包 解压下载的软件包。 #解压所有软件包 tar -zxvf alertmanager-0.25.0.linux-amd64.tar.gz -C /opt/prometheus/ tar -zxvf grafana-enterprise-9.4.3.linux-amd64.tar.gz -C /opt/prometheus/ tar -zxvf prometheus-2.37.6.linux-amd64.tar.gz -C /opt/prometheus/ tar -zxvf node_exporter-1.5.0.linux-amd64.tar.gz -C /opt/prometheus/ #重新命名软件包 mv /opt/prometheus/node_exporter-1.5.0.linux-amd64/ /opt/prometheus/node_exporter mv /opt/prometheus/alertmanager-0.25.0.linux-amd64/ /opt/prometheus/alertmanager mv /opt/prometheus/grafana-9.4.3/ /opt/prometheus/grafana mv /opt/prometheus/prometheus-2.37.6.linux-amd64/ /opt/prometheus/prometheus5.1.6 部署node_exporter服务 开始部署node_exporter服务用于当前服务器的数据采集。 Prometheus节点 #编写systemd文件cat /usr/lib/systemd/system/node_exporter.service EOF[Unit]Descriptionnode_exporterDocumentationhttps://prometheus.io/Afternetwork.target[Service]UserprometheusGroupprometheusExecStart/opt/prometheus/node_exporter/node_exporterRestarton-failure[Install]WantedBymulti-user.targetEOF#递归的将用户和组改为prometheuschown -R prometheus:prometheus /opt/prometheus#重载systemd配置并启动node_exporter服务systemctl daemon-reloadsystemctl start node_exportersystemctl enable node_exporter 查看node_exporter状态浏览器访问http://prometheus_ip:9100/metrics查看node_exporter服务数据。 查看node_exporter状态 2 查看node_exporter网页数据 5.1.7 部署alertmanager服务 部署告警服务器。 Prometheus节点 #编写systemd文件cat /usr/lib/systemd/system/alertmanager.service EOF[Unit]DescriptionAlert ManagerWantsnetwork-online.targetAfternetwork-online.target[Service]TypesimpleUserprometheusGroupprometheusExecStart/opt/prometheus/alertmanager/alertmanager \--config.file/opt/prometheus/alertmanager/alertmanager.yml \--storage.path/opt/prometheus/alertmanager/dataRestartalways[Install]WantedBymulti-user.targetEOF#递归的将用户和组改为prometheuschown -R prometheus:prometheus /opt/prometheus#重载systemd配置并启动alertmanager服务systemctl daemon-reloadsystemctl start alertmanagersystemctl enable alertmanager查看alertmanager状态浏览器访问http://prometheus_ip: 9093/#/status查看alertmanager服务状态。 查看alertmanager状态 图5-4 alertmanager服务状态 5.1.8 部署prometheus服务 部署普罗米修斯服务修改对应的配置文件正式启动监控服务。 Prometheus节点 #编写systemd文件cat /usr/lib/systemd/system/prometheus.service EOF[Unit]DescriptionPrometheus ServerDocumentationhttps://prometheus.io/docs/introduction/overview/Afternetwork-online.target[Service]TypesimpleUserprometheusGroupprometheusRestarton-failureExecStart/opt/prometheus/prometheus/prometheus \--config.file/opt/prometheus/prometheus/prometheus.yml \--storage.tsdb.path/opt/prometheus/prometheus/data \--storage.tsdb.retention.time60d \--web.enable-lifecycle[Install]WantedBymulti-user.targetEOF#配置告警规则cat /opt/prometheus/prometheus/alert.yml EOFgroups:- name: Prometheus alertrules:# 对任何实例超过30s无法联系的情况发出警报- alert: 服务告警expr: up 0for: 30slabels:severity: criticalannotations:instance: {{ $labels.instance }}description: {{ $labels.job }} 服务已关闭EOF#修改prometheus.yml配置cat /opt/prometheus/prometheus/prometheus.yml EOF# my global configglobal:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting:alertmanagers:- static_configs:- targets:- localhost:9093# Load rules once and periodically evaluate them according to the global evaluation_interval.rule_files:- alert.yml# - second_rules.yml# A scrape configuration containing exactly one endpoint to scrape:# Here its Prometheus itself.scrape_configs:# The job name is added as a label to any timeseries scraped from this config.- job_name: prometheus# metrics_path defaults to /metrics# scheme defaults to http.static_configs:- targets: [localhost:9090]- job_name: alertmanagerscrape_interval: 15sstatic_configs:- targets: [localhost:9093]- job_name: node-exporterscrape_interval: 15sstatic_configs:- targets: [localhost:9100]labels:instance: Prometheus服务器EOF#递归的将用户和组改为prometheuschown -R prometheus:prometheus /opt/prometheus#重载systemd配置并启动prometheus服务systemctl daemon-reloadsystemctl start prometheussystemctl enable prometheus查看prometheus状态浏览器访问http://prometheus_ip: 9090查看三个服务状态是否正常。 5 查看prometheus状态 6查看三个服务状态 5.1.9 部署grafana服务 部署grafana实现数据的可视化对接普罗米修斯。 Prometheus节点 #编写systemd文件cat /usr/lib/systemd/system/grafana-server.service EOF[Unit]DescriptionGrafana serverDocumentationhttp://docs.grafana.org[Service]TypesimpleUserprometheusGroupprometheusRestarton-failureExecStart/opt/prometheus/grafana/bin/grafana-server \--config/opt/prometheus/grafana/conf/defaults.ini \--homepath/opt/prometheus/grafana[Install]WantedBymulti-user.targetEOF#递归的将用户和组改为prometheuschown -R prometheus:prometheus /opt/prometheus#重载systemd配置并启动grafana服务systemctl daemon-reloadsystemctl start grafana-serversystemctl enable grafana-server查看grafana状态浏览器访问http://prometheus_ip:3000可以看到grafana的登录页面。 图5-7 查看grafana状态 图5-8 grafana的登录页面 5.1.10 配置grafana对接Prometheus 浏览器访问http://prometheus_ip:3000登录grafana,账号密码默认为admin/admin登录后提示修改密码。 图5-9 登录配置 修改完密码后我们配置grafana的数据源为Prometheus点击左下角“设置图标”点击Data sources 点击Prometheus。 0 配置数据源 设置Prometheus服务地址这里两个服务都在同一台主机可以直接使用localhost点击savetest保存测试能否成功。 1 配置Prometheus地址 2 保存测试数据源 设置好数据源后我们需要设置node_exporter的dashboard方便我们观察到监控数据。 3 进入配置dashboard界面 4 配置dashboard-json 关于配置dashboard的方法有两种一种是上传json文件一种是以id的方式配置获取id和json文件的方式需要访问https://grafana.com/grafana/dashboards/因为网络原因我们此次使用提前准备的json文件配置。 5 node_exporter-dashboard配置 6 可以复制id或者下载json文件 上传json文件后进行基本的设置设置完成后点击import即可配置完毕查看到本机linux服务器数据仪表盘。 基本配置 Linux服务器数据dashboard 5.2 部署docker 5.2.1 基本环境配置 配置docker主机的主机名和基本的环境配置关闭防火墙等。 #docker节点执行#修改主机名hostnamectl set-hostname docker-server#关闭防火墙systemctl stop firewalldsystemctl disable firewalldsetenforce 0sed -i s/SELINUX.*/SELINUXdisabled/g /etc/selinux/config5.2.2 部署docker服务 使用docker提供的网络源安装docker服务器并且配置阿里云镜像加速器。 docker节点执行 #安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo [http://download.docker.com/linux/centos/docker-ce.repo](http://download.docker.com/linux/centos/docker-ce.repo)#加载元数据sudo yum makecache fast#安装dockeryum -y install docker-ce-18.06.3.ce-3.el7yum -y install docker-composemkdir -p /etc/dockercat /etc/docker/daemon.json EOF{registry-mirrors:[https://fem5eo07.mirror.aliyuncs.com]}EOF#启动dockersystemctl start dockersystemctl enable docker5.2.3 部署cadvisor容器 部署docker的数据采集容器。 #docker节点执行#拉取镜像文件docker pull google/cadvisor#编写docker-compose.yaml文件cat docker-compose.yaml EOFversion: 3.0services:monitor:container_name: cadvisorimage: google/cadvisorrestart: alwaysvolumes:- /:/rootfs:ro- /var/run:/var/run:rw- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:roports:- 8080:8080EOF#启动容器docker-compose up -d#查看状态[rootdocker-server ~]# docker-compose psName Command State Ports--------------------------------------------------------------------------cadvisor /usr/bin/cadvisor -logtostderr Up 0.0.0.0:8080-8080/tcp.使用浏览器访问cadvisor服务http://192.168.100.251:8080/metrics查看metrics数据。 metrics数据 5.2.4 配置Prometheus获取cadvisor服务数据 Cadvisor容器获取了docker容器平台的大部分数据并且数据格式符合Prometheus的规范Prometheus可以直接获取数据。 #Prometheus节点执行cat /opt/prometheus/prometheus/prometheus.yml EOF- job_name: Dockerscrape_interval: 15sstatic_configs:- targets: [192.168.100.251:8080]labels:instance: Docker服务器EOF#热加载配置curl -X POST http://localhost:9090/-/reload访问http://192.168.100.250:9090/targets?search查看Prometheus是否成功添加了docker平台数据 0 查看状态 5.2.5 配置docker监控的dashboard 访问grafana的dashboard-import导入docker-dashboard的dashboard-ID号11600。 1添加docker-dashboard JSON文件 2 查看dashboard 5.2.6 配置docker的告警配置文件 修改普罗米修斯的配置文件编写一个告警规则。 #Prometheus节点执行#创建文件夹mkdir -p /opt/prometheus/prometheus/rules/#编辑prometheus.ymlvi prometheus.yml#添加红色配置rule_files:- alert.ymlfont stylecolor:red; - rules/*.yml/font#编写告警配置文件cat /opt/prometheus/prometheus/rules/docker.yml EOFgroups:- name: DockerContainersrules:- alert: Containerkilledexpr: time() - container_last_seen 60for: 0mlabels:severity: warningannotations:isummary: Docker容器被杀死 容器: $labels.instancedescription: {{ $value }}个容器消失了- alert: ContainerAbsentexpr: absent(container_last_seen)for: 5mlabels:severity: warningannotations:summary: 无容器 容器: $labels.instancedescription: 5分钟检查容器不存在值为: {{ $value }}EOF#重新加载配置chown -R prometheus:prometheus /opt/Prometheuscurl -X POST http://localhost:9090/-/reload访问Prometheus查看是否成功。 docker告警 5.3 监控docker平台服务 5.3.1 监控docker-nginx容器 5.3.1.1部署nginx容器 部署用于测试的nginx容器。 #docker节点#创建目录mkdir -p /root/nginx/conf.d#编写nginx配置文件cat /root/nginx/conf.d/server.conf EOFserver {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html; } } EOF#编写nginx的docker-compose.yamlcat /root/nginx/docker-compose.yaml EOF version: 3.0 services:nginx:image: nginxcontainer_name: nginxports:- 80:80volumes:- /root/nginx/conf.d/:/etc/nginx/conf.d/- /root/nginx/html:/usr/share/nginx/html- /root/nginx/log:/var/log/nginx EOF #检查是否安装with-http_stub_status_module模块 docker-compose exec nginx nginx -V |grep -o with-http_stub_status_module with-http_stub_status_module #开启stub_status配置 cat /root/nginx/conf.d/server.conf EOF server {listen 80;server_name localhost;location /stub_status {stub_status on;access_log off;#allow nginx_exporter的ip;allow 0.0.0.0/0;deny all;}location / {root /usr/share/nginx/html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root /usr/share/nginx/html; } } EOF#nginx重新加载配置文件docker exec -it nginx nginx -s reload#检查是否正常开启[rootdocker-server nginx]# curl 192.168.100.251/stub_statusActive connections: 1server accepts handled requests1 1 1Reading: 0 Writing: 1 Waiting: 05.3.1.2部署nginx-exporter 部署用于收集nginx数据的exporter #docker节点#创建目录mkdir -p /root/nginx/mon#编写nginx-exporter的docker-compose.yamlcat /root/nginx/mon/docker-compose.yaml EOFversion: 3.0services:nginx_exporter:image: nginx/nginx-prometheus-exporter:0.11container_name: nginx_exporterhostname: nginx_exportercommand:- -nginx.scrape-urihttp://192.168.100.251/stub_statusrestart: alwaysports:- 9113:9113EOF#启动nginx_exporterdocker-compose up -d#检查状态[rootdocker-server mon]# docker-compose psName Command State Ports--------------------------------------------------------------------------------nginx_exporter /usr/bin/nginx-prometheus- ... Up 0.0.0.0:9113-9113/tcp添加到prometheus配置。#prometheus节点#加入以下配置vi /opt/prometheus/prometheus/prometheus.yml- job_name: Docker-nginxscrape_interval: 15sstatic_configs:- targets: [192.168.100.251:9113]labels:instance: Docker服务器nginx#热加载配置curl -X POST http://localhost:9090/-/reload访问grafana的dashboard-import导入nginx-dashboard-ID号12708即可添加nginx的dashboard。 4 nginx-dashboard 5.3.1.3配置nginx的告警设置 配置nginx的邮箱告警规则。 #prometheus节点#编写告警配置文件cat /opt/prometheus/prometheus/rules/nginx.yml EOFgroups:- name: Nginxrules:- alert: NginxDownexpr: nginx_up 0for: 30slabels:severity: criticalannotations:isummary: nginx异常,实例:{{ $labels.instance }}description: {{ $labels.job }} nginx已关闭EOF#重新加载配置chown -R prometheus:prometheus /opt/prometheuscurl -X POST http://localhost:9090/-/reload访问Prometheus查看是否成功。 mysql告警 5.3.2 监控docker-mysql容器 5.3.2.1部署mysql容器 部署mysql测试容器。 #docker节点#创建目录mkdir /root/mysql#编写docker-compose.yamlcat docker-compose.yaml EOFversion: 3.0services:db:image: mysqlrestart: alwayscontainer_name: mysqlports:- 3306:3306environment:MYSQL_DATABASE: prometheusMYSQL_USER: user1MYSQL_PASSWORD: 000000MYSQL_RANDOM_ROOT_PASSWORD: 000000EOF#部署mysqldocker-compose up -d#查看状态docker-compose ps[rootdocker-server mysql]# docker-compose psName Command State Ports-------------------------------------------------------------------------------mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306-3306/tcp, 33060/tcp 5.3.2.2部署mysqld-exporter‘ 部署用于采集mysql容器数据的exporter。 #docker节点执行#创建工作目录mkdir /root/mysql/mon#编写docker-compose.yamlcat docker-compose.yaml EOFversion: 3.0services:mysql-exporter:image: prom/mysqld-exportercontainer_name: mysqld-exporterrestart: alwayscommand:- --collect.info_schema.processlist- --collect.info_schema.innodb_metrics- --collect.info_schema.tablestats- --collect.info_schema.tables- --collect.info_schema.userstats- --collect.engine_innodb_statusenvironment:- DATA_SOURCE_NAMEprometheus:000000(192.168.100.251:3306)/ports:- 9104:9104EOF#部署mysqld-exporterdocker-compose up -d#查看状态[rootdocker-server mon]# docker-compose psName Command State Ports---------------------------------------------------------------------------------mysqld-exporter /bin/mysqld_exporter --col ... Up 0.0.0.0:9104-9104/tcp添加到prometheus配置。#prometheus节点#加入以下配置vi /opt/prometheus/prometheus/prometheus.yml- job_name: Docker-mysqlscrape_interval: 15sstatic_configs:- targets: [192.168.100.251:9104]labels:instance: Docker服务器mysql#热加载配置 curl -X POST http://localhost:9090/-/reload 访问grafana的dashboard-import导入7362和9625分别为mysql数据库和mysql数据表的dashboard-ID号。 6 数据库dashboard 27数据表dashboard 5.3.2.3配置mysql的告警设置 配置mysql的邮箱告警配置文件。 #prometheus节点#编写告警配置文件cat /opt/prometheus/prometheus/rules/mysql.yml EOFgroups:- name: DockerContainersrules:- alert: Containerkilledexpr: time() - container_last_seen 60for: 0mlabels:severity: warningannotations:isummary: Docker容器被杀死 容器: {{ $labels.instance }}description: {{ $value }}个容器消失了- alert: ContainerAbsentexpr: absent(container_last_seen)for: 5mlabels:severity: warningannotations:summary: 无容器 容器: {{ $labels.instance }}description: 5分钟检查容器不存在值为: {{ $value }}EOF#重新加载配置chown -R prometheus:prometheus /opt/Prometheuscurl -X POST http://localhost:9090/-/reload访问Prometheus查看是否成功。 8 mysql告警 5.4 alertmanager配置163邮箱告警 5.4.1 配置163邮箱 登录配置163邮箱开启POP3/SMTP服务。 9配置开启服务 0 开启服务 开启后会获得一个授权码后续我们将使用这个授权码配置alertmanager.yml文件对接我们的163邮箱。 5.4.2 修改alertmanager配置 修改alertmanager配置文件将我们的邮箱添加到alertmanager。 #Prometheus节点执行cat alertmanager.yml EOFglobal: #配置告警邮箱smtp_smarthost: smtp.163.com:465 #163服务器smtp_from: a351719672163.com #发邮件的邮箱smtp_auth_username: a351719672163.com #发邮件的邮箱用户名smtp_auth_password: xxxxx #发邮件的邮箱密码smtp_require_tls: false #进行tls验证 route:group_by: [alertname]group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: email #全局报警组这个参数必选receivers:- name: emailemail_configs:- to: 351719672qq.com#收邮件的邮箱inhibit_rules:- source_match:severity: criticaltarget_match:severity: warningequal: [alertname, dev, instance]EOF#热加载配置curl -X POST http://localhost:9093/-/reload5.4.3 测试告警服务 测试各个告警配置是否能成功生效 5.4.3.1 Nginx告警测试 停止nginx,测试nginx存活检测是否正常. #docker节点执行 #测试nginx存活检测是否正常 [rootdocker-server ~]# docker stop nginx nginx 实例转为pending进而变而FIRING。 nginx状态pending nginx状态firing 可以看到邮箱正常接收到了nginx的告警。 邮箱nginx告警 5.4.3.2 Mysql告警测试 测试mysql存活检测是否正常 #docker节点执行 [rootdocker-server ~]# docker stop mysql Mysql 实例转为pending进而变而FIRING。 4 mysql状态pending 5 mysql状态firing 可以看到邮箱正常接收到了mysql的告警。 邮箱mysql告警 5.4.3.3 docker容器告警测试 测试docker检测是否正常 #docker节点执行 #测试docker检测是否正常 [rootdocker-server cadvisor]# docker stop cadvisor cadvisor 实例转为pending进而变而FIRING。 docker状态pending docker状态firing 可以看到邮箱正常接收到了docker的告警。 邮箱docker告警
http://www.w-s-a.com/news/211668/

相关文章:

  • 工商企业网站群晖配置wordpress 80端口
  • 企业网站建设流程步骤镇江东翔网络科技有限公司
  • 网络工程师和做网站哪个难网络建站如何建成
  • 网站建设需要哪些项目游民星空是用什么做的网站
  • 旅游网站建设要如何做百度商城网站建设
  • destoon 网站搬家中国企业500强都有哪些企业
  • 商城网站前端更新商品天天做吗哈尔滨做网站优化
  • 新乡网站开发wordpress 产品分类侧边栏
  • 网站自己做自己的品牌好做互联网企业分类
  • 项目网站建设方案石家庄网站快速排名
  • 网站开发大作业报告做电商网站的参考书
  • Apache局域网网站制作wordpress外链自动保存
  • 网站备案号要怎么查询千锋教育培训机构地址
  • 门户网站建设要求几款免费流程图制作软件
  • 花生壳域名可以做网站域名吗wordpress内链工具
  • 猎头公司网站模板网站伪静态作用
  • 工程建设教育网站html成品网页模板下载
  • 同一ip 网站 权重wordpress 菜单 小图标
  • 网站没有icp备案wordpress d8主题 4.1
  • 手机网站建设推荐企业宣传页模板
  • 杭州市富阳区建设局网站动态域名做网站
  • 网站如何免费做SEO优化靖安县城乡规划建设局网站
  • 室内设计网站平台学新媒体运营最好的培训学校
  • 招聘网站建设工作总结湘潭seo
  • 台山网站设计哈尔滨网站建设外包公司
  • 常州城投建设招标网站网页设计入门教学视频
  • 石家庄教育平台网站建设wordpress 访问量统计
  • 为什么买的网站模版不好用ftp网站建设
  • 做网站办公照片crm系统视频
  • 网站建设 招标文件南昌做网络推广的