您当前的位置:首页 > 电脑百科 > 网络技术 > 网络设置

从零搭建Prometheus+Grafana监控报警系统

时间:2022-05-11 09:45:38  来源:  作者:架构师方木

大家好,我是方木

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是google BorgMon监控系统的开源版本,整套系统由监控服务、告警服务、时序数据库等几个部分,及周边生态的各种指标收集器(Exporter)组成,是在当下主流的云原生监控告警系统。

Grafana是用于可视化大型测量数据的开源程序,它提供了强大和优雅的方式去创建、共享、浏览数据。Dashboard中显示了你不同metric数据源中的数据。

今天,我们就来看下怎么从零将Prometheus结合Grafana部署起来

一、部署prometheus监控服务器:

  1. 安装监控服务器
  2. 修改配置文件
  3. 编写service文件,管理服务
  4. 查看监控数据

1、环境准备:

实验需要2台虚拟机,主机信息下表所示:所有主机系统均为centos7,需要提前配置IP、主机名、系统YUM源;(网卡名称仅供参考,不能照抄)

从零搭建Prometheus+Grafana监控报警系统

 

实验拓扑如下图所示:

从零搭建Prometheus+Grafana监控报警系统

 

2、安装步骤

步骤如下:

步骤一:安装监控软件(192.168.4.10主机操作)

1)安装软件:

tar -xf prometheus-2.17.2.linux-386.tar.gz
ls
mv prometheus-2.17.2.linux-386 /usr/local/prometheus
ls /usr/local/prometheus/

2)修改prometheus配置文件,修改最后一行,将IP地址改为本机IP

vim /usr/local/prometheus/prometheus.yml
static_configs:
- targets: ['192.168.4.10:9090']      

检查配置配置文件是否有语法错误

/usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml

3)编写服务service文件,使用systemd管理服务

vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
[Install]
WantedBy=multi-user.target

设置服务器开机自启动服务,并立刻启动该服务

systemctl  enable prometheus.service --now

4)设置防火墙、SELinux(如果已经关闭则可以忽略此步骤)

firewall-cmd --set-default-zone=tRusted
setenforce 0
sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

步骤二:查看监控控制台

1)查看监控主机、监控数据。

使用浏览器firefox或者google-chrome访问http://192.168.4.10:9090。查看监控主机,点击"Status" -- "Targets" 查看主机,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

查看具体监控数据,点击"Graph",选择监控数据,如go_memstats_alloc_bytes,点击《Execute》效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

查看监控数据对应的监控图形,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

二、配置Prometheus被监控端主机

  1. 安装被监控端软件
  2. 编写service文件
  3. 修改监控服务器配置文件
  4. 查看监控数据

步骤如下:
步骤一:部署被控制端export

1)安装软件(192.168.4.11主机操作)

tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
ls
mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter
ls /usr/local/node_exporter  

2)编写服务service文件(192.168.4.11主机操作)

vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After.NETwork.target
[Service]
Type=simple
ExecStart=/usr/local/node_exporter/node_exporter
[Install]
WantedBy=multi-user.target

systemctl  enable node_exporter –now

3)设置防火墙、SELinux(如果已经关闭则可以忽略此步骤)

firewall-cmd --set-default-zone=trusted
setenforce 0
sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

4)修改监控服务器配置文件(192.168.4.10主机操作)。

参考配置文件最后的模板,在文件末尾添加3行新内容,具体内容如下:

vim /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.4.10:9090']
- job_name: 'node1'                    #监控任务取任意名称
static_configs:
- targets: ['192.168.4.11:9100']    #被监控端主机和端口

systemctl  restart prometheus.service

5)查看监控主机、监控数据

使用浏览器访问http://192.168.4.10:9090。

查看监控主机列表,如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

查看主机CPU监控数据,如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

三、grafana可视化监控数据,配置grafana实现数据可视化效果

  1. 安装Grafana
  2. 修改grafana配置
  3. 导入可视化模板
  4. 查看监控图表

步骤如下:

步骤一:安装部署grafana(192.168.4.10主机操作)

1)安装软件:

cd prometheus_soft/
yum -y install grafana-6.7.3-1.x86_64.rpm

设置grafana服务为开机自启动服务,并立刻启动该服务:

