监控系统—Prometheus部署

Posted 丁CCCCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了监控系统—Prometheus部署相关的知识,希望对你有一定的参考价值。

一、概述

1.1 主要特性

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

1.2 原理架构图

二、服务部署

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


访问网页

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

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

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

http://192.168.253.77:9090/metrics

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

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

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

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

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服务器设置

配置文件添加mysql信息

vim /usr/local/prometheus/prometheus.yml

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

重启服务

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

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

三、设置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

3.2 浏览器访问

http://192.168.253.77:3000

登录

  • 使用初始账户密码登录

  • 提示修改,可以不变

    把prometheus服务器收集的数据做为一个数据源添加到grafana,让grafana可以得 prometheus 的数据

  • 添加数据源

  • 设置信息


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




匹配条件显示信息


3.3 Grafana 图形显示mysql监控数据

修改grafana配置文件

vim /etc/grafana/grafana.ini

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

下载安装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添加所需应用

grafana内配置

#步骤
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;


grafana设置


以上是关于监控系统—Prometheus部署的主要内容,如果未能解决你的问题,请参考以下文章

企业运维实战-k8s学习笔记17.k8s集群+Prometheus监控部署基于prometheus实现k8s集群的hpa动态伸缩虚拟机部署prometheus监控

Prometheus+Grafana+Alertmanager监控部署

Linux系统裸金属环境下部署prometheus监控

部署Prometheus+Grafana监控Docker

基于docker部署prometheus+grafana

云原生之Docker实战使用Docker部署Prometheus 服务监控系统