Centos7安装Promethus(普罗米修斯)

Centos7安装Promethus(普罗米修斯)

一、普罗米修斯概述

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动了prometheus的发展。
https://prometheus.io/docs/introduction/overview/

二、时间序列数据

1、什么是序列数据

时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化的数据被称为时序数据。
应用的场景很多, 如:

  • 无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距离等等。每时每刻都要将数据记录下来做分析。
  • 某一个地区的各车辆的行驶轨迹数据
  • 传统证券行业实时交易数据
  • 实时运维监控数据等

2、时间序列数据特点

  • 性能好

关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理大规模数据,但依然比不上时间序列数据库。

  • 存储成本低

高效的压缩算法,节省存储空间,有效降低IO
Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了 200多G(来自官方数据)

3、Prometheus的主要特征

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HF162AyS-1629273687996)(C:\Users\百趣网\AppData\Roaming\Typora\typora-user-images\image-20210817152117077.png)]

三、实验环境准备

服务器IP地址
Prometneus服务器192.168.10.69
被监控服务器192.168.10.65
grafana服务器192.168.10.64
1. 静态ip(要求能上外网)

2. 主机名
各自配置好主机名 
# hostnamectl set-hostname master
# hostnamectl set-hostname node1
# hostnamectl set-hostname node2
三台都互相绑定IP与主机名 
# vim /etc/hosts            
192.168.10.69  master
192.168.10.64  node1
192.168.10.65  node2

echo "192.168.10.69  master
192.168.10.64  node1
192.168.10.65  node2">>/etc/hosts

3. 时间同步(时间同步一定要确认一下)
[root@master ~]# yum install -y  ntpdate && ntpdate time.windows.com

4. 关闭防火墙,selinux
# systemctl stop firewalld 
# systemctl disable firewalld 
# iptables -F

1、安装prometheus

https://prometheus.io/download/ 下载相应版本,安装到服务器上
官网提供的是二进制版,解压就能用,不需要编译,下面是安装包下载地址

链接:https://pan.baidu.com/s/1A1e1UDMU5cMt6eKfq3IsEg
提取码:r435

上传prometheus-2.5.0.linux-amd64.tar.gz

[root@master ~]# ls
prometheus-2.5.0.linux-amd64.tar.gz

[root@master ~]# tar -zxvf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local/
[root@master ~]# mv /usr/local/prometheus-2.5.0.linux-amd64/  /usr/local/prometheus
[root@master local]# cd prometheus/
[root@master prometheus]# ls
console_libraries  consoles  LICENSE  NOTICE  prometheus  prometheus.yml  promtool
#直接使用默认配置文件启动
[root@master prometheus]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &

#确认端口(9090)
[root@master ~]# netstat -lntp | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      19328/prometheus    

[root@master ~]# lsof -i:9090
COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
prometheu 20436 root    6u  IPv6 4035091      0t0  TCP localhost:33792->localhost:websm (ESTABLISHED)
prometheu 20436 root    7u  IPv6 4032453      0t0  TCP *:websm (LISTEN)
prometheu 20436 root    8u  IPv4 4032455      0t0  TCP localhost:48488->localhost:websm (ESTABLISHED)
prometheu 20436 root    9u  IPv6 4032456      0t0  TCP localhost:websm->localhost:48488 (ESTABLISHED)
prometheu 20436 root   10u  IPv6 4034444      0t0  TCP localhost:websm->localhost:33792 (ESTABLISHED)

2、prometheus界面

通过浏览器访问http://服务器IP:9090就可以访问到prometheus的主界面

在这里插入图片描述

默认只监控了本机一台,点Status --》点Targets --》可以看到只监控了本机

在这里插入图片描述

3、主机数据展示

通过http://服务器IP:9090/metrics可以查看到监控的数据

在这里插入图片描述

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

在这里插入图片描述

4、监控远程Linux主机

