prometheus+grafana的安装与部署及优点

一、Prometheus 的优点

1、非常少的外部依赖,安装使用超简单;

2、已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等;

3、服务自动化发现;

4、直接集成到代码;

5、设计思想是按照分布式、微服务架构来实现的;

6、多维数据模型:由度量名称和键值对标识的时间序列数据;

7、支持多种exporter采集数据;

8、PromQL:一种灵活的查询语言,可以利用多维数据完成复杂的查询;

9、不依赖分布式存储,单个服务器节点可直接工作(不需要安装数据库,直接使用即可,内置集成了数据库不需要重新的部署);

10、基于HTTP的pull方式采集时间序列数据;

11、推送时间序列数据通过PushGateway组件支持,目标主机上报数据到PushGateway,普罗米修斯从PushGateway拉取数据,这个是可以跨网段的;

12、通过服务发现或静态配置发现目标;

13、多种图形模式及仪表盘支持(grafana);

14、高效的存储,每个采集数据占用3.5bytes左右,300万的时间序列,30s的时间间隔,保留60天,消耗磁盘大约200G;

15、做高可用,对数据进行异地备份。联邦集群,部署多套普罗米修斯,每套普罗米修斯可以在不同的机房,然后将这些普罗米修斯汇总到一个普罗米修斯,那么就可以将各个地方的数据,整体收集上来了。

二、Prometheus 的组件与架构

Prometheus生态系统由多个组件组成,其中许多组件是可选的:

1、主要的Prometheus server,用于存储时间序列数据。

2、用于检测应用程序代码的客户端库。

3、用于支持short-lived工作的推送网关(push gateway)。

4、针对HAProxy,StatsD,Graphite等服务的exporters。

5、一个alertmanager处理警报管理器。

6、各种支持工具。

大多数Prometheus组件都是用Go编写的,因此很容易构建和部署为静态二进制文件。

三、prometheus的组件及其作用

1)Prometheus Server:收集指标和存储时间序列数据,并提供查询接口(采集,存储,查询);

2)ClientLibrary:客户端库;

3)Push Gateway:短期存储指标数据。主要用于临时性的任务,各个目标主机可以上报数据到pushgateway,,然后prometheus server统一从pushgateway拉取数据;

4)Exporters:采集已有的第三方服务监控指标并暴露metrics(类似于zabbix agent,但是exporter有很多种,针对不同的监控指标);

5)Alertmanager:从prometheus server端收到alters之后,会进行去重,分组,并且路由到接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉;

6) Web UI:简单的Web控制台;

普罗米修斯服务端是内置了TSDB的数据库,是存储在本地的文件系统当中。存储了采集被监控端数据指标。获取指标有两种方式:1)一种直接是从pushgateway这里获取被监控指标,这是一个独立的组件,主要完成短周期任务暴露的指标,比如定时任务。(短周期任务不是每分钟都有的指标,可能在运行任务的时候才会产生指标。所以可以将临时的指标汇总到pushgateway,然后有pushgateway统一的暴露给服务端去采集);

7)另外一种就是主要使用持久性的应用,比如nginx,mysql还要微服务jar包,这些都属于持久性运行任务的;

使用这种任务的监控就是采用exporter方式了。会配置exporter这样一个组件,主要是用来采集指标暴露给服务端。

Prometheus 根据配置的作业,直接从数据源pull拉取或者通过中间推送网关(push gateway),获取度量值Metrics。它在本地存储所有获取的样本,并在此数据上运行规则,以从现有数据聚合和记录新的时间序列,或者生成警报。Grafana或其他API使用者可用于可视化收集的数据。

服务端采集好之后就会存储在tsdb数据库当中,可以通过其ui去查看,因为其通过了http服务就可以访问其ui了。在ui上可以通过promql完成数据的查询。(export--->prometheus(TSDB)---->promsql);

告警是由altermanager提供的,在普罗米修斯这里定义告警规则,普罗米修斯这里会周期的评估当前采集的指标是否触发了告警规则,如果触发了会将事件推送给altermanger。altermanger会根据自己相关的逻辑处理后发给接收人,提供email

普罗米修斯实现了服务的发现,也就是可以自动的找到被监控端,这个需要在普罗米修斯的配置文件里面去配置。有了服务发现就不要一个一个的去配置了,让被监控端自动纳入监控。

