Prometheus的安装部署

目录

一、概述

二、Prometheus的安装

1、二进制方式

1.1、下载系统安装包​编辑

1.2、解压

1.3、创建数据目录,服务运行用户

1.4、设置为系统服务(创建服务运行脚本)

1.5、启动服务,并通过浏览器访问验证

2、容器方式

2.1、安装docker-ce

​编辑

2.2、下载Prometheus镜像

2.3、直接使用官方镜像启动,并映射prometheus.yml配置文件到本地进行管理

2.4、浏览器访问验证

三、Prometheus监控案例

1、监控远程linux主机:

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

1.2、验证:浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporrter在被监控端手机的监控信息​编辑

1.3、添加Prometheus相关配置,采集node_exporter数据

1.4、通过Prometheus管理界面查看:点击status——>点击targets——>发现多了一台监控目标​编辑

2、监控Windows机器

2.1、安装vmi-exporter

2.2、修改Prometheus主配置文件 /usr/local/prometheus/prometheus.yml

2.3、验证

3、监控远程MySQL 

3.1、下载并解压mysqld_exporter组件

3.2、安装mariadb数据库,并授权

3.3、添加至系统服务

3.4、启动服务

3.5、修改Prometheus的主配置文件 

3.6、验证


一、概述

基本原理

        通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

基本组件

  • Prometheus Server 根据配置完成数据采集, 服务发现以及数据存储,提供PromQL查询语言的支持。

  • Alertmanager 警告管理器,用来进行报警。

  • Exporters(探针): 是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

  • Push Gateway 支持临时性Job主动推送指标的中间网关。

Prometheus的特点  

  • 多维度数据模型。

  • 灵活的查询语言PromQL。

  • 不依赖分布式存储,单个服务器节点是自主的。

  • 通过基于HTTP的pull方式采集时序数据。

  • 可以通过中间网关进行时序列数据推送。

  • 通过服务发现或者静态配置来发现目标服务对象。

  • 支持多种多样的图表和界面展示,比如Grafana等。

二、Prometheus的安装

【在防火墙SELinux关闭的情况下,操作系统: cat /etc/centos-release   CentOS Linux release 7.9.2009 (Core) 】

1、二进制方式

1.1、下载系统安装包

1.2、解压

# tar xf prometheus-2.21.0.linux-amd64.tar.gz -C /usr/local/
创建软链接
# ln -sv /usr/local/prometheus-2.21.0.linux-amd64/ /usr/local/prometheus

1.3、创建数据目录,服务运行用户

# mkdir /usr/local/prometheus/data
# useradd prometheus -M -s /sbin/nologin
修改权限
# chown -R prometheus.prometheus /usr/local/prometheus/*

1.4、设置为系统服务(创建服务运行脚本)

# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=prometheus
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.enable-lifecycle --web.enable-admin-api --storage.tsdb.path=/usr/local/prometheus/data
Restart=on-failure
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
  • --config.file:指定prometheus的配置文件路径
  • --web.enable-lifecycle:指定prometheus配置更改后可以进行热加载
  • --web.enable-admin-api
  • --storage.tsdb.path:指定监控数据存储路径
  • --storage.tsdb.retention:指定数据保留时间 

1.5、启动服务,并通过浏览器访问验证

 浏览器访问:  http://192.168.8.187:9090

2、容器方式

2.1、安装docker-ce

1.安装一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2

2、添加软件信息
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

3、安装docker-ce
yum -y install docker-ce

4、开启服务
systemctl start docker

5、查看版本
docker --version

2.2、下载Prometheus镜像

#拉取镜像
docker pull prom/prometheus

查看:

2.3、直接使用官方镜像启动,并映射prometheus.yml配置文件到本地进行管理

(1)创建prometheus.yml文件
        # mkdir /data
        # vim /data/prometheus.yml

global:
  scrape_interval:     15s 

scrape_configs:
  - job_name: 'local'
    metrics_path: "/metrics"
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.8.189:9090']

