Grafana+Zabbix+Prometheus 监控系统
环境说明php
软件html | 版本node | 操做系统mysql | IP地址linux |
Grafananginx | 5.4.3-1c++ | Centos7.5web | 192.168.18.231正则表达式 |
Prometheussql | 2.6.1 | Centos7.5 | 192.168.18.232 |
Zabbix | 4.0.4 | Centos7.5 | 192.168.18.233 |
1、部署Grafana
Grafana是一个开源的指标量监测和可视化工具,官方网站为:https://grafana.com/。Grafana的安装很是简单,官方就有软件仓库能够直接使用,也能够经过docker镜像等方式直接本地启动。还能够直接下载rpm包、二进制包进行安装。你们能够从 https://grafana.com/grafana/download 下载rpm安装包。
1.1 安装
cd /usr/local/src/
wget https://dl.grafana.com/oss/release/grafana-5.4.3-1.x86_64.rpm
yum localinstall grafana-5.4.3-1.x86_64.rpm
#默认状况下,grafana的配置存储于sqlite3中,若是你想使用其余存储后端,如mysql,postgresql等,请参考官方文档配置: http://docs.grafana.org/installation/configuration/
1.2 启动
#启动服务
systemctl start grafana-server
#查看服务是否正常启动
systemctl status grafana-server
#自启动
systemctl enable grafana-server
1.3 防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
yum install -y iptables-services
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT
#重启
systemctl restart iptables.service
systemctl enable iptables.service
#后续添加先重启再保存
service iptables restart
service iptables save
1.4 访问
访问 http://192.168.18.231:3000 就能够看到登陆界面了。默认的用户名和密码都是admin。Grafana的配置文件位于/etc/grafana/grafana.ini,通常状况下无需修改配置文件。
2、部署zabbix
2.1 部署LNMP环境
2.1.1 安装Nginx
这里使用nginx最新稳定版本 nginx-1.14.2,安装过程以下:
yum -y install gcc gcc-c++ make zlib pcre pcre-devel openssl openssl-devel
useradd -s /sbin/nologin www
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure \ --user=www \ --group=www \ --prefix=/usr/local/nginx \ --sbin-path=/usr/local/nginx/sbin/nginx \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --error-log-path=/usr/local/nginx/logs/error.log \ --http-log-path=/usr/local/nginx/logs/access.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/lock/subsys/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_gzip_static_module \ --with-pcre
make
make install
#设置自启
vim /etc/rc.local
/usr/local/nginx/sbin/nginx
2.1.2 安装MySQL
一、安装
安装mysql5.7版本,这里使用mysql官方的yum源进行安装
cd /usr/local/src/
wget https://repo.mysql.com/mysql57-community-release-el7.rpm
rpm -ivh mysql57-community-release-el7.rpm
yum install -y mysql-server mysql mysql-devel
二、启动mysql
systemctl start mysqld
三、修改密码
mysql启动后,系统会自动为root用户设置一个临时密码,获取MySQL的临时密码:
grep "password" /var/log/mysqld.log
mysql5.7版本后,对密码安全性增强了不少,临时密码只能用于登陆,登陆后须要立刻修改密码,否则没法执行任何sql操做,同时,对密码长度和密码强度有了更高要求,必须符合长度8,且必须含有数字,小写或大写字母,特殊字符。重置mysql的root密码了,执行以下命令:
mysql -uroot -p
set password=password('Admin@123'); flush privileges;
2.1.3 安装PHP
一、安装依赖库
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel openldap openldap-devel
二、安装PHP7
PHP官方下载地址:http://www.php.net/downloads.php
cd /usr/local/src/
wget http://cn2.php.net/distributions/php-7.2.15.tar.gz
tar zxvf php-7.2.15.tar.gz
cd php-7.2.15
cp -frp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-zlib --with-curl --with-gd --with-gettext --enable-bcmath --enable-sockets --with-ldap --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo -enable-tokenizer --enable-zip
vim Makefile
找到 /^EXTRA_LIBS 开头行,行尾加上 “-llber”
#编译安装
make
make install
cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/
三、PHP配置优化
vim /usr/local/php7/etc/php.ini
post_max_size = 16M max_execution_time = 300 memory_limit = 128M max_input_time = 300 date.timezone = Asia/Shanghai
若是修改了参数不生效,参考文章:http://www.javashuo.com/article/p-odcmfjsv-cr.html
2.1.4 配置lnmp环境
一、修改nginx配置文件nginx.conf,在server下添加php-fpm的整合配置,内容以下:
vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; include fastcgi_params; }
二、修改php-fpm配置文件,启用php-fpm默认配置
cd /usr/local/php7/etc
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf
2.1.5 启动lnmp服务
systemctl start php-fpm
/usr/local/nginx/sbin/nginx
2.2 安装zabbix
2.2.1 准备工做
一、安装依赖库
yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel
二、建立用户
groupadd zabbix
useradd -g zabbix zabbix
2.2.2 安装zabbix server
一、编译安装
cd /usr/local/src/
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.4/zabbix-4.0.4.tar.gz
tar zxvf zabbix-4.0.4.tar.gz
cd zabbix-4.0.4
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
make
make install
说明:configure配置参数含义:
1)–with-mysql:表示启用MySQL做为后端存储,若是MySQL客户端类库再也不默认的位置(rpm包方式安装的MySQL,MySQL客户端类库在默认位置,所以只需指定“–with-mysql”便可,无需指定具体路径),须要在MySQL的配置文件中指定路径,指定方法是指定mysql_config的路径,例如,若是是源码安装的mysql,安装路径为/usr/local/mysql,就能够这么指定:“–with-mysql=/usr/local/mysql/bin/mysql_config”。
2)–with-net-snmp:用于支持SNMP监控所须要的组件。
3)–with-libcurl:用于支持WEB监控,VMware监控及SMTP认证所须要的组件,对于SMTP认证,须要7.20.0或以上版本。
4)–with-libxml2:用于支持VMware监控所须要的组件。
5)–enable-server、 –enable-agent、和–enable-proxy分别表示启用zabbix的server、agent和proxy组件。
二、建立软链接
因为zabbix启动脚本路径默认指向的是/usr/local/sbin路径,而咱们zabbix的安装路径是/usr/local/zabbix,所以,须要提早建立以下软连接:
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
2.2.3 建立数据库和初始化表
一、登陆数据库,建立一个zabbix数据库和zabbix用户,操做以下:
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin; grant all privileges on zabbix.* to zabbix@localhost identified by 'Admin@123'; flush privileges;
二、开始导入zabbix的表信息,须要执行三个sql文件,sql文件在zabbix源码包中database/mysql/目录下。先进入这个mysql目录,而后进入sql命令行,按照以下SQL语句执行顺序导入SQL,执行以下操做:
cd database/mysql/
mysql -uroot -p
use zabbix; source schema.sql; source images.sql; source data.sql;
2.2.4 配置zabbix server端
vim /usr/local/zabbix/etc/zabbix_server.conf
ListenPort=10051 LogFile=/tmp/zabbix_server.log DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ListenIP=0.0.0.0 StartPollers=5 StartTrappers=10 StartDiscoverers=10 AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
参数说明:
1)ListenPort是zabbix server默认监听端口
2)LogFile用来指定zabbix server日志输出路径
3)DBHost为数据库的地址,若是数据库在本机,可不作修改
4)DBName为数据库名称
5)DBUser为链接数据库的用户名
6)DBPassword为链接数据量对应的用户密码
7)ListenIP为zabbix server监听的IP地址,也就是zabbix server启动的监听端口对哪些ip开放,Agentd为主动模式时,这个值建议设置为0.0.0.0。
8)StartPollers用于设置zabbix serve服务启动时启动Pollers(主动收集数据进程)的数量,数量越多,则服务端吞吐能力越强,同时对系统资源消耗越大。
9)StartTrappers用于设置zabbix server服务启动时启动Trappers(负责处理Agentd推送过来的数据的进程)的数量。Agentd为主动模式时,zabbix server须要设置这个值大一些。
10)StartDiscoverers用于设置zabbix server服务启动时启动Discoverers进程的数量,若是zabbix监控报Discoverers进程忙时,须要提升该值。
11)AlertScriptsPath用来配置zabbix server运行脚本存放目录,一些供zabbix server使用的脚本,均可以放在这里。
2.2.5 启动zabbix_server服务
一、复制启动脚本
cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
cp /usr/local/src/zabbix-4.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_server
chmod +x /etc/init.d/zabbix_agentd
二、开启自启
chkconfig zabbix_server on
chkconfig zabbix_agentd on
三、启动zabbix server
/etc/init.d/zabbix_server start
2.2.6 安装与配置zabbix agent
一、zabbix agent端的安装
zabbix agent端的安装建议采用rpm包方式安装,可从http://repo.zabbix.com/zabbix/下载zabbix的agent端rpm包,版本与zabbix server端保持一致,安装以下:
cd /usr/local/src/
wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.4-1.el7.x86_64.rpm
rpm -ivh zabbix-agent-4.0.4-1.el7.x86_64.rpm
二、zabbix agent端的配置
vim /etc/zabbix/zabbix_agentd.conf,须要修改的内容为以下:
LogFile=/var/log/zabbix/zabbix_agentd.log Server=192.168.18.233 StartAgents=3 ServerActive=192.168.18.233 Hostname=agent233 Include=/etc/zabbix/zabbix_agentd.d/ UnsafeUserParameters=1
参数说明:
1)LogFile:#zabbix agentd日志文件路径
2)Server:#指定zabbix server端IP地址
3)StartAgents:#指定启动agentd进程的数量,默认是3个,设置为0,表示关闭agentd的被动模式(zabbix server主动来agent拉取数据)。
4)ServerActive:#启用agentd的主动模式(zabbix agent主动推送数据到zabbix server),启动主动模式后,agentd将主动将收集到的数据发送到zabbix server端,ServerActive后面指定的ip就是zabbix server端IP。
5)Hostname:#须要监控服务器的主机名或者IP地址,此选择的设置必定要和zabbix web端主机配置中对应的主机名一致。
6)Include:#相关配置均可以放到此目录下,自动生效。
7)UnsafeUserParameters:#启用agent端自定义item功能,设置此参数为1后,就可使用UserParameter指令了。UserParameter用于自定义itme。
三、启动zabbix_agent
systemctl start zabbix-agent
2.3 安装zabbix gui
2.3.1 部署zabbix web
Zabbix web是php代码编写的,将zabbix web安装到/usr/loca/nginx/html目录下,所以,只需将Zabbix web的代码放到此目录便可。Zabbix web的代码在Zabbix 源码包中的frontends/php目录下,将这个php目录拷贝到/usr/loca/nginx/html目录下并更名为zabbix便可完成Zabbix web端的安装。
cp -a /usr/local/src/zabbix-4.0.4/frontends/php/ /usr/local/nginx/html/
cd /usr/local/nginx/html/
mv php/ zabbix
2.3.2 防火墙开启
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
systemctl restart iptables.service
systemctl enable iptables.service
关闭selinux
setenforce 0
2.3.3 访问web
在浏览器输入http://192.168.18.233/zabbix/setup.php,而后会检查zabbix web运行环境是否知足,
下一步检测PHP环境参数,以下图:
配置数据库链接,以下图:
默认的zabbix平台登陆用户名为Admin,密码为zabbix。(注意帐号首字母大写)
到此部署zabbix完成,登入后界面后以下:
3、Grafana与zabbix整合
3.1 安装grafana-zabbix 插件
grafana和zabbix的集成是经过插件方式实现的,所以,须要先安装grafana-zabbix插件,grafana官方已经包含了这个插件,直接使用便可。
3.1.1 查询插件
grafana-cli plugins list-remote|grep zabbix
id: alexanderzobnin-zabbix-app version: 3.10.0
3.1.2 安装插件
grafana-cli plugins install alexanderzobnin-zabbix-app
安装成功以后会提示咱们须要重启grafana 服务,以使插件生效,稍后重启。
3.1.3 安装时钟插件
安装一个clock-panel插件,这个插件是个时钟插件,能够在dashboard上显示时间用。
grafana-cli plugins install grafana-clock-panel
3.1.4 重启grafana
全部须要的插件安装完成后,执行以下命令重启grafana服务:
systemctl restart grafana-server
3.2 配置zabbix数据源
全部准备工做完成后,下面就能够进入Grafana的web界面配置数据源,点击这个“Add data source”
进入以下界面,显示的是默认Grafana自带的数据源:
咱们要添加zabbix,那么zabbix默认是以插件形式存在的,因此点击上图Plugins标签,而后搜索zabbix,以下图所示:
能够看到,这个显示的zabbix插件,就是咱们刚刚安装好的。点击这个插件,进入以下界面:
这里点击“Enable”,启用这个插件。启用zabbix插件以后,再次选择“Data Source”标签,以下图所示:
能够看到,基于zabbix的数据源已经出来了,点击这个数据源,进入以下界面:
http://192.168.18.233/zabbix/api_jsonrpc.php
配置完成以后,点击最下面的“Save &Test”,若是配置有问题会报错提示,若是没有问题会提示成功。
这样zabbix数据源就配置完成了。最后,点击左侧导航中的zabbix图标,选择“Zabbix Server Dashboard”,以下图所示:
能够看到,默认Dashboard已经有数据了,这个数据就是经过上面配置的数据源而来。这只是一个初步配置,后续还有不少能够细化的东西。
若是没有数据,能够修改相关配置,例如对上面CPU这个Panel进行修改,能够这样操做,以下图所示:
此界面是调试出图是否正常的方法,很是重要,首先,图中“$datasource”用来指定数据源,“Query Mode”指定查询模式,有“Metrics、text”等可选项,还有四个选项“Group”、 “Host”、“ Application”、“ Item”,分别对应zabbix中的主机组、主机、应用集和监控项。正常状况下选择“Group”后,会在“Host”中看到此“Group”下的全部主机,“ Application”和“ Item”也是相似的。
3.3 自定义Dashboard
除了zabbix插件自带的Dashboard,咱们还能够自定义须要的Dashboard,点击Grafana左侧导航,选择建立一个Dashboard,以下图所示:
今后图能够看出,默认已经存在一些Panel,能够选择添加,可是在添加以前,须要先作几个变量配置,点击右上角的齿轮按钮,以下图所示:
此界面是对Dashboard进行配置,这里咱们修改Dashboard名称为“ Zabbix Template Linux Server”,其它保存不变,接着,点击上图左侧的“Variables”,而后添加一个Variables,以下图所示:
3.3.1自定义主机组
这里咱们添加了一个group变量,类型为“Query”,对应的标签为主机组,到时候要使用这个变量名就用$group来调用便可。 接着在“Query Options”中的Query方法,这里是一个星号,表明全部组。就设置这么多,最后,点击add,group这个变量就建立好了。
下面解释一下各个参数的做用:
一、General部分
Ø name:变量的名字,好比我这里取名为group,到时候要使用这个变量名就用$group来调用。
Ø type: 变量类型,变量类型有多种,其中query表示这个变量是一个查询语句,type也能够是datasource,datasource就表示该变量表明一个数据源,若是是datasource你能够用该变量修改整个DashBoard的数据源,变量类型还能够是时间间隔Interval等等。这里咱们选择query。
Ø label: 是对应下拉框的名称,默认就是变量名,选择修改成“主机组”。
Ø hide: 有三个值,分别为空,label,variable。选择label,表示不显示下拉框的名字。选择variable表示隐藏该变量,该变量不会在DashBoard上方显示出来。默认选择为空,这里也选默认。
二、Query options部分
Ø Data source: 数据源,不用多说。
Ø Refresh: 什么时候去更新变量的值,变量的值是经过查询数据源获取到的,可是数据源自己也会发生变化,因此要时不时的去更新变量的值,这样数据源的改变才会在变量对应的下拉框中显示出来。Refresh有三个值能够选择,Never:永不更新。On Dashboard Load:在DashBoard加载时更新。On Time Range Change:在一个时间范围内更新。可根据状况进行选项。
Ø Query:查询表达式,不一样的数据源查询表达式都不一样(这些能够到官网上查询),这里因为是要查询zabbix的groups信息,因此表达式为“*”,表明全部。
Ø Regex:正则表达式,用来对抓取到的数据进行过滤,这里默认不过滤。
Ø Sort:排序,对下拉框中的变量值作排序,排序的方式挺多的,默认是disable,表示查询结果是怎样下拉框就怎样显示。此处选disable。
三、Selection Options部分
Ø Multi-value:启用这个功能,变量的值就能够选择多个,具体表如今变量对应的下拉框中能够选多个值的组合。
Ø Include All option:启用这个功能,变量下拉框中就多了一个all选项。
3.3.2自定义主机、item、application
按照这个方式能够建立多个变量(host,application,item、Network)。建立方法和group基本同样,除了name,query不同以外其它都同样。
1、建立变量host
Name:host
Query:$group.*
二、建立变量application
Name:application
Query:$group.$host.*
三、建立变量item
Name:item
Query:$group.$host.$application.*
变量建立完成后,保存,以下图:
3.3.3建立Graph
返回刚刚建立好的“Zabbix Template Linux Server”,点击右上角的添加panel按钮,选择左边的“Graph”,以下图所示:
点击编辑这个panel,进入下图:
这里选择数据源为zabbix-213,而后选择Query Mode为Metrics,因为Grafana已经能够链接到zabbix数据库,因此,Group一项会列出zabbix因此的主机组,接着在Host一项中会列出对应主机组下的全部主机,同理,Application和Item项都会自动列出全部的对应内容,选择一个须要图形展现的监控项便可。
3.3.4安装饼图
grafana-cli plugins install grafana-piechart-panel
全部须要的插件安装完成后,执行以下命令重启grafana服务:
systemctl restart grafana-server
刷新界面就能够看到以下
配置CPU采用饼图
4、部署Prometheus
4.1 Prometheus介绍
4.1.1 Prometheus特色
做为新一代的监控框架,Prometheus 具备如下特色:
1)强大的多维度数据模型
2)灵活而强大的查询语句(PromQL):在同一个查询语句,能够对多个 metrics进行乘法、加法、链接、取分数位等操做。
3)易于管理: Prometheus server 是一个单独的二进制文件,可直接在本地工做,不依赖于分布式存储。
4)高效:一个 Prometheus server 能够处理数百万的 metrics。
5)使用pull模式采集时间序列数据,这样不只有利于本机测试并且能够避免有问题的服务器推送坏的metrics。
6)能够采用 push gateway的方式把时间序列数据推送至Prometheus server 端。
7)能够经过服务发现或者静态配置去获取监控的targets。
8)支持多种绘图和仪表盘模式。
9)监控目标能够经过服务发现或静态配置
4.1.2 Prometheus 适合作什么?
Prometheus很是适合记录纯数字的时间序列,既能够是以主机为中心的监控,也能够是以服务为导向的动态架构。在微服务的世界,它支持多维度的数据集合,查询功能很是强大。
Prometheus 是为可用性而设计,利用它你能够快速定位问题。每个 Prometheus Server 都是独立的,不依赖于网络存储或其余的第三方服务。能够在部分基础设施出现问题时仍然使用它。
4.1.3 Prometheus 不适合作什么?
Prometheus 用于评估可用性。若是你想要100%的精准度,好比每一个请求的帐单,Prometheus就不是一个好的选择,由于收集上来的数据可能没这么细致、完整。对于这样的需求,你最好用其余的大数据系统对数据作分析。
4.2 Prometheus 的组件与架构
4.2.1 Prometheus 生态圈组件
Prometheus 的生态系统包括多个组件,大部分的组件都是用Go语言编写的,所以部署很是方便,而这些组件大部分都是可选的,主要组件介绍以下:
一、Prometheus Server
Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。
Prometheus Server能够经过静态配置管理监控目标,也能够配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。
其次Prometheus Server须要对采集到的监控数据进行存储,Prometheus Server自己就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。
最后Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。
Prometheus Server内置的Express Browser UI,经过这个UI能够直接经过PromQL实现数据的查询以及可视化。
二、推送网关(push gateway)
主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。
因为Prometheus数据采集基于Pull模型进行设计,所以在网络环境的配置上必需要让Prometheus Server可以直接与Exporter进行通讯。
当这种网络需求没法直接知足时,就能够利用PushGateway来进行中转。
能够经过PushGateway将内部网络的监控数据主动Push到Gateway当中。
而Prometheus Server则能够采用一样Pull的方式从PushGateway中获取到监控数据。
三、Exporter
主要用来采集数据,并经过HTTP服务的形式暴露给Prometheus Server,Prometheus Server经过访问该Exporter提供的接口,便可获取到须要采集的监控数据。
常见的Exporter有不少,例如node_exporter、mysqld_exporter、statsd_exporter、blackbox_exporter、haproxy_exporter等,支持如 HAProxy,StatsD,Graphite,Redis 此类的服务监控;
四、告警管理器(Alertmanager)
管理告警,主要是负责实现报警功能。
在Prometheus Server中支持基于PromQL建立告警规则,若是知足PromQL定义的规则,则会产生一条告警,而告警的后续处理流程则由AlertManager进行管理。
在AlertManager中咱们能够与邮件,Slack等等内置的通知方式进行集成,也能够经过Webhook自定义告警处理方式。AlertManager即Prometheus体系中的告警处理中心。
4.2.2 Prometheus 的架构
下图展现了Prometheus的基本架构:
从架构图中能够看出其大概的工做流程:
1)Prometheus Server 以服务发现(如 Kubernetes 等)的方式自动发现或者静态配置添加监控目标;
2)Prometheus Server 按期从监控目标(Jobs/exporters)或 Pushgateway 中拉取数据(metrics),将时间序列数据保存到其自身的时间序列数据库(TSDB)中;
3)Prometheus Server 经过 HTTP Server 对外开放接口,能够给可视化工具(如 Prometheus web UI、Grafana 或本身开发的工具)用PromQL查询/导出数据;
4)当有告警产生时,Prometheus Server 将告警信息推送到Alertmanager ,由 Alertmanager 根据配置的策略发送告警信息到对应的接收方;