普罗米修斯从目标主机拉取数据的时候有两种方式,一种是静态的,也就是我们部署exporter,静态的采集指标,也可以配置服务发现,自动的发现指标数据。通过服务发现和exporter采集到的数据的方式都是采用了默认的pull方式拉取指标的,也可以使用pushgateway上报到prometheus当中。

四、监控指标数据模型

数据模型:

1)Prometheus将所有数据存储为时间序列(存储的时候都会记录时间,并且存储到时序的数据库里面,也就是内置的TSDB);

2)具有相同度量名称以及标签属于同一个指标(指标名称是一样,但是标签是不一样的);

3)每个时间序列都由度量标准名称和一组键值对(称为标签)唯一标识;

通过标签查询指定指标。

指标格式 :指标名称加上多个标签

<metric name>{<label name>=<label value>,...}

在配置被监控端这里,要配置监控谁,在配置被监控端,必须要暴露指标出来,这种指标以https的方式给暴露出来,暴露出来之后在配置文件当中配置被监控端,最后就会被普罗米修斯给采集到,如果以上正确配置,在普罗米修斯的图形界面targets可以看到被监控端,也可以通过指标名称查看采集的数据了。这个就相当于数据库,可以提供promql来查询数据,并且通过图表绘制出来;

五、实验

1、Prometheus监控安装部署1、环境及软件工具准备

1)基础环境准备,两台主机,规划信息如下:

2)关闭selinux;

vi编辑 /etc/selinux/config 文件,修改SELINUX的值为disabled

#注意修改完毕之后需要重启linux服务

SELINUX=disabled

3)关闭防火墙。
# 1 关闭firewalld服务
systemctl stop firewalld
systemctl disable firewalld
# 2 关闭iptables服务
systemctl stop iptables
systemctl disable iptables
4)prometheus官网下载:
通过以下链接下载最新版本:
https://github.com/prometheus/prometheus/releases/download/v2.45.0/prometheus-2.45.0.linux-amd64.tar.gz
5)node_exporter下载地址:


可以从prometheus官网下载
通过以下链接下载最新版本:

https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
6)grafana官网下载 :

可以从prometheus官网下载

这里下载最新版本:

 https://dl.grafana.com/enterprise/release/grafana-enterprise-10.0.2-1.x86_64.rpm

2、prometheus安装