systemctl enable grafana-server.service --now

提示:grafana默认启动的是3000端口。

2)重置登录密码

默认用户名和密码都是:admin。

重置密码效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

附加知识:

有些浏览器问题,可能无法重置密码,如果无法重置密码,则可以设置grafana允许匿名登录,具体操作如下(非必要,不要执行如下操作):

vim /etc/grafana/grafana.ini
[auth.anonymous]
enabled = true
org_role = Admin
systemctl restart grafana-server.service

步骤二:配置Grafana

浏览器访问Grafana控制台,http://192.168.4.10:3000

1)添加数据源

Grafana可以将数据图形化,那么数据从哪里来呢?点击"Add data source",选择从Prometheus获取数据。

从零搭建Prometheus+Grafana监控报警系统

 

填写Prometheus基本信息,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

2)导入可视化模板

使用不同的可视化模板就可以将不同的数据进行图形化展示,下面导入prometheus图形化模板,效果如下面截图所示,选择 "Prometheus 2.0 Stats"。

从零搭建Prometheus+Grafana监控报警系统

 


从零搭建Prometheus+Grafana监控报警系统

 

查看监控效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

步骤二:查看被监控主机的系统信息

1)导入主机监控的可视化模板(node_exporter模板)

模板文件在在第二阶段素材prometheus_soft.tar.gz中有提供。添加效果如下图所示:

从零搭建Prometheus+Grafana监控报警系统

 

2)选择数据源

导入监控主机的可视化模板后,我们就可以查看主机的监控图形了,但是这个图形的数据从哪里获取呢,需要设置prometheus为数据源,效果如图所示。

从零搭建Prometheus+Grafana监控报警系统

 

返回Grafana首页,查看监控图形,效果如图所示。

从零搭建Prometheus+Grafana监控报警系统

 


从零搭建Prometheus+Grafana监控报警系统

 

四、监控数据库

使用prometheus监控MariaDB数据库:

  1. 安装数据库
  2. 安装数据库exporter
  3. 配置数据库账户和密码
  4. 导入监控模板

步骤如下:

步骤一:安装MariaDB(被监控主机192.168.4.11操作)

1)安装软件,启动服务

yum -y install mariadb-server
systemctl enable  mariadb --now

2)创建数据库账户,配置密码

监控数据库,需要创建一个对数据库有权限的账户并配置密码。

MySQL
> grant all on *.* to 'jerry'@'127.0.0.1' identified by '123';
> exit

备注:创建用户jerry,该用户可以从本机127.0.0.1登录服务器,该用户的密码为123。

步骤二:安装配置导出器(exporter)

1)安装mysqld_exporter导出器(被监控主机192.168.4.11操作)

tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=127.0.0.1
port=3306
user=jerry
password=123

备注:创建数据库配置文件.my.cnf,到时mysqld_exporter自动读取配置文件,使用配置文件用的账户和密码信息访问数据库,获取数据库监控信息。

2)编写服务service文件,默认端口为9104(被监控主机192.168.4.11操作)

vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter 
--config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
[Install]
WantedBy=multi-user.target 

systemctl enable mysqld_exporter --now 

3)修改监控服务器配置文件(192.168.4.10主机操作)。
参考原文的配置模板,最文件最后手动添加如下3行内容,修改后重启服务

vim /usr/local/prometheus/prometheus.yml
scrape_configs:
… …
- job_name: 'mysql'                    #监控任务的名称
static_configs:
- targets: ['192.168.4.11:9104']    #被监控主机IP和端口

systemctl restart prometheus.service

步骤三:配置Grafana可视化

