码迷,mamicode.com
首页 > 其他好文 > 详细

Grafana+Zabbix+Prometheus 监控系统

时间:2019-06-01 14:01:56      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:复制   add   出图   setup   dashboard   lock   size   inf   开头   

 

环境说明

软件

版本

操作系统

IP地址

Grafana

5.4.3-1

Centos7.5

192.168.18.231

Prometheus

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的安装非常简单,官方就有软件仓库可以直接使用,也可以通过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,一般情况下无需修改配置文件。

技术图片

技术图片

 

 

二、部署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

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整合

 

Grafana+Zabbix+Prometheus 监控系统

标签:复制   add   出图   setup   dashboard   lock   size   inf   开头   

原文地址:https://www.cnblogs.com/weavepub/p/10959208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!