Grafana +のZabbix +プロメテウスの監視システム

 

環境説明

ソフトウェア

オペレーティングシステム

IPアドレス

Grafana

5.4.3-1

Centos7.5

192.168.18.231

プロメテウス

2.6.1 

Centos7.5

192.168.18.232

ZABBIX

4.0.4

Centos7.5

192.168.18.233

 

 

 

 

 

 

まず、展開Grafana

Grafanaがボリューム可視化ツールのオープンソースの監視と指標である、公式ウェブサイトは次のとおりです。https://grafana.com/Grafanaのインストールは非常に簡単です、公式リポジトリがあります直接使用することができ、それはまた、直接ローカルにミラーリングドッキングウィンドウで起動することができます。あなたはまた、直接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

 あなたは、このようなMySQLは、PostgreSQLは、公式ドキュメントの設定を参照してくださいなどの他のバックエンド・ストレージを使用する場合、デフォルトでは#は、grafana構成は、sqlite3の中に保存された:http://docs.grafana.org/installation/configuration/ 

 

1.2開始

#サービス開始

grafana-サーバを起動systemctl

#サービスが正常に開始されたかどうかを確認してください

systemctlステータスgrafanaサーバ

スタートから#

systemctl galluogi grafanaサーバ

 

ファイアウォール1.3

systemctlストップfirewalld.service

systemctl無効firewalld.service

yumを-y iptablesの-サービスをインストール

vimの、/ etc / sysconfig / iptables内

--dport TCP -m状態--state NEW -m tcpの-pの-A INPUT 3000は ACCEPT -j

#再起動

systemctl再起動iptables.service

iptables.serviceを有効systemctl

 

#再起動してから保存し、後で追加しました

サービスのiptablesを再起動します

サービスのiptablesは、保存します

 

1.4アクセス

アクセスhttp://192.168.18.231:3000あなたはログインインターフェイスを見ることができます。デフォルトのユーザー名とパスワードはadminです。Grafana設定ファイルは、設定ファイルを変更することなく、通常の状況下では、/etc/grafana/grafana.iniあります。

 

 

第二に、展開 ZABBIX

2.1  展開 LNMP環境

2.1.1  インストール nginxの

次のようにここでのnginxのnginx-1.14.2の最新の安定版を使用し、インストールプロセスは次のとおりです。

yumはzlibのPCRE PCRE-のdevelのopensslのopenssl-develのを作るのgccはgcc-C ++をインストール-y

useraddの-s / sbinに/ nologinにWWW

CDは/ usr / local / srcに/

wgetのhttp://nginx.org/download/nginx-1.14.2.tar.gz

タール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

1、安装

安装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

 

2、启动mysql

systemctl start mysqld

 

3、修改密码

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

1、安装依赖库

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

 

2、安装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/

 

3、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

如果修改了参数不生效,参考文章:https://blog.51cto.com/msiyuetian/2355134

 

2.1.4 配置lnmp环境

1、修改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;
}

 

2、修改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 准备工作

1、安装依赖库

yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel

 

2、创建用户

groupadd zabbix

useradd -g zabbix zabbix

 

2.2.2 安装zabbix server

1、编译安装

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组件。

 

2、创建软连接

由于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 创建数据库和初始化表

1、登录数据库,创建一个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;

 

2、开始导入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服务

1、复制启动脚本

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

 

2、开启自启

chkconfig zabbix_server on

chkconfig zabbix_agentd on

 

3、启动zabbix server

/etc/init.d/zabbix_server start

  

2.2.6 安装与配置zabbix agent

1、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

  

2、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。

 

3、启动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完成,登入后界面后如下:

 

三、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这个变量就创建好了。

 

下面解释一下各个参数的作用:

 1、General部分

Ø name:变量的名字,比如我这里取名为group,到时候要使用这个变量名就用$group来调用。

Ø type: 变量类型,变量类型有多种,其中query表示这个变量是一个查询语句,type也可以是datasource,datasource就表示该变量代表一个数据源,如果是datasource你可以用该变量修改整个DashBoard的数据源,变量类型还可以是时间间隔Interval等等。这里我们选择query。

Ø label: 是对应下拉框的名称,默认就是变量名,选择修改为“主机组”。

Ø hide: 有三个值,分别为空,label,variable。选择label,表示不显示下拉框的名字。选择variable表示隐藏该变量,该变量不会在DashBoard上方显示出来。默认选择为空,这里也选默认。

 

2、Query options部分

Ø Data source: 数据源,不用多说。

Ø Refresh: 何时去更新变量的值,变量的值是通过查询数据源获取到的,但是数据源本身也会发生变化,所以要时不时的去更新变量的值,这样数据源的改变才会在变量对应的下拉框中显示出来。Refresh有三个值可以选择,Never:永不更新。On Dashboard Load:在DashBoard加载时更新。On Time Range Change:在一个时间范围内更新。可根据情况进行选项。

Ø Query:查询表达式,不同的数据源查询表达式都不同(这些可以到官网上查询),这里由于是要查询zabbix的groups信息,所以表达式为“*”,代表所有。

Ø Regex:正则表达式,用来对抓取到的数据进行过滤,这里默认不过滤。

Ø Sort:排序,对下拉框中的变量值做排序,排序的方式挺多的,默认是disable,表示查询结果是怎样下拉框就怎样显示。此处选disable。

 

3、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.*

 

 

2、创建变量application

Name:application

Query:$group.$host.*

  

3、创建变量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采用饼图

 

 

四、部署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语言编写的,因此部署非常方便,而这些组件大部分都是可选的,主要组件介绍如下:

1、Prometheus Server

Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。

Prometheus Server可以通过静态配置管理监控目标,也可以配合使用Service Discovery的方式动态管理监控目标,并从这些监控目标中获取数据。

其次Prometheus Server需要对采集到的监控数据进行存储,Prometheus Server本身就是一个时序数据库,将采集到的监控数据按照时间序列的方式存储在本地磁盘当中。

最后Prometheus Server对外提供了自定义的PromQL语言,实现对数据的查询以及分析。

Prometheus Server内置的Express Browser UI,通过这个UI可以直接通过PromQL实现数据的查询以及可视化。

 

2、推送网关(push gateway)

主要是实现接收由Client push过来的指标数据,在指定的时间间隔,由主程序来抓取。

由于Prometheus数据采集基于Pull模型进行设计,因此在网络环境的配置上必须要让Prometheus Server能够直接与Exporter进行通信。

当这种网络需求无法直接满足时,就可以利用PushGateway来进行中转。

可以通过PushGateway将内部网络的监控数据主动Push到Gateway当中。

而Prometheus Server则可以采用同样Pull的方式从PushGateway中获取到监控数据。

 

3、Exporter

主要用来采集数据,并通过HTTP服务的形式暴露给Prometheus Server,Prometheus Server通过访问该Exporter提供的接口,即可获取到需要采集的监控数据。

常见的Exporter有很多,例如node_exporter、mysqld_exporter、statsd_exporter、blackbox_exporter、haproxy_exporter等,支持如 HAProxy,StatsD,Graphite,Redis 此类的服务监控;

 

4、告警管理器(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 根据配置的策略发送告警信息到对应的接收方;

5)Pushgateway 接收 “Short-lived” 类型的 Jobs 推送过来的 metrics 并缓存,等待 Prometheus Server 抓取。

 

 

 

 

 

五、Grafana与Prometheus整合

 

おすすめ

転載: www.cnblogs.com/weavepub/p/10959208.html