① 在远程linux主机(被监控端agent1)上安装node_exporter组件
下载地址: https://prometheus.io/download/

上传node_exporter-0.16.0.linux-amd64.tar.gz

[root@node1 ~]# ls
1.html  1.html.10589.2021-08-02@15:25:10~  anaconda-ks.cfg  node_exporter-0.16.0.linux-amd64.tar.gz
[root@node1 ~]# tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local/
node_exporter-0.16.0.linux-amd64/
node_exporter-0.16.0.linux-amd64/LICENSE
node_exporter-0.16.0.linux-amd64/node_exporter
node_exporter-0.16.0.linux-amd64/NOTICE
[root@node1 ~]# mv /usr/local/node_exporter-0.16.0.linux-amd64/ /usr/local/node_exporter

里面就一个启动命令node_exporter,可以直接使用此命令启动

[root@node1 ~]# ps -ef |grep 9100
root     23877 23846  0 16:27 pts/0    00:00:00 grep --color=auto 9100

扩展: nohup命令: 如果把启动node_exporter的终端给关闭,那么进程也会随之关闭。nohup命令会帮你解决这个问题

② 通过浏览器访问http://被监控端IP:9100/metrics就可以查看到 node_exporter在被监控端收集的监控信息

http://192.168.10.65:9100/metrics

在这里插入图片描述

③ 回到prometheus服务器的配置文件里添加被监控机器的配置段

在主配置文件最后加上下面三行

[root@master prometheus]# vim /usr/local/prometheus/prometheus.yml
  - job_name: 'node1'     # 取一个job名称来代 表被监控的机器  
    static_configs:       
    - targets: ['192.168.10.65:9100']     # 这里改成被监控机器 的IP,后面端口接9100

在这里插入图片描述

改完配置文件后,重启服务

[root@master prometheus]# ps -ef | grep prometheus
root     20436 17886  0 16:00 pts/0    00:00:01 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
root     23037 17886  0 16:33 pts/0    00:00:00 grep --color=auto prometheus
[root@master prometheus]# kill -9 20436
[root@master prometheus]# ps -ef | grep prometheus
root     23069 17886  0 16:34 pts/0    00:00:00 grep --color=auto prometheus

#重启prometheus
[root@master prometheus]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
[root@master prometheus]# netstat -lntp |grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      23106/prometheus    
[root@master prometheus]# ss -lntp | grep 9090
LISTEN     0      128       [::]:9090                  [::]:*                   users:(("prometheus",pid=23106,fd=6))

④ 回到web管理界面 --》点Status --》点Targets --》可以看到多了一台监 控目标

在这里插入图片描述

5、监控远程MySQL

① 在被管理机node2上安装mysqld_exporter组件

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

上传node_exporter-0.16.0.linux-amd64.tar.gz

[root@node2 ~]# ls
node_exporter-0.16.0.linux-amd64.tar.gz

[root@node2 ~]# tar xf mysqld_exporter-0.11.0.linux-amd64.tar.gz -C /usr/local/
[root@node2 ~]# mv /usr/local/mysqld_exporter-0.11.0.linux-amd64/ /usr/local/mysqld_exporter
[root@node2 ~]# ls /usr/local/mysqld_exporter/
LICENSE  mysqld_exporter  NOTICE

#安装mariadb数据库,并授权
[root@node2 mysqld_exporter]#  yum install mariadb\* -y
[root@node2 mysqld_exporter]# systemctl start mariadb
[root@node2 mysqld_exporter]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@node2 mysqld_exporter]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
MariaDB [(none)]> grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identif
ied by '123';

(注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb 获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter 再找mariadb。所以这个localhost是指的mysql_exporter的IP)
Query OK, 0 rows affected (0.00 sec)

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

MariaDB [(none)]> exit


#创建一个mariadb配置文件,写上连接的用户名与密码(和上面的授权的用户名 和密码要对应)
[root@node2 mysqld_exporter]# cat /usr/local/mysqld_exporter/.my.cnf
[client] 
user=mysql_monitor 
password=123

