欢迎光临散文网 会员登陆 & 注册

Prometheus安装及教程

2023-02-15 09:19 作者:bili_39183997178  | 我要投稿

• 也是一款监控软件,也是一个时序数据库。

• 主要用在容器监控方面,也可以用于常规的主机监控。

• 使用google公司开发的go语言编写。

• Prometheus是一个框架,可以与其他组件完美结合。

部署Prometheus服务器

• prometheus:192.168.4.10

• 被控端node1:192.168.4.11

[root@zzgrhel8 ~]# scp /linux-soft/2/prometheus_soft.tar.gz 192.168.4.10:/root/

[root@prometheus ~]# tar xf prometheus_soft.tar.gz
[root@prometheus ~]# cd prometheus_soft/

# prometheus是经过编译后的go语言程序,相当于绿色软件,解压即用
[root@prometheus prometheus_soft]# tar xf prometheus-2.17.2.linux-386.tar.gz
[root@prometheus prometheus_soft]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus

# 修改配置文件
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
 29     - targets: ['192.168.4.10:9090']

# 注意:prometheus主机的时间需要与真机时间一致,如果不一致,修改时间
[root@prometheus ~]# date -s "20220105 14:18:00"

# 检查语法
[root@prometheus ~]# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
Checking /usr/local/prometheus/prometheus.yml
  SUCCESS: 0 rule files found

# 创建服务文件
[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
After=network.target

[Service]
ExecStart=/usr/local/prometheus/prometheus \
  --config.file=/usr/local/prometheus/prometheus.yml \
  --storage.tsdb.path=/usr/local/prometheus/data/

[Install]
WantedBy=multi-user.target

# 启服务
[root@prometheus ~]# systemctl daemon-reload
[root@prometheus ~]# systemctl enable prometheus.service --now
[root@prometheus ~]# ss -tlnp | grep :9090
LISTEN     0      128         :::9090

查看监控页面

• 访问http://192.168.4.10:9090

• 被监控的对象称为targets

prometheus已经在监控自己了

查看监控图像:

添加需要查看的监控项:

查看监控项的图形信息:

添加被监控端

• 监控方式:

– 拉取:pull。监控端联系被监控端,采集数据

– 推送:push。被监控端主动把数据发给监控端。在prometheus中,push的方式需要额外的组件pushgateway

• 被监控端根据自身运行的服务,可以运行不同的exporter(被监控端安装的、可以与Prometheus通信,实现数据传递的软件)

• exporter列表:https://prometheus.io/docs/instrumenting/exporters/

部署通用的监控exporter

• node-exporter用于监控硬件和系统的常用指标

• exporter运行于被监控端,以服务的形式存在。每个exporter所使用的端口号都不一样。

• 在node1[192.168.4.11]上部署node exporter

# 部署
[root@prometheus prometheus_soft]# scp node_exporter-1.0.0-rc.0.linux-amd64.tar.gz 192.168.4.11:/root/

[root@node1 ~]# tar xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
[root@node1 ~]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter

[root@node1 ~]# 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

[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl enable node_exporter.service --now
[root@node1 ~]# ss -tlnp | grep :9100
LISTEN     0      128         :::9100

• 在Prometheus服务器上添加监控节点

# 在配置文件中追加以下内容。特别注意缩进
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
  - job_name: 'node1'
    static_configs:
    - targets: ['192.168.4.11:9100']
[root@prometheus ~]# systemctl restart prometheus.service

查看结果:

• 查看node1节点的1分钟平均负载

部署grafana

• 装包、启服务

[root@prometheus ~]# cd prometheus_soft/
[root@prometheus prometheus_soft]# ls *rpm
grafana-6.7.3-1.x86_64.rpm
[root@prometheus prometheus_soft]# yum install -y grafana-6.7.3-1.x86_64.rpm
[root@prometheus ~]# systemctl enable grafana-server.service --now

• 修改配置,对接prometheus

访问http://192.168.4.10:3000。初始用户名和密码都是admin。第一次登陆时,要求改密码,我的密码改为tedu.cn。

对接数据的步骤:

添加数据源

为数据展示选择展示方式(dashboard仪表盘)

查看结果

选择展示方式。导入模板文件,展示不同主题风格。

查看结果:

展示node1的监控信息

• grafana模板下载:https://grafana.com/grafana/dashboards/

• 导入主机监控模板

# 在真机上解压prometheus_soft.tar.gz
[root@zzgrhel8 ~]# tar xf /linux-soft/2/prometheus_soft.tar.gz 

监控mariadb数据库

在node1节点上安装数据库

[root@node1 ~]# cat /etc/yum.repos.d/local.repo
[local_repo]
name=CentOS-$releasever - Base
baseurl=ftp://192.168.4.254/centos-1804
enabled=1
gpgcheck=0

[root@node1 ~]# yum install -y mariadb-server
[root@node1 ~]# systemctl enable mariadb --now

在node1上安装mysql exporter

• mysql exporter需要访问数据库,所以需要在数据库中为exporter创建授权用户

[root@node1 ~]# mysql
MariaDB [(none)]> grant all on *.* to jerry@'localhost' identified by '123';    # 创建用户jerry,密码是123
MariaDB [(none)]> exit

• 配置mysql exporter

[root@prometheus prometheus_soft]# scp mysqld_exporter-0.12.1.linux-amd64.tar.gz 192.168.4.11:/root/

[root@node1 ~]# tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@node1 ~]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter

# 编写用于连接mysql服务的配置文件
[root@node1 ~]# vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=127.0.0.1
port=3306
user=jerry
password=123

# 创建service文件
[root@node1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_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

# 启服务
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl enable mysqld_exporter.service --now
[root@node1 ~]# ss -tlnp | grep :9104
LISTEN     0      128         :::9104

配置prometheus监控mysql

# 修改配置文件,追加以下内容:
[root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
  - job_name: 'mysql'
    static_configs:
    - targets: ['192.168.4.11:9104']
[root@prometheus ~]# systemctl restart prometheus.service

查看状态:

在grafana中展示mysql exporter数据

模板切换

查看其模板


Prometheus安装及教程的评论 (共 条)

分享到微博请遵守国家法律