(2)使用官方镜像运行

[root@k8s-node02 ~]# docker run -d --name prometheus -v /data:/data -p 9090:9090 prom/prometheus --config.file=/data/prometheus.yml
22322ff646c0aad39a1521607b7fcc2f42855f8458e2a0bdd85e938248cb7dc3

2.4、浏览器访问验证

三、Prometheus监控案例

1、监控远程linux主机:

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

下载软件
[root@agent ~]# wget -c https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz

解压软件
[root@agent ~]# tar xf node_exporter-1.0.1.linux-amd64.tar.gz -C /usr/local/
[root@agent ~]# ln -sv /usr/local/node_exporter-1.0.1.linux-amd64/ /usr/local/node_exporter
‘/usr/local/node_exporter’ -> ‘/usr/local/node_exporter-1.0.1.linux-amd64/’

创建服务运行用户
# useradd prometheus -M -s /sbin/nologin
修改权限
# chown -R prometheus.prometheus /usr/local/node_exporter/*

添加系统服务
[root@agent ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务
[root@agent ~]# systemctl daemon-reload
[root@agent ~]# systemctl start node_exporter.service

端口检查(默认端口)
[root@agent ~]# netstat -lnupt | grep 9100
tcp6       0      0 :::9100                 :::*                    LISTEN      62158/node_exporter

1.2、验证:浏览器访问http://被监控端IP:9100/metrics就可以查看到node_exporrter在被监控端收集的监控信息

1.3、添加Prometheus相关配置,采集node_exporter数据

 vim /usr/local/prometheus/prometheus.yml
        在主配置文件的最后加上下面三行:

          - job_name: 'agent1'
            static_configs:
            - targets: ['192.168.8.188:9100']

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
       # The label name is added as a label `label_name=<label_value>` to any timeseries scraped from this config.
        labels:
          app: "prometheus"
  - job_name: 'agent1'
    static_configs:
    - targets: ['192.168.8.188:9100']

1.4、通过Prometheus管理界面查看:点击status——>点击targets——>发现多了一台监控目标

2、监控Windows机器

2.1、安装vmi-exporter

首先在需要监控的Windows机器上安装wmi_exporter。wmi_exporter下载地址:https://github.com/martinlindhe/wmi_exporter/releases

安装完毕后,会自动创建一个开机自启的服务,默认端口为9182。

2.2、修改Prometheus主配置文件 /usr/local/prometheus/prometheus.yml

2.3、验证

3、监控远程MySQL 

3.1、下载并解压mysqld_exporter组件

#下载
wget -c https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

#解压
tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
ln -sv /usr/local/mysqld_exporter-0.12.1.linux-amd64/ /usr/local/mysqld_exporter
‘/usr/local/mysqld_exporter’ -> ‘/usr/local/mysqld_exporter-0.12.1.linux-amd64/’

3.2、安装mariadb数据库,并授权

下载
 yum install -y mariadb-server
启动服务
systemctl enable --now mariadb
授权用户
 mysql -e "grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123'"
(注意:授权ip为localhost,因为不是prometheus服务器来直接找mariadb获取数据,而是prometheus服务器找mysql_exporter,mysql_exporter再找mariadb。所以这个localhost是指的mysql_exporter的IP)

3.3、添加至系统服务

vim /usr/lib/systemd/system/mysql_exporter.service
[Unit]
Description=mysqld_exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure

[Install]
WantedBy=multi-user.target

3.4、启动服务

# chown -R prometheus.prometheus /usr/local/mysqld_exporter/*
# systemctl daemon-reload
# systemctl start mysql_exporter.service

# netstat -lnupt | grep 9104
tcp6       0      0 :::9104                 :::*                    LISTEN      11295/mysqld_export

3.5、修改Prometheus的主配置文件 

vim /usr/local/prometheus/prometheus.yml

3.6、验证

查看mysql_exporter在被监控端收集的监控信息:

web管理界面查看:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值