1)将下载的prometheus安装包上传到监控及其/opt目录下
[root@master opt]# ls -lh
总用量 87M
-rw-r--r--. 1 root root 87M 7月  19 17:21 prometheus-2.45.0.linux-amd64.tar.gz
[root@master opt]#
2)解压安装prometheus
[root@master opt]# tar -xzvf prometheus-2.45.0.linux-amd64.tar.gz
[root@master opt]# mv prometheus-2.45.0.linux-amd64 prometheus
[root@master opt]# ls -lh
总用量 87M
drwxr-xr-x. 4 1001  123 132 6月  23 23:45 prometheus
-rw-r--r--. 1 root root 87M 7月  19 17:21 prometheus-2.45.0.linux-amd64.tar.gz
[root@master opt]#
3)进入到 /opt/prometheus 目录启动prometheus
复制[root@master opt]# cd prometheus
[root@master prometheus]# ./prometheus
ts=2023-07-19T09:32:03.885Z caller=main.go:534 level=info msg="No time or size retention was set so using the default time retention" duration=15d
ts=2023-07-19T09:32:03.886Z caller=main.go:578 level=info msg="Starting Prometheus Server" mode=server version="(version=2.45.0, branch=HEAD, revision=8ef767e396bf8445f009f945b0162fd71827f445)"
ts=2023-07-19T09:32:03.887Z caller=main.go:583 level=info build_context="(go=go1.20.5, platform=linux/amd64, user=root@920118f645b7, date=20230623-1549, tags=netgo,builtinassets,stringlabels)"
ts=2023-07-19T09:32:03.887Z caller=main.go:584 level=info host_details="(Linux 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 2332 UTC 2018 x86_64 master (none))"
ts=2023-07-19T09:32:03.887Z caller=main.go:585 level=info fd_limits="(soft=4096, hard=4096)"
ts=2023-07-19T09:32:03.887Z caller=main.go:586 level=info vm_limits="(soft=unlimited, hard=unlimited)"
ts=2023-07-19T09:32:03.893Z caller=web.go:562 level=info component=web msg="Start listening for connections" address=0.0.0.0:9090
ts=2023-07-19T09:32:03.896Z caller=main.go:1019 level=info msg="Starting TSDB ..."
ts=2023-07-19T09:32:03.901Z caller=tls_config.go:274 level=info component=web msg="Listening on" address=[::]:9090
ts=2023-07-19T09:32:03.901Z caller=tls_config.go:277 level=info component=web msg="TLS is disabled." http2=false address=[::]:9090
ts=2023-07-19T09:32:03.913Z caller=head.go:595 level=info component=tsdb msg="Replaying on-disk memory mappable chunks if any"
ts=2023-07-19T09:32:03.913Z caller=head.go:676 level=info component=tsdb msg="On-disk memory mappable chunks replay completed" duration=15.4µs
ts=2023-07-19T09:32:03.913Z caller=head.go:684 level=info component=tsdb msg="Replaying WAL, this may take a while"
ts=2023-07-19T09:32:03.914Z caller=head.go:755 level=info component=tsdb msg="WAL segment loaded" segment=0 maxSegment=0
ts=2023-07-19T09:32:03.914Z caller=head.go:792 level=info component=tsdb msg="WAL replay completed" checkpoint_replay_duration=41.9µs wal_replay_duration=1.1234ms wbl_replay_duration=11.2µs total_replay_duration=1.3374ms
ts=2023-07-19T09:32:03.916Z caller=main.go:1040 level=info fs_type=XFS_SUPER_MAGIC
ts=2023-07-19T09:32:03.916Z caller=main.go:1043 level=info msg="TSDB started"
ts=2023-07-19T09:32:03.916Z caller=main.go:1224 level=info msg="Loading configuration file" filename=prometheus.yml
ts=2023-07-19T09:32:03.928Z caller=main.go:1261 level=info msg="Completed loading of configuration file" filename=prometheus.yml totalDuration=11.5929ms db_storage=15.8µs remote_storage=19.2µs web_handler=10.7µs query_engine=14µs scrape=1.0045ms scrape_sd=52.4µs notify=42.7µs notify_sd=29.6µs rules=11.8µs tracing=32.6µs
ts=2023-07-19T09:32:03.928Z caller=main.go:1004 level=info msg="Server is ready to receive web requests."
ts=2023-07-19T09:32:03.928Z caller=manager.go:995 level=info component="rule manager" msg="Starting rule manager..."
4)待启动完成后,用以下地址直接无密码登录
http://192.168.20.231:9090/

如下图所示:

5)为prometheus服务创建service并设置开机自动启动
vim /usr/lib/systemd/system/prometheus.service

编辑如下内容,大家根据自己实际的安装目录进行编辑

[root@master ~]# cat /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@master ~]#

使service生效并且设置开机自启动

systemctl daemon-reload
systemctl enable prometheus
6)reboot重启系统,查看服务状态是正常的
[root@master ~]# systemctl status prometheus
● prometheus.service - prometheusLoaded: loaded (/usr/lib/systemd/system/prometheus.service; enabled; vendor preset: disabled)Active: active (running) since 三 2023-07-19 0933 CST; 43s agoDocs: https://prometheus.io/Main PID: 5976 (prometheus)CGroup: /system.slice/prometheus.service└─5976 /opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.433Z caller=head.go:676 level=info component=tsdb msg="On-disk memory mappable chunks replay completed" duration=55.101μs
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.433Z caller=head.go:684 level=info component=tsdb msg="Replaying WAL, this may take a while"
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.437Z caller=head.go:755 level=info component=tsdb msg="WAL segment loaded" segment=0 maxSegment=0
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.437Z caller=head.go:792 level=info component=tsdb msg="WAL replay completed" checkpoint_replay_duration=1.016…ion=3.831257ms
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.439Z caller=main.go:1040 level=info fs_type=XFS_SUPER_MAGIC
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.439Z caller=main.go:1043 level=info msg="TSDB started"
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.439Z caller=main.go:1224 level=info msg="Loading configuration file" filename=/opt/prometheus/prometheus.yml
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.444Z caller=main.go:1261 level=info msg="Completed loading of configuration file" filename=/opt/prometheus/prometheus.yml…μs
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.444Z caller=main.go:1004 level=info msg="Server is ready to receive web requests."
7月 19 0934 master prometheus[5976]: ts=2023-07-19T0134.444Z caller=manager.go:995 level=info component="rule manager" msg="Starting rule manager..."
Hint: Some lines were ellipsized, use -l to show in full.
[root@master ~]#

