步骤

  • 一、概述
  • 1.1 主要特性
  • 1.2 原理架构图
  • 二、服务部署
  • 2.1 准备工作
  • 2.2 开启Prometheus服务器
  • 2.3 设置被监控端
  • 2.4 被监控端添加mysql服务
  • 三、设置Grafana可视化图形工具
  • 3.1 服务安装
  • 3.2 浏览器访问
  • 3.3 Grafana 图形显示mysql监控数据
  • 四、Grafana+onealert 报警


一、概述

1.1 主要特性

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉去时间序列数据
  • 也可以通过中间网关支持push模型
  • 通过服务发现或者静态配置,来发现目标服务对象
  • 支持多种多样的图表和界面展示

1.2 原理架构图

Prometheus认证和加密配置java prometheus 部署教程_mysql

二、服务部署

2.1 准备工作

Prometheus服务器:192.168.253.77
安装服务:Prometheus、grafana

被监控服务器:192.168.253.66
安装服务:node_exporter、mysqld_exporter

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2.2 开启Prometheus服务器

官网下载压缩包并上传

cd /opt
tar zxvf prometheus-2.29.1.linux-amd64.tar.gz -C /usr/local

#文件名较长,更改一下
mv /usr/local/prometheus-2.29.1.linux-amd64/ /usr/local/prometheus

开启服务

#文件目录下有启动文件,直接后台运行即可
cd /usr/local/prometheus/
./prometheus &

netstat -anpt | grep 9090

Prometheus认证和加密配置java prometheus 部署教程_mysql_02


Prometheus认证和加密配置java prometheus 部署教程_linux_03

访问网页

浏览器打开http://192.168.253.77:9090 访问主界面

Prometheus认证和加密配置java prometheus 部署教程_服务器_04

默认监控本机,点击上方 Status 再选择Targets 查看

Prometheus认证和加密配置java prometheus 部署教程_linux_05

也可以追加后缀 /metrics 查看监控的数据

http://192.168.253.77:9090/metrics

Prometheus认证和加密配置java prometheus 部署教程_mysql_06

2.3 设置被监控端

安装服务

官方下载 node_exporter 组件

tar zxvf node_exporter-1.2.2.linux-amd64.tar.gz -C /usr/local/

#重命名减少字符
cd /usr/local/
mv node_exporter-1.2.2.linux-amd64/ node_exporter

开启服务

cd node_exporter/
ls
LICENSE  node_exporter  NOTICE

#直接运行启动命令文件就可以 加&后台运行
./node_exporter &

#检查是否开启
lsof -i:9100

Prometheus认证和加密配置java prometheus 部署教程_服务器_07

浏览器访问 http://192.168.253.66:9100/metrics 被监控端的IP 可以看到被收集的监控信息

Prometheus认证和加密配置java prometheus 部署教程_mysql_08

Prometheus服务器配置

#修改配置文件添加被监控端信息
vim /usr/local/prometheus/prometheus.yml

#末行添加以下行
  - job_name: 'cc66_node'						#自定义取一个名字表示监控的机子
    static_configs:
      - targets: ['192.168.253.66:9100']		#添加被监控机子的IP和端口

#重启服务
pkill prometheus

cd /usr/local/prometheus/
./prometheus &

netstat -anpt | grep 9090

Prometheus认证和加密配置java prometheus 部署教程_服务器_09

Prometheus认证和加密配置java prometheus 部署教程_服务器_10

返回web刷新,多了一台监控机子

Prometheus认证和加密配置java prometheus 部署教程_linux_11

2.4 被监控端添加mysql服务

安装服务

官网下载 mysqld_exporter 组件

#解压
tar zxvf mysqld_exporter-0.13.0.linux-amd64.tar.gz -C /usr/local/

#重命名
cd /usr/local/
mv mysqld_exporter-0.13.0.linux-amd64/ mysqld_exporter

cd mysqld_exporter/
ls
LICENSE  mysqld_exporter  NOTICE

安装mariadb数据库

#安装
yum -y install mariadb\*

systemctl start mariadb
systemctl enable mariadb

#进入数据库设置
mysql

#由于不是prometheus服务器来直接找mariadb 获取数据,而是prometheus服务器 mysql_exporter,mysql_exporter 再找mariadb。所以253.66是指的mysql_exporter的IP
MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'192.168.253.66' identified by '123';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

创建mariadb配置文件

vim /usr/local/mysqld_exporter/.my.cnf