#启动mysqld_exporter
[root@node2 mysqld_exporter]# nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf &
#查看启动端口(9104)
[root@node2 mysqld_exporter]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      16452/mysqld        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5770/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      5852/master         
tcp6       0      0 :::9104                 :::*                    LISTEN      20627/./mysqld_expo 
tcp6       0      0 :::22                   :::*                    LISTEN      5770/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      5852/master         
[root@node2 mysqld_exporter]# netstat -lntp |grep 9104
tcp6       0      0 :::9104                 :::*                    LISTEN      20627/./mysqld_expo

② 回到prometheus服务器的配置文件里添加被监控的mariadb的配置段

[root@master ~]# vim /usr/local/prometheus/prometheus.yml
  - job_name: 'node2-mysql'
    static_configs:
    - targets: ['192.168.10.66:9104']
    
    
#改完配置文件后,重启服务
[root@master ~]# pkill prometheus
[root@master ~]# lsof -i:9090
[root@master prometheus]# /usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
#查看端口(9090)
[root@master ~]# lsof -i:9090
COMMAND     PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
prometheu 30731 root    3u  IPv6 4349041      0t0  TCP *:websm (LISTEN)
prometheu 30731 root    7u  IPv4 4349043      0t0  TCP localhost:48498->localhost:websm (ESTABLISHED)
prometheu 30731 root    8u  IPv6 4349044      0t0  TCP localhost:websm->localhost:48498 (ESTABLISHED)
prometheu 30731 root   10u  IPv6 4349222      0t0  TCP localhost:33804->localhost:websm (ESTABLISHED)
prometheu 30731 root   11u  IPv6 4348321      0t0  TCP localhost:websm->localhost:33804 (ESTABLISHED)
[root@master ~]# netstat -lntp | grep 9090
tcp6       0      0 :::9090                 :::*                    LISTEN      30731/prometheus

③ 回到web管理界面 --》点Status --》点Targets --》可以看到监控mariadb了

在这里插入图片描述

在这里插入图片描述

四、Grafana可视化图形工具

1.安装grafana请看上篇文章

https://blog.csdn.net/weixin_45858439/article/details/119755969

wget https://dl.grafana.com/oss/release/grafana-5.3.4-1.x86_64.rpm
yum localinstall grafana-5.3.4-1.x86_64.rpm -y
systemctl start grafana-server

登录:ip:3000
用户名:admin
密码:admin

2.使用Grafana连接Prometheus

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后为添加好的数据源做图形显示

在这里插入图片描述

在这里插入图片描述

保存

在这里插入图片描述

最后在dashboard可以查看到

在这里插入图片描述

匹配条件显示

在这里插入图片描述

在这里插入图片描述

3.Grafana图形显示MySQL监控数据

① 在grafana上修改配置文件,并下载安装mysql监控的dashboard(包含相关json文件,这些json文件可以看作是开发人员开发的一个监控模板)

参考网址: https://github.com/percona/grafana-dashboards

#在grafana配置文件里最后加上以下三行
[root@grafana ~]# vim /etc/grafana/grafana.ini
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

[root@grafana ~]# cd /var/lib/grafana/
[root@grafana grafana]# git clone https://github.com/percona/grafana-dashboards.git
[root@grafana grafana]# cp -r grafana-dashboards/dashboards/ /var/lib/grafana/
[root@grafana grafana]# systemctl restart grafana-server

② 在grafana图形界面导入相关json文件

在这里插入图片描述

③ 点import导入后,报prometheus数据源找不到,因为这些json文件里默认

要找的就是叫Prometheus的数据源,但我们前面建立的数据源却是叫

prometheus_data(坑啊)

那么请自行把原来的prometheus_data源改名为Prometheus即可(注意:第一个字母P是大写)

然后再回去刷新,就有数据了(如下图所示)

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值