3、grafana安装

1)将下载的granfa安装包上传的监控机器/opt目录下,并对其解压安装
[root@master opt]# ll
总用量 174664
-rw-r--r--. 1 root root 87661825 7月  19 10:03 grafana-enterprise-10.0.2-1.x86_64.rpm
drwxr-xr-x. 5 1001  123      144 7月  19 2023 prometheus
-rw-r--r--. 1 root root 91189594 7月  19 2023 prometheus-2.45.0.linux-amd64.tar.gz
[root@master opt]# yum install grafana-enterprise-10.0.2-1.x86_64.rpm
2)待安装完毕后,启动grafana服务,查看到服务状态如下正常。
[root@master ~]#  systemctl daemon-reload
[root@master ~]# systemctl start grafana-server
[root@master ~]# systemctl status grafana-server
● grafana-server.service - Grafana instanceLoaded: loaded (/usr/lib/systemd/system/grafana-server.service; disabled; vendor preset: disabled)Active: active (running) since 三 2023-07-19 1015 CST; 25s agoDocs: http://docs.grafana.orgMain PID: 6945 (grafana)CGroup: /system.slice/grafana-server.service└─6945 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-server.pid --packaging=rpm cfg:default.paths.logs=/var/log/gr...7月 19 1015 master grafana[6945]: logger=ngalert.state.manager t=2023-07-19T1015.24341291+08:00 level=info msg="Warming state cache for startup"
7月 19 1015 master grafana[6945]: logger=caching.service t=2023-07-19T1015.24445863+08:00 level=warn msg="Caching service is disabled"
7月 19 1015 master grafana[6945]: logger=report t=2023-07-19T1015.244980141+08:00 level=warn msg="Scheduling and sending of reports disabled, SMTP is not configured ... to enable."
7月 19 1015 master grafana[6945]: logger=http.server t=2023-07-19T1015.250259745+08:00 level=info msg="HTTP Server Listen" address=[::]:3000 protocol=http subUrl= socket=
7月 19 1015 master grafana[6945]: logger=sqlstore.transactions t=2023-07-19T1015.267350682+08:00 level=info msg="Database locked, sleeping then retrying" error="data...e is locked"
7月 19 1015 master grafana[6945]: logger=ngalert.state.manager t=2023-07-19T1015.268604707+08:00 level=info msg="State cache has been initialized" states=0 duration=25.191797ms
7月 19 1015 master grafana[6945]: logger=ticker t=2023-07-19T1015.268828111+08:00 level=info msg=starting first_tick=2023-07-19T1020+08:00
7月 19 1015 master grafana[6945]: logger=ngalert.multiorg.alertmanager t=2023-07-19T1015.268860012+08:00 level=info msg="starting MultiOrg Alertmanager"
7月 19 1016 master grafana[6945]: logger=grafana.update.checker t=2023-07-19T1016.035234839+08:00 level=info msg="Update check succeeded" duration=795.319198ms
7月 19 1016 master grafana[6945]: logger=plugins.update.checker t=2023-07-19T1016.117663666+08:00 level=info msg="Update check succeeded" duration=874.346258ms
Hint: Some lines were ellipsized, use -l to show in full.
[root@master ~]#
3)将grafana-server服务设置为开机自启动
systemctl enable grafana-server
4)通过以下地址访问garfana,并且配置相应的数据源
http://192.168.20.231:3000/login

登录界面如下所示,默认用户名及密码分别是admin,admin

5)登录进入grafana系统后,对数据源进行配置,点击,add your first data source,进入添加数据源页面:

6)进入后,点击Prometheus,进入配置页面;

7)编辑HTTP下的URL,这里是主机IP是192.168.20.231,所以填:http://192.68.20.231:9090

8)拉到最底部进行保存,如下所示即为保存成功。

4、监控主机中安装node_exporter

1)在监控主机上安装最新的node_exporter版本

首先在监控主机192.168.20.231上进行安装该组件。

下载最新的node_exporter版本

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

下载完成后如下图所示:

