网站用什么建设如何获得企业邮箱

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

网站用什么建设,如何获得企业邮箱,php网站建设视频教程,seo网络营销推广公司目录 1.Prometheus概述 1.1 TSDB时序数据库 1.2 Prometheus 的特点 1.3 Prometheus 的生态组件 1.4 Prometheus 的工作模式#xff1a; 1.5 Prometheus 的工作流程 1.6 Prometheus 的局限性 2.部署Prometheus 2.1 Prometheust Server 端安装和相关配置 2.2 部署 Expo…目录 1.Prometheus概述 1.1 TSDB时序数据库 1.2 Prometheus 的特点 1.3 Prometheus 的生态组件 1.4 Prometheus 的工作模式 1.5 Prometheus 的工作流程 1.6 Prometheus 的局限性 2.部署Prometheus 2.1 Prometheust Server 端安装和相关配置 2.2 部署 Exporters监控本机 2.3 如何监控其他主机 2.4 监控mysql数据库 2.5 监控nginx服务器 3.部署 Grafana 进行展示  1.Prometheus概述 Prometheus 是一个开源的服务监控系统和时序数据库其提供了通用的数据模型和快捷数据采集、存储和查询接口。它的核心组件 Prometheus server 会定期从静态配置的监控目标或者基于服务发现自动配置的目标中进行拉取数据新拉取到的数据会持久化到存储设备当中。 每个被监控的主机都可以通过专用的 exporter 程序提供输出监控指标数据的接口它会在目标处收集监控数据并暴露出一个 HTTP 接口供 Prometheus server 查询 Prometheus 通过基于 HTTP 的 pull 的方式来周期性的采集数据默认时间是 15s 抓取一次。抓取到的指标数据会被以时间序列的形式保存在内存中并且定时刷到磁盘上默认是两个小时回刷一次。并且为了防止 Prometheus 发生崩溃或重启时能够恢复数据 Prometheus 也提供了类似 MySQL 中 binlog 一样的 wal 预写日志当 Prometheus 崩溃重启时会读这个预写日志来恢复数据。 如果存在告警规则则抓取到数据之后会根据规则进行计算满足告警条件则会生成告警并发送到 Alertmanager 完成告警的汇总和分发。 对于短时间执行的脚本任务或者不好直接 pull 指标数据的服务Prometheus 提供了 Pushgateway 给这些任务将服务指标数据主动 push 到 Pushgateway 并临时存储然后等待 Prometheus server 完成数据的采集。 任何被监控的目标都需要事先纳入到监控系统中才能进行时序数据采集、存储、告警和展示监控目标可以通过配置信息以静态形式指定也可以让 Prometheus 通过服务发现的机制进行动态管理。 Prometheus 能够直接把K8S的 API Server 作为服务发现系统使用进而动态发现和监控K8S集群中的所有可被监控的对象。 1.1 TSDB时序数据库 TSDB 作为 Prometheus 的存储引擎完美契合了监控数据的应用场景 ●存储的数据量级十分庞大 ●大部分时间都是写入操作 ●写入操作几乎是顺序添加大多数时候数据都以时间排序 ●很少更新数据大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库 ●删除操作一般为区块删除选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据 ●基本数据大一般超过内存大小。一般选取的只是其一小部分且没有规律缓存几乎不起任何作用 ●读操作是十分典型的升序或者降序的顺序读 ●高并发的读操作十分常见 1.2 Prometheus 的特点 多维数据模型由度量名称和键值对标识的时间序列数据时间序列数据按照时间顺序记录系统、设备状态变化的数据每个数据称为一个样本服务器指标数据、应用程序性能监控数据、网络数据等都是时序数据 内置时间序列Time Series数据库Prometheus 外置的远端存储通常会用InfluxDB、OpenTSDB 等 promQL一种灵活的查询语言可以利用多维数据完成复杂查询 基于 HTTP 的 pull拉取方式采集时间序列数据同时支持 PushGateway 组件收集数据 通过静态配置或服务发现发现目标 支持作为数据源接入 Grafana     1.3 Prometheus 的生态组件 Prometheus Server 负责时序型指标数据的采集及存储但数据的分析、聚合及直观展示以及告警等功能并非由 Prometheus Server 所负责。 Prometheus 生态圈中包含了多个组件其中部分组件可选1Prometheus server服务核心组件采用 pull 方式采集监控数据通过 http 协议传输存储时间序列数据基于“告警规则”生成告警通知。Prometheus server 由三个部分组成RetrievalStoragePromQL Retrieval负责在活跃的 target 主机上抓取监控指标数据。Storage存储主要是把采集到的数据存储到磁盘中。默认为 15 天。PromQL是 Prometheus 提供的查询语言模块。 2Client Library: 客户端库目的在于为那些期望原生提供 Instrumentation 功能的应用程序提供便捷的开发途径用于基于应用程序内建的测量系统。 3Exporters指标暴露器负责收集不支持内建 Instrumentation 的应用程序或服务的性能指标数据并通过 HTTP 接口供 Prometheus Server 获取。 换句话说Exporter 负责从目标应用程序上采集和聚合原始格式的数据并转换或聚合为 Prometheus 格式的指标向外暴露。 常用的 Exporters ●Node-Exporter用于收集服务器节点的物理指标状态数据如平均负载、CPU、内存、磁盘、网络等资源信息的指标数据需要部署到所有运算节点。 指标详细介绍https://github.com/prometheus/node_exporter ●mysqld-exporter/nginx-exporter ●Kube-State-Metrics为 Prometheus 采集 K8S 资源数据的 exporter通过监听 APIServer 收集 kubernetes 集群内资源对象的状态指标数据例如 pod、deployment、service 等等。同时它也提供自己的数据主要是资源采集个数和采集发生的异常次数统计。 需要注意的是 kube-state-metrics 只是简单的提供一个 metrics 数据并不会存储这些指标数据所以可以使用 Prometheus 来抓取这些数据然后存储 主要关注的是业务相关的一些元数据比如 Deployment、Pod、副本状态等调度了多少个 replicas 现在可用的有几个多少个 Pod 是 running/stopped/terminated 状态Pod 重启了多少次有多少 job 在运行中。 ●cAdvisor用来监控容器内部使用资源的信息比如 CPU、内存、网络I/O、磁盘I/O 。 ●blackbox-exporter监控业务容器存活性。 4Service Discovery服务发现用于动态发现待监控的 TargetPrometheus 支持多种服务发现机制文件、DNS、Consul、Kubernetes 等等。 服务发现可通过第三方提供的接口Prometheus 查询到需要监控的 Target 列表然后轮询这些 Target 获取监控数据。该组件目前由 Prometheus Server 内建支持 5Alertmanager是一个独立的告警模块从 Prometheus server 端接收到 “告警通知” 后会进行分组、去重并路由到相应的接收方发出报警 常见的接收方式有电子邮件、钉钉、企业微信等。Prometheus Server 仅负责生成告警指示具体的告警行为由另一个独立的应用程序 AlertManager 负责告警指示由 Prometheus Server 基于用户提供的告警规则周期性计算生成Alertmanager 接收到 Prometheus Server 发来的告警指示后基于用户定义的告警路由向告警接收人发送告警信息。 6Pushgateway类似一个中转站Prometheus 的 server 端只会使用 pull 方式拉取数据但是某些节点因为某些原因只能使用 push 方式推送数据 那么它就是用来接收 push 而来的数据并暴露给 Prometheus 的 server 拉取的中转站。 可以理解成目标主机可以上报短期任务的数据到 Pushgateway然后 Prometheus server 统一从 Pushgateway 拉取数据。 7Grafana是一个跨平台的开源的度量分析和可视化工具可以将采集的数据可视化的展示并及时通知给告警接收方。其官方库中具有丰富的仪表盘插件。 1.4 Prometheus 的工作模式 ●Prometheus Server 基于服务发现Service Discovery机制或静态配置获取要监视的目标Target并通过每个目标上的指标 exporter 来采集Scrape指标数据 ●Prometheus Server 内置了一个基于文件的时间序列存储来持久存储指标数据用户可使用 PromQL 接口来检索数据也能够按需将告警需求发往 Alertmanager 完成告警内容发送 ●一些短期运行的作业的生命周期过短难以有效地将必要的指标数据供给到 Server 端它们一般会采用推送Push方式输出指标数据 Prometheus 借助于 Pushgateway 接收这些推送的数据进而由 Server 端进行抓取 1.5 Prometheus 的工作流程 1Prometheus 以 Prometheus Server 为核心用于收集和存储时间序列数据。Prometheus Server 从监控目标中通过 pull 方式拉取指标数据或通过 pushgateway 把采集的数据拉取到 Prometheus server 中。 2Prometheus server 把采集到的监控指标数据通过 TSDB 存储到本地 HDD/SSD 中。 3Prometheus 采集的监控指标数据按时间序列存储通过配置报警规则把触发的告警通知发送到 Alertmanager。 4Alertmanager 通过配置报警接收方发送报警到邮件、钉钉或者企业微信等。 5Prometheus 自带的 Web UI 界面提供 PromQL 查询语言可查询监控数据。 6Grafana 可接入 Prometheus 数据源把监控数据以图形化形式展示出。 1.6 Prometheus 的局限性 ●Prometheus 是一款指标监控系统不适合存储事件及日志等它更多地展示的是趋势性的监控而非精准数据 ●Prometheus 认为只有最近的监控数据才有查询的需要其本地存储的设计初衷只是保存短期例如一个月数据因而不支持针对大量的历史数据进行存储若需要存储长期的历史数据建议基于远端存储机制将数据保存于 InfluxDB 或 OpenTSDB 等系统中 ●Prometheus 的集群机制成熟度不高可基于 Thanos 或 Cortex 实现 Prometheus 集群的高可用及联邦集群。 2.部署Prometheus 关闭防火墙 systemctl disable –now firewalld setenforce 0 2.1 Prometheust Server 端安装和相关配置 上传 prometheus-2.35.0.linux-amd64.tar.gz 到 /opt 目录中并解压 tar xf prometheus-2.45.0.linux-amd64.tar.gz mv prometheus-2.45.0.linux-amd64 /usr/local/prometheus cd /usr/local/prometheus/ vim prometheus.ymlscrape_interval: 15s #采集目标主机监控数据的时间间隔默认为1mevaluation_interval: 15s #触发告警生成alert的时间间隔默认是1m# scrape_timeout is set to the global default (10s).scrape_timeout: 10s #数据采集超时时间默认10s metrics_path: /metrics #指标数据采集路径默认为 /metrics配置系统启动文件cd /usr/lib/systemd/system vim prometheus.service [Unit] DescriptionPrometheus Server Documentationhttps://prometheus.io Afternetwork.target[Service] Typesimple ExecStart/usr/local/prometheus/prometheus
–config.file/usr/local/prometheus/prometheus.yml
–storage.tsdb.path/usr/local/prometheus/data/
–storage.tsdb.retention.time15d
–web.enable-lifecycleExecReload/bin/kill -HUP \(MAINPID Restarton-failure[Install] WantedBymulti-user.targetsystemctl start prometheus.service systemctl enable prometheus.service netstat -lntp | grep 9090 浏览器访问验证 2.2 部署 Exporters监控本机 上传 node_exporter-1.3.1.linux-amd64.tar.gz 到 /opt 目录中并解压 cd /opt/ tar xf node_exporter-1.3.1.linux-amd64.tar.gz mv node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter cd /usr/local/node_exporter mv node_exporter /usr/local/bin/配置启动文件 cd /usr/lib/systemd/system vim node_exporter.service [Unit] Descriptionnode_exporter Documentationhttps://prometheus.io/ Afternetwork.target[Service] Typesimple ExecStart/usr/local/bin/node_exporter \ --collector.ntp \ --collector.mountstats \ --collector.systemd \ --collector.tcpstatExecReload/bin/kill -HUP \)MAINPID Restarton-failure[Install] WantedBymulti-user.targetsystemctl start prometheus.service systemctl enable prometheus.service netstat -lntp | grep node_exporter 关联prometheus监控9100端口 cd /usr/local/prometheus/ vim prometheus.yml 末尾添加

  • job_name: node_exporterscheme: httpmetrics_path: /metricsstatic_configs:- targets:- 192.168.9.113:9100labels:service: node_exportercurl -X POST http://192.168.9.113:9090/-/reload 重新载入配置 浏览器查看 2.3 如何监控其他主机 cd /usr/local/bin/ scp node_exporter 192.168.9.210:pwd cd /usr/lib/systemd/system scp node_exporter.service 192.168.9.210:pwd将本地的配置文件和启动文件复制到需要监控的主机需监控主机操作 systemctl start node_exporter.service systemctl enable node_exporter.service netstat -lntp | grep 9100 普罗米修斯服务器 cd /usr/local/prometheus/ vim prometheus.yml static_configs:- targets:- 192.168.9.113:9100- 192.168.9.210:9100 #添加需要监控的服务器labels:service: node_exportercurl -X POST http://192.168.9.113:9090/-/reload重载 2.4 监控mysql数据库 mysql服务器 cd /opt 上传mysqld_exporter-0.14.0.linux-amd64.tar.gztar xf mysqld_exporter-0.14.0.linux-amd64.tar.gz cd mysqld_exporter-0.14.0.linux-amd64/ mv mysqld_exporter /usr/local/bin/ mysqld_exporter –help cd /usr/lib/systemd/system vim mysqld_exporter.service [Unit] Descriptionmysqld_exporter Documentationhttps://prometheus.io/ Afternetwork.target[Service] Typesimple ExecStart/usr/local/bin/mysqld_exporter –config.my-cnf/etc/my.cnfExecReload/bin/kill -HUP $MAINPID Restarton-failure[Install] WantedBymulti-user.target修改 MySQL 配置文件 vim /etc/my.cnf hostlocalhost userexporter passwordabc123授权 exporter 用户 mysql -u root -pabc123 create user exporterlocalhost identified by abc123 grant process, replication client, select on . to exporterlocalhost flush privileges; quit systemctl restart mysqld_exporter.service systemctl enable mysqld_exporter.service netstat -lntp | grep 9104普罗米修斯服务器 cd /usr/local/prometheus vim prometheus.yml
  • job_name: mysqld_exporterscheme: httpmetrics_path: /metricsstatic_configs:- targets:- 192.168.9.111:9104labels:service: mysqld 末尾添加systemctl reload prometheus.service 2.5 监控nginx服务器 上传nginx-1.12.0.tar.gz、nginx-module-vts-0.1.18.tar.gz、 nginx-vts-exporter-0.10.3.linux-amd64.tar.gzuseradd -M -s /sbin/nologin nginx tar xf nginx-module-vts-0.1.18.tar.gz mv nginx-module-vts-0.1.18 /usr/local/nginx-module-vts tar xf nginx-1.12.0.tar.gz cd nginx-1.12.0/ ./configure –prefix/usr/local/nginx –usernginx –groupnginx –with-http_stub_status_module –with-http_ssl_module –add-module/usr/local/nginx-module-vtsmake -j2 make install修改 nginx 配置文件启动 nginx cd /usr/local/nginx/conf81 server {82 listen 8080;83 vhost_traffic_status off;84 allow 127.0.0.1;85 allow 192.168.9.113;86 87 location /nginx-status {88 stub_status on;89 access_log off;90 }91 location /vts-status {92 vhost_traffic_status_display;93 vhost_traffic_status_display_format html;94 }95 }ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ nginx -t cd /usr/lib/systemd/system vim nginx.service [Unit] Descriptionnginx Afternetwork.target[Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStart/usr/local/nginx/sbin/nginx ExecReload/bin/kill -s HUP \(MAINPID ExecStop/bin/kill -s QUIT \)MAINPID PrivateTmptrue[Install] WantedBymulti-user.targetsystemctl start nginx.service netstat -lntp | grep nginx 解压 nginx-exporter启动 nginx-exporter tar xf nginx-vts-exporter-0.10.3.linux-amd64.tar.gz cd nginx-vts-exporter-0.10.3.linux-amd64/ mv nginx-vts-exporter /usr/local/bin/ cd /usr/lib/systemd/system vim nginx_vts_exporter.service [Unit] Descriptionnginx-exporter Documentationhttps://prometheus.io/ Afternetwork.target[Service] Typesimple ExecStart/usr/local/bin/nginx-vts-exporter -nginx.scrape_urihttp://localhost:8080/vts-status/format/jsonExecReload/bin/kill -HUP $MAINPID Restarton-failure[Install] WantedBymulti-user.targetsystemctl start nginx_vts_exporter.service systemctl enable nginx_vts_exporter.servicenginx_vts_exporter –help netstat -lntp | grep 9913普罗米修斯服务器 vim prometheus.yml
  • job_name: nginx_vts_exporterscheme: httpmetrics_path: /metricsstatic_configs:- targets:- 192.168.9.111:9913labels:service: nginx 最后添加 3.部署 Grafana 进行展示  上传grafana-7.4.0-1.x86_64.rpm rpm -ivh grafana-7.4.0-1.x86_64.rpmsystemctl start grafana-server.service systemctl enable grafana-server.service netstat -lntp | grep 3000 浏览器访问 如何查看其他nodeport节点数据 导入 grafana 监控面板 浏览器访问https://grafana.com/grafana/dashboards 在页面中搜索 node exporter 选择适合的面板点击 Copy ID 或者 Download JSON