1)查看监控主机(浏览器访问http://192.168.4.10:9090)。

查看prometheus是否已经识别到MariaDB数据库主机,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

2)访问Grafana导入数据库可视化模板(浏览器访问http://192.168.4.10:3000)。

导入数据库可视化模板,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

设置数据源,数据来源于Prometheus,效果如图所示:

从零搭建Prometheus+Grafana监控报警系统

 

如果离开监控图形时提示保存监控图形,可以任意输入名称即可,如图-20所示:

从零搭建Prometheus+Grafana监控报警系统

 

来源:
https://www.jianshu.com/p/35e23e78b60d


我的微信公众号:JAVA架构师进阶编程

 

专注分享Java技术干货,包括JVM、SpringBoot、SpringCloud、数据库、架构设计,还有我整理的上百份面试题库,持续更新中!期待你的关注!



Tags:监控   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
对于微服务架构监控应该遵守的原则
随着软件交付方式的变革,微服务架构的兴起使得软件开发变得更加快速和灵活。在这种情况下,监控系统成为了微服务控制系统的核心组成部分。随着软件的复杂性不断增加,了解系统的...【详细内容】
2024-04-03  Search: 监控  点击:(7)  评论:(0)  加入收藏
男子参加公司年会酒后身亡,被判自担主责,监控显示其向他人敬酒26次
年终岁尾,很多公司会举行聚餐等团体活动。2023年1月,男子杨某在四川攀枝花市参加公司年会,在聚会中大量饮酒,后身体出现不适,送医抢救无效死亡。后经司法鉴定,认定杨某死亡原因为...【详细内容】
2024-03-25  Search: 监控  点击:(18)  评论:(0)  加入收藏
Windows任务管理器将更新 为锐龙8040系列增加NPU监控
AMD官方现已确认正与微软合作,为锐龙8040系列APU的NPU上启用MCDM,从而使Windows 11的任务管理器支持AMD NPU的占用显示。AMD此前已经发布了新的锐龙8040系列移动处理器,进一步...【详细内容】
2024-02-23  Search: 监控  点击:(19)  评论:(0)  加入收藏
Java生产环境下性能监控与调优详解
堆是 JVM 内存中最大的一块内存空间,该内存被所有线程共享,几乎所有对象和数组都被分配到了堆内存中。堆被划分为新生代和老年代,新生代又被进一步划分为 Eden 和 Survivor 区,...【详细内容】
2024-02-04  Search: 监控  点击:(63)  评论:(0)  加入收藏
一文聊聊如何快速监控 Oracle 数据库
Cprobe 是一个探针采集器,支持常见数据库、中间件的采集,比如 MySQL、Redis、MongoDB、Oracle、Kafka、ElasticSearch 等。安装配置 Oracle简单起见,我使用 Docker 启动 Oracl...【详细内容】
2023-12-26  Search: 监控  点击:(141)  评论:(0)  加入收藏
Redis Sentinel的监控和自动化处理Redis节点故障恢复机制
Redis Sentinel是一个分布式的监控系统,它可以监控多个Redis节点的健康状态,并在节点发生故障时自动进行故障转移和恢复。Redis Sentinel通过选举机制选择一个主节点,并将其他...【详细内容】
2023-12-25  Search: 监控  点击:(89)  评论:(0)  加入收藏
监控 Spring Cloud 微服务的实践方案
一、简介Spring Cloud是一个基于Spring Boot实现的微服务框架,它提供了丰富的微服务功能,如分布式配置、服务注册与发现、服务熔断、负载均衡等。为了更好地管理和监控这样复...【详细内容】
2023-12-19  Search: 监控  点击:(153)  评论:(0)  加入收藏
Oracle数据库性能监控:洞察系统瓶颈的利器!
在当今信息时代,企业对于数据的存储和管理变得越来越重要。Oracle数据库作为全球广泛应用的关系型数据库管理系统,承载着大量的业务数据和应用。为了确保数据库的高效稳定运行...【详细内容】
2023-12-18  Search: 监控  点击:(100)  评论:(0)  加入收藏
使用Java构建云原生监控与日志系统
随着云计算的兴起,云原生架构的应用越来越广泛。在云原生架构中,监控和日志系统是至关重要的组成部分,它们帮助开发人员实时监测和分析系统的性能和运行状态。下面将介绍如何使...【详细内容】
2023-11-17  Search: 监控  点击:(239)  评论:(0)  加入收藏
14个开源免费数据库监控工具,MySQL、Oracle、Postgres或MSSQL
在信息系统项目中,UI、业务逻辑、数据库操作、文件操作、网络、API调用等许多环节都有可能产生性能问题,其中,数据库读写是最为常见的操作,我们也发现其实许多项目中的大部分瓶...【详细内容】
2023-11-17  Search: 监控  点击:(281)  评论:(0)  加入收藏
▌简易百科推荐
iPhone或iPad用户必学:如何通过二维码快速共享Wi-Fi密码,简单又实用!
你有没有想过在不泄露网络密码的情况下与客人共享你的家庭或工作Wi-Fi?你肯定不是第一个这样想的人,我们很高兴地通知你,多亏了以下这个的变通方法,你现在可以使用iPhone或iPad...【详细内容】
2024-01-22  驾驭信息纵横科技    Tags:Wi-Fi密码   点击:(74)  评论:(0)  加入收藏
Windows 11网络连接问题诊断与解决小技巧,轻松解决上网问题!
在日常生活中,如果在连接网络时遇到问题,该如何排查解决?以下是一些故障排除步骤,可帮助你解决戴尔电脑上的无线网络连接问题。一起来看看吧!1、进行基本检查先进行一些基本检查...【详细内容】
2024-01-12  戴尔维修工程师    Tags:   点击:(59)  评论:(0)  加入收藏
配置Cisco AnyConnect VPN的5个步骤,缺一不可
随着越来越多的人远程工作或在混合环境中工作,IT部门和MSP在ASA防火墙上配置Cisco AnyConnect VPN的呼声越来越高。但是Cisco文档可能会非常混乱,这会导致一些组织的配置错误(...【详细内容】
2023-11-14  驾驭信息纵横科技    Tags:VPN   点击:(96)  评论:(0)  加入收藏
如何在Windows 10系统上设置DNS?
如果你正在使用Windows10操作系统,并且想要更好地控制你的网络服务,那么了解如何设置DNS(DomainNameSystem)是非常重要的。DNS是一种将域名解析为IP地址的服务,它能够让你在访问...【详细内容】
2023-11-10  高梦文    Tags:DNS   点击:(197)  评论:(0)  加入收藏
RabbitMQ发送和接收消息的几种方式
channel.basicQos(0, 1, false):0表示对消息的大小无限制,1表示每次只允许消费一条,false表示该限制不作用于channel。同时,我们采用手工ACK的方式,因为我们配置文件配置了 spri...【详细内容】
2023-11-08  程序猿羊  微信公众号  Tags:RabbitMQ   点击:(264)  评论:(0)  加入收藏
CISA发布十大常见网络安全错误配置
美国国家安全局(NSA)和网络安全与基础设施安全局(CISA)在本周五的报告中公布了其红队和蓝队在大型组织网络中发现的十大最常见网络安全误配置。NSA和CISA在安全建议中详细说...【详细内容】
2023-11-07  GoUpSec  微信公众号  Tags:CISA   点击:(262)  评论:(0)  加入收藏
Istio Envoy 配置解读,看这篇就够了
前面我们创建了一个 Gateway 和 VirtualService 对象,用来对外暴露应用,然后我们就可以通过 ingressgateway 来访问 Bookinfo 应用了。那么这两个资源对象是如何实现的呢?Gatew...【详细内容】
2023-11-07  k8s技术圈  微信公众号  Tags:Istio Envoy   点击:(130)  评论:(0)  加入收藏
RabbitMQ的四种交换机详解
交换机主要是接收消息并且转发到绑定的队列,交换机不存储消息,在启用ack模式后,交换机找不到队列会返回错误。交换机有四种类型:Direct, topic, Headers and Fanout。图片一、to...【详细内容】
2023-11-06  程序猿小杨  微信公众号  Tags:交换机   点击:(267)  评论:(0)  加入收藏
路由器配置NAT/UPNP/DMZ方法
常见路由器配置NAT(网络地址转换)、UPnP(通用即插即用)和DMZ(区域暴露)的方法可以根据不同的路由器品牌和型号有所不同,但通常会在路由器的管理界面中找到相关设置。以下是一般步骤...【详细内容】
2023-10-11  晴间多云  今日头条  Tags:路由器配置   点击:(423)  评论:(0)  加入收藏
路由器如何正确安装?后台设置一步即可接入宽带
现在的路由器不论安装还是后台设置都非常方便,但一些网友可能是没有详细了解过相关的知识,所以每次想要更换路由器或者新装路由器的时候并不知道如何安装路由器接入自家宽带,这...【详细内容】
2023-09-21  羽度非凡    Tags:路由器   点击:(303)  评论:(0)  加入收藏
站内最新
站内热门
站内头条