2)对软件压缩包进行解压,并且将安装包放到自己系统安装目录下,我自己放在/usr/local/目录中

[root@master ruanjianfile]# tar -xzf node_exporter-1.6.1.linux-amd64.tar.gz [root@master ruanjianfile]# mv node_exporter-1.6.1.linux-amd64 /usr/local/

3)将安装包中的可执行文件node_exporter拷贝到/usr/local/bin目录中

mv /usr/local/node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/

4)为node_exporter服务创建service服务

vim /usr/lib/systemd/system/node_exporter.service

大家根据自己实际安装目录,写入cat命令相关内容到上述文件中。

[root@master ruanjianfile]# cat /usr/lib/systemd/system/node_exporter.service [Unit] Description=node_exporter Documentation=https://prometheus.io/ After=network.target [Service] Type=simple User=root Group=root ExecStart=/usr/local/bin/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target

5)为node_exporter设置自动启动并启动服务
systemctl daemon-reload
systemctl enable node_exporter
systemctl start node_exporter
6)查看node_exporter服务状态,如下服务状态为正常状态
[root@master ~]# systemctl status node_exporter
● node_exporter.service - node_exporterLoaded: loaded (/usr/lib/systemd/system/node_exporter.service; enabled; vendor preset: disabled)Active: active (running) since 三 2023-07-19 1407 CST; 3min 0s agoDocs: https://prometheus.io/Main PID: 7146 (node_exporter)CGroup: /system.slice/node_exporter.service└─7146 /usr/local/bin/node_exporter7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=thermal_zone
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=time
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=timex
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=udp_queues
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=uname
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=vmstat
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=xfs
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.181Z caller=node_exporter.go:117 level=info collector=zfs
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.182Z caller=tls_config.go:274 level=info msg="Listening on" address=[::]:9100
7月 19 14:25:07 master node_exporter[7146]: ts=2023-07-19T06:25:07.182Z caller=tls_config.go:277 level=info msg="TLS is disabled." http2=f...::]:9100
Hint: Some lines were ellipsized, use -l to show in full.
[root@master ~]#

5、监控主机中进行监控相关参数配置

1)vi编辑修改prometheus中相关配置文件;

主要在对应该控件软件安装目录下/opt/prometheus/prometheus.yml这个文件中;

在原文件的scrape_configs模块下增加如下配置内容:

  - job_name: 'master_prometheus'static_configs:- targets: ['192.168.20.231:9100']

修改后/opt/prometheus/prometheus.yml如下所示:

