<返回更多

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

2022-05-11    架构师方木
加入收藏

大家好,我是方木

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、数据库、架构设计,还有我整理的上百份面试题库,持续更新中!期待你的关注!

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>