#内容需要和数据库内设置的一致
[client]
user=mysql_monitor			#用户名
password=123				#密码

开启服务

#这里要用nuhup开启
nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &

lsof -i:9104

Prometheus认证和加密配置java prometheus 部署教程_mysql_12

Prometheus服务器设置

配置文件添加mysql信息

vim /usr/local/prometheus/prometheus.yml

#和前面node设置类似
  - job_name: 'cc66_mariadb'
    static_configs:
      - targets: ['192.168.253.66:9104']

Prometheus认证和加密配置java prometheus 部署教程_linux_13

重启服务

pkill prometheus
./prometheus &
netstat -anpt | grep 9090

Prometheus认证和加密配置java prometheus 部署教程_linux_14

web页面刷新,可以看到已添加

Prometheus认证和加密配置java prometheus 部署教程_服务器_15

三、设置Grafana可视化图形工具

Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警

3.1 服务安装

官网下载安装包

#上传好直接rpm安装
rpm -ivh grafana-5.3.4-1.x86_64.rpm

#开启
systemctl start grafana-server.service
systemctl enable grafana-server.service

lsof -i:3000

Prometheus认证和加密配置java prometheus 部署教程_linux_16

3.2 浏览器访问

http://192.168.253.77:3000

登录

  • 使用初始账户密码登录
  • Prometheus认证和加密配置java prometheus 部署教程_mysql_17

  • 提示修改,可以不变
  • Prometheus认证和加密配置java prometheus 部署教程_服务器_18

  • 把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得 prometheus 的数据
  • 添加数据源
  • Prometheus认证和加密配置java prometheus 部署教程_linux_19

  • 设置信息
  • Prometheus认证和加密配置java prometheus 部署教程_linux_20


  • Prometheus认证和加密配置java prometheus 部署教程_mysql_21


  • Prometheus认证和加密配置java prometheus 部署教程_服务器_22

图形化显示刚才添加的数据源

Prometheus认证和加密配置java prometheus 部署教程_linux_23


Prometheus认证和加密配置java prometheus 部署教程_linux_24

Prometheus认证和加密配置java prometheus 部署教程_服务器_25


Prometheus认证和加密配置java prometheus 部署教程_linux_26


Prometheus认证和加密配置java prometheus 部署教程_服务器_27

Prometheus认证和加密配置java prometheus 部署教程_linux_28

匹配条件显示信息

Prometheus认证和加密配置java prometheus 部署教程_mysql_29


Prometheus认证和加密配置java prometheus 部署教程_linux_30

3.3 Grafana 图形显示mysql监控数据

修改grafana配置文件

vim /etc/grafana/grafana.ini

#末行添加
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

Prometheus认证和加密配置java prometheus 部署教程_linux_31

下载安装dashboard

cd /var/lib/grafana/

git clone git://github.com/percona/grafana-dashboards.git
正克隆到 'grafana-dashboards'...
remote: Enumerating objects: 15928, done.
remote: Counting objects: 100% (711/711), done.
remote: Compressing objects: 100% (476/476), done.
remote: Total 15928 (delta 394), reused 475 (delta 220), pack-reused 15217
接收对象中: 100% (15928/15928), 83.29 MiB | 17.96 MiB/s, done.
处理 delta 中: 100% (11313/11313), done.

#重启服务
systemctl restart grafana-server.service

四、Grafana+onealert 报警

onealert添加所需应用

Prometheus认证和加密配置java prometheus 部署教程_mysql_32

grafana内配置

Prometheus认证和加密配置java prometheus 部署教程_linux_33

Prometheus认证和加密配置java prometheus 部署教程_服务器_34

#步骤
1、在Grafana中创建Notification channel,选择类型为Webhook;
2、推荐选中Send on all alerts和Include image,Cloud Alert体验更佳;
3、将第一步中生成的Webhook URL填入Webhook settings Url;

URL格式:
http://api.aiops.com/alert/api/event/grafana/v1/72d99fa328f644218cb7ec898c001176/
4、Http Method选择POST;
5、Send Test&Save;

Prometheus认证和加密配置java prometheus 部署教程_linux_35


Prometheus认证和加密配置java prometheus 部署教程_linux_36

grafana设置

Prometheus认证和加密配置java prometheus 部署教程_mysql_37

Prometheus认证和加密配置java prometheus 部署教程_mysql_38


Prometheus认证和加密配置java prometheus 部署教程_服务器_39