Prometheus监控学习

学习目标

  • 能够安装prometheus服务器
  • 能够通过安装node_exporter监控远程linux
  • 能够通过安装mysqld_exporter监控远程mysql数据库
  • 能够安装grafana
  • 能够在grafana添加prometheus数据源
  • 能够在grafana添加监控cpu负载的图形
  • 能够在grafana图形显示mysql监控数据
  • 能够通过grafana+onealert实现报警

一、普罗米修斯概述

Prometheus(由go语言开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为k8s的流行,带动了promethues的发展

https://www.prometheus.io/docs/introduction/overview/

二、时间序列数据

1.什么是时间序列数据

时间序列指在连续等间隔的时间点上获取的数据值,存储时间序列数据的数据库称为时间序列数据库Time Series Database (TSDB),时间序列数据库特点是写远大于读,并且写入平稳,基本不会涉及更新操作。

2.基于时间序列数据特点

  • 性能好
  • 存储成本低

3.Prometheus的主要特征

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

4.普罗米修斯原理架构图

在这里插入图片描述

三、实验环境准备

机器角色系统端口
192.168.75.144Prometheus 服务端centos79090
192.168.75.149grafana客户端centos73000
192.168.75.145node_exporter 客户端centos79100

修改uuid

因为是克隆的机器,所以三台的uuid都一样,需要修改一下uuid

vi /etc/sysconfig/network-scripts/ifcfg-ens33

systemctl restart network

时间同步

yum install -y ntpdate

ntpdate cn.ntp.org.cn

四、安装普罗米修斯系统

1.下载软件

https://www.prometheus.io/download/

2.安装普罗米修斯软件

上传至服务器并解压

tar -xvf prometheus-2.37.9.linux-amd64.tar.gz -C /usr/local/

mv /usr/local/prometheus-2.37.9.linux-amd64/ /usr/local/prometheus

使用默认配置启动

/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &

检查端口

[root@192 ~]# lsof -i:9090
COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
prometheu 41813 root    3u  IPv6  64430      0t0  TCP localhost:36296->localhost:websm (ESTABLISHED)
prometheu 41813 root    7u  IPv6  64422      0t0  TCP *:websm (LISTEN)
prometheu 41813 root   11u  IPv6  64431      0t0  TCP localhost:websm->localhost:36296 (ESTABLISHED)

开放9090端口

[root@192 ~]# firewall-cmd --zone=public --add-port=9090/tcp --permanent
success
[root@192 ~]# firewall-cmd --reload
success

3.prometheus界面

通过浏览器访问:http://ip:9090就可以访问prometheus主界面

在这里插入图片描述

默认只监控了本机一台点status>>点targets可以看到只监控了本机

在这里插入图片描述

在web界面可以通过关键字查询监控项

在这里插入图片描述

4.监控远程linux主机

在远程linux主机(被监控端)上安装node_exporter组件

下载地址:https://prometheus.io/download/

上传并解压

tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz -C /usr/local/

mv /usr/local/node_exporter-1.6.1.linux-amd64/ /usr/local/node_exporter

启动

 nohup ./node_exporter &

查看端口

[root@192 node_exporter]# ss -naltp|grep 9100
LISTEN     0      128       [::]:9100                  [::]:*                   users:(("node_exporter",pid=41870,fd=3))

开放9100端口

firewall-cmd --zone=public --add-port=9100/tcp --permanent
firewall-cmd --reload

在浏览器中查看监控端收集的监控信息

在这里插入图片描述

5.在prometheus中拉取监控端机器信息

修改/usr/local/prometheus/prometheus.yml

在文件的最下面加这几行信息,格式需保持一致

- job_name: "ansible01"
  static_configs:
    - targets: ["192.168.75.150:9100"]

改完进行重启

pkill prometheus
ss -naltp|grep 9090
nohup ./prometheus --config.file=prometheus.yml &

通过浏览器访问

在这里插入图片描述

7.远程监控mysql

在远程linux主机(被监控端)上安装mysqld_exporter组件

下载地址:https://prometheus.io/download/

上传并解压

tar -xvf mysqld_exporter-0.15.0.linux-amd64.tar.gz -C /usr/local/

mv /usr/local/mysqld_exporter-0.15.0.linux-amd64/ /usr/local/mysqld_exporter

登录mysql创建一个监控用户

create user 'mysqld_exporter'@'localhost' identified by 'xxxxx';
GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'mysqld_exporter'@'localhost';
flush privileges;

在mysqld_exporter组件中配置mysql信息

[client]
user=mysqld_exporter
password=xxxxx

启动

 nohup ./mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/my.cnf &

查看端口

[root@192 mysqld_exporter]# ss -naltp|grep 9104
LISTEN     0      128         :::9104                    :::*                   users:(("mysqld_exporter",pid=1328,fd=3))

开放9104端口

firewall-cmd --zone=public --add-port=9104/tcp --permanent
firewall-cmd --reload

在浏览器中查看监控端收集的监控信息

http://ip:9104

在这里插入图片描述

8.回到prometheus服务器中添加mysql组件配置

修改/usr/local/prometheus/prometheus.yml

在文件的最下面加这几行信息,格式需保持一致

- job_name: "mysql01"
  static_configs:
    - targets: ["192.168.75.139:9104"]

改完进行重启

pkill prometheus
ss -naltp|grep 9090
nohup ./prometheus --config.file=prometheus.yml &

通过浏览器访问

在这里插入图片描述

五、Grafana可视化图形工具

1.什么是Grafana

  • Grafana是一款近几年比较流行的开源数据绘图工具平台。
  • Grafana原生支持包括但不限于InfluxDB,MySQL,OpenTSDB,PostgreSQL和Prometheus等多种数据源作为输入源数据。

官方地址:https://grafana.com/
下载地址:https://grafana.com/grafana/download

2.安装软件

上传并安装

yum install -y grafana-10.0.1-1.x86_64.rpm

设置开机自启

systemctl start grafana-server
systemctl enable grafana-server

检查端口3000

[root@192 ~]# ss -naltp|grep 3000
LISTEN     0      128       [::]:3000                  [::]:*                   users:(("grafana",pid=50386,fd=9))

开放3000端口

firewall-cmd --zone=public --add-port=3000/tcp --permanent && firewall-cmd --reload

浏览器打开

初始账号密码都是admin

在这里插入图片描述

3.添加普罗米修斯数据源

添加数据源

在这里插入图片描述

选择prometheus

在这里插入图片描述

设置ip端口等

在这里插入图片描述

设置完成保存

在这里插入图片描述

查看添加的数据源

在这里插入图片描述

4.为添加好的数据源做图形显示

在这里插入图片描述

在这里插入图片描述

选择图表类型

在这里插入图片描述

导入模板

选择8919这个id

在这里插入图片描述

5.grafana图形显示mysql监控数据

导入json

在这里插入图片描述

6.grafana+onealert报警

prometheus告警需要使用alertmanager这个组件,而且告警规则需要手动编写

这里使用grafana+onealert告警

在这里插入图片描述

在这里插入图片描述

在grafana中配置webhook url

在这里插入图片描述

7.配置邮件发送

修改/etc/grafana/grafana.ini

[smtp]
enabled = true
host = smtp.163.com:465
user = xxxxx@163.com
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = DIXXXXXXXXXXXXON
;cert_file =
;key_file =
skip_verify = true
from_address = xxxxxxxxx@163.com
from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
startTLS_policy = NoStartTLS

需要去对应的邮箱客户端开通smtp服务,并且拿到授权密码

修改完重启

六、创建告警顺序

转载优秀博主:https://blog.51cto.com/u_11529070/9174855

  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值