复制[root@master prometheus]# cat prometheus.yml
# my global config
global: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 configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=` 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: 'master_prometheus'static_configs:- targets: ['192.168.20.231:9100']

2)检查配置是否正确:

养成好习惯,每次修改配置文件完成,用promtool检测配置文件是否正确。如下检查配置文件正确方可执行下一步。

[root@master prometheus]# /opt/prometheus/promtool check config /opt/prometheus/prometheus.yml
Checking /opt/prometheus/prometheus.ymlSUCCESS: /opt/prometheus/prometheus.yml is valid prometheus config file syntax[root@master prometheus]#

3)重启prometheus服务进行相关测试
systemctl restart prometheus

打开如下测试地址

http://192.168.20.231:9090/targets

如下图所示,可以看到targets已经增加了对监控主机master_prometheus的监控。

6、被监控主机中安装node_exporter及进行参数配置

首先在被监控主机192.168.20.232上进行安装该组件。

1)安装步骤参考监控主机中node_exporter安装这个章节,安装方法步骤一样。
2)在监控主机192.168.20.231上修改对应配置文件,

修改/opt/prometheus/prometheus.yml这个文件后面,添加如下内容:

  - job_name: "node1-prometheus"static_configs:- targets: ['192.168.20.232:9100']

3)检测配置文件正常后,重启服务
[root@master prometheus]# /opt/prometheus/promtool check config /opt/prometheus/prometheus.yml
Checking /opt/prometheus/prometheus.ymlSUCCESS: /opt/prometheus/prometheus.yml is valid prometheus config file syntax[root@master prometheus]# systemctl restart prometheus
4)待服务起来后,打开下面地址进行测试
http://192.168.20.231:9090/targets

正常如下图所示,targets已经增加了对被监控主机node1的监控。

7、grafana中添加配置监控模板

1)如图点击“+”号后,选择import dashboard

2)如下图,搜索系统默认模板8919,然后点击Load

3)点Load后,稍等会,grafana会直接从官方网站导入编号为8919的面板如下图所示:

4)选择数据源Prometheus-1,点击“Import”,显示master和node1监控界面显示如下图所示:

六、总结

至此、整套Prometheus监控系统已经部署完毕,并且已经可以正常监控。但是其展示的只是它本身最基本的功能,其它组件及模块相关的功能配置,要靠大家自行去研究学习,那样方可发挥出它强大的监控系统功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/319856.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【区块链】比特币架构

比特币架构 2009年1月&#xff0c;在比特币系统论文发表两个月之后&#xff0c;比特币系统正式运行并开放了源码&#xff0c;标志着比特币网络的正式诞生。通过其构建的一个公开透明、去中心化、防篡改的账本系统&#xff0c;比特币开展了一场规模空前的加密数字货币体验。在区…

Linux学习之Tcp与Udp

目录 UDP Udp协议的格式 UDP的传输特性 UDP的缓冲区 基于UDP的应用层协议 TCP协议 TCP的报文格式 1.ACK确认应答机制 2.超时重传 3.TCP的链接管理机制 为什么要三次握手呢&#xff1f; 理解TIME_WAIT状态 流量控制&#xff08;可靠性效率&#xff09; 滑动窗口 拥塞…

深度学习中的注意力机制二(Pytorch 16)

一 Bahdanau 注意力 通过设计一个 基于两个循环神经网络的编码器‐解码器架构&#xff0c;用于序列到序列学习。具体来说&#xff0c;循环神经网络编码器将长度可变的序列转换为固定形状的上下文变量&#xff0c;然后循环神经网络 解码器根据生成的词元和上下文变量按词元生成…

【iOS】KVO

文章目录 前言一、KVO使用1.基本使用2.context使用3.移除KVO通知的必要性4.KVO观察可变数组 二、代码调试探索1.KVO对属性观察2.中间类3.中间类的方法3.dealloc中移除观察者后&#xff0c;isa指向是谁&#xff0c;以及中间类是否会销毁&#xff1f;总结 三、KVO本质GNUStep窥探…

IDEA基于Maven构建项目

IDEA基于Maven构建项目 一、Maven简介 Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型的概念&#xff08;POM&#xff09;&#xff0c;Maven 可以从中心信息中管理项目的构建、报告和文档。 Apache Maven 可以用于构建和管理任何基于 Java 的项目。 下载地址…

EPAI手绘建模APP颜色、贴图、材质、样式

⑦ 颜色选择页面 1) 颜色环选色。 图 65 颜色选择器-颜色环 2) RGB选色。 图 66 颜色选择器-RGB 3) HSL选色。 图 67 颜色选择器-HSL 4) 国风颜色库选色。 图 68 颜色选择器-国风 5) CSS颜色库选色。 图 69 颜色选择器-CSS 6) 历史颜色&#xff1a;保存最近使用的多个颜色&…

OpenCV如何使用 GDAL 读取地理空间栅格文件(72)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV的周期性噪声去除滤波器(70) 下一篇 :OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 目录 目标 代码&#xff1a; 解释&#xff1a; 如何使用 GDAL 读取栅格数据 注意 …

ElasticSearch自动补全

一、拼音分词器&#xff1a; 当用户在搜索框输入字符时&#xff0c;我们应该提示出与该字符有关的搜索项&#xff0c;如图&#xff1a; 这种根据用户输入的字母&#xff0c;提示完整词条的功能&#xff0c;就是自动补全了。 GET /_analyze {"text":"我爱螺蛳粉…

.Net MAUI 搭建Android 开发环境

一、 安装最新版本 VS 2022 安装时候选择上 .Net MAUI 跨平台开发 二、安装成功后,创建 .Net MAUI 应用 三、使用 VS 自带的 Android SDK 下载 ,Android镜像、编译工具、加速工具 四、使用Vs 自带的 Android Avd 创建虚拟机 五、使用 Android 手机真机调试

【小菜鸟之---Ansible基础详解】

文章目录 1 【Ansible简介】1.1简介1.2 Ansible 特点1.3 Ansible的工作机制1.4Ansible任务工作模式 2【安装部署】2.1安装命令2.2 Ansible配置文件2.3主机清单配置2.4 基于ssh免密登录2.5常用命令 3【Ansible常用模块】3.1 ping模块3.2 shell模块3.3 command模块3.4 copy模块3.…

百度下拉框负面信息如何删除?

百度头条360等搜索引擎&#xff0c;作为人们获取信息的主要途径之一。然而&#xff0c;一些知名的企业或个人可能会面临在搜索的下拉框中出现负面信息的问题&#xff0c;这可能对其声誉和形象造成不良影响。小马识途营销顾问根据自身从业经验&#xff0c;针对这类情况提出以下建…

一、写给Android开发者之harmony入门

一、创建新项目 对比 android-studio&#xff1a;ability类似安卓activity ability分为两种类型(Stage模型) UIAbility和Extensionability&#xff08;提供系统服务和后台任务&#xff09; 启动模式 1、 singleton启动模式&#xff1a;单例 2、 multiton启动模式&#xff1…

【软件测试理论002】认识软件缺陷、缺陷生命周期、缺陷分类

目录 1 认识软件缺陷 1.1 什么是软件缺陷 1.2 缺陷存在哪些方面 1.3 软件缺陷示例 1.4 软件缺陷的表现形式 1.5 软件缺陷产生的原因 1.6 软件缺陷的根源 1.7 软件缺陷修复的费用 2 软件缺陷的信息分类 2.1 软件缺陷的生命周期 2.2 软件缺陷的信息 2.3 软件缺陷分类…

Node.js -- mongoose

文章目录 1. 介绍2. mongoose 连接数据库3. 插入文件4. 字段类型5. 字段值验证6. 文档处理6.1 删除文档6.2 更新文档6.3 读取文档 7. 条件控制8. 个性化读取9. 代码模块化 1. 介绍 Mongoose是一个对象文档模型库&#xff0c;官网http://www.mongoosejs.net/ 方便使用代码操作mo…

CNN实现卫星图像分类(tensorflow)

使用的数据集卫星图像有两类&#xff0c;airplane和lake&#xff0c;每个类别样本量各700张&#xff0c;大小为256*256&#xff0c;RGB三通道彩色卫星影像。搭建深度卷积神经网络&#xff0c;实现卫星影像二分类。 数据链接百度网盘地址&#xff0c;提取码: cq47 1、查看tenso…

Rust Rocket创建第一个hello world的Web程序 Rust Rocket开发常用网址和Rust常用命令

一、Rust Rocket简介 Rust Rocket 是一个用 Rust 语言编写的 Web 应用框架&#xff0c;它结合了 Rust 的安全性和性能优势&#xff0c;以及 Web 开发的便利性。以下是 Rust Rocket 框架的一些优点&#xff1a; 安全性&#xff1a;Rust 是一种注重安全性的编程语言&#xff0c;…

Redis-分片机制

概述 业务需要&#xff1a;由于单台redis内存容量是有限的&#xff0c;无法实现海量的数据实现缓存存储 概念&#xff1a;由多个redis节点协助工作的机制就是redis的分片机制 作用&#xff1a;为了实现redis扩容 特点&#xff1a;分片机制把该机制中包含的多台redis缓存服务…

PostgreSQL和openGauss优化器对一个关联查询的SQL优化改写

PostgreSQL和openGauss数据库优化器在merge join关联查询的SQL优化改写 PostgreSQL 查询计划openGauss 查询计划拓展对比 看腻了文章就来听听视频讲解吧&#xff1a;https://www.bilibili.com/video/BV1oH4y137P7/ 数据库类型数据库版本PostgreSQL16.2openGauss6.0 创建测试表…

【Android】Android应用性能优化总结

AndroidApp应用性能优化总结 最近大半年的时间里&#xff0c;大部分投在了某国内新能源汽车的某款AndroidApp开发上。 由于该App是该款车上&#xff0c;常用重点应用。所以车厂对应用性能的要求比较高。 主要包括&#xff1a; 应用冷启动达到***ms。应用热(温)启动达到***ms应…

C语言 | Leetcode C语言题解之第70题爬楼梯

题目&#xff1a; 题解&#xff1a; int climbStairs(int n) {double sqrt5 sqrt(5);double fibn pow((1 sqrt5) / 2, n 1) - pow((1 - sqrt5) / 2, n 1);return (int) round(fibn / sqrt5); }