一、简介:

prometheus是谷歌用golang语言开发的一款开源的监控软件,使用安装在远程机器上的exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。

Prometheus为了支持各种中间件以及第三方的监控提供了exporter,大家可以把它理解成监控适配器,将不同指标类型和格式的数据统一转化为Prometheus能够识别的指标类型。

例如Node exporter主要通过读取Linux的/proc、/sys目录下的系统文件获取操作系统运行状态,redis exporter通过Reids命令行获取指标,mysql exporter通过读取数据库监控表获取MySQL的性能数据。他们将这些各种各样的的数据转化为标准的Prometheus格式,并提供HTTP查询接口。

Prometheus的流行和Kubernetes密不可分,它支持对Kubernetes、容器、OpenStack的监控。

普罗米修斯下载网址:https://prometheus.io/download/

监控集成器下载地址:http://www.coderdocument.com/docs/prometheus/v2.14/instrumenting/exporters_and_integrations.html

二、安装

实践过程中,首先要再安装prometheus的服务器上安装go 语言环境。
在其他需要监控的服务器上安装对应的export,这里我们只示例了监控linux服务器的node_exporter, 然后我们安装grafana,并配置监控linux服务器指标的dashboard。

具体安装过程步骤

1、安装go

Prometheus 是用golang开发的,所以要安go环境。

解压缩:

tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz

修改配置文件

vim  /etc/profile

在文件的最后添加如下内容:

export PATH=$PATH:/usr/local/go/bin

保存退出后,让配置生效:

source  /etc/profile

验证是否安装成功

go  version
2、在服务器上安装prometheus监控

开始安装prometheus,可以去官网下载对应系统的版本,如下图:

Grafana ELK log 怎么配 grafana配置prometheus_linux

如果安装的服务器可以连接外网可以使用wget下载

# 下载
wget https://github.com/prometheus/prometheus/releases/download/v2.36.1/prometheus-2.36.1.linux-amd64.tar.gz

# 解压到安装目录
tar -zxvf prometheus-2.36.1.linux-amd64.tar.gz -C /book/install/

查看版本

./prometheus --version

配置一下监控的配置文件:prometheus.yml
下面有对应的配置解释

global:
  # 默认情况下,每15s拉取一次目标采样点数据。
  scrape_interval:     15s 
  # 每15秒评估一次规则。默认值为每1分钟。
  evaluation_interval: 15s 

# 告警配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
    # 监控job的名称
  - job_name: 'prometheus'
    # 覆盖global的采样点,拉取时间间隔10s
    scrape_interval: 10s
    static_configs:
    - targets: ['localhost:9090']

下面是我操作时安装的配置:

global:
  scrape_interval:     15s 
  evaluation_interval: 15s 

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

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:

  - job_name: 'prometheus'

    static_configs:
    - targets: ['localhost:9090']


 - job_name: 'linux' 
    static_configs: 
    - targets: ['192.168.1.68:9077','192.168.1.69:9077']

配置完成后,到安装目录运行:

./prometheus

或者我们可以配置为系统服务
首先root用户进入到systemd目录下:

cd /usr/lib/systemd/system

创建文件

vim prometheus.service

添加以下内容:

[Unit]
Description=https://prometheus.io
  
[Service]
Restart=on-failure
ExecStart=/book/install/prometheus-2.36.1.linux-amd64/prometheus --config.file=/book/install/prometheus-2.36.1.linux-amd64/prometheus.yml --web.listen-address=:9090

[Install]                      
WantedBy=multi-user.target

使系统文件生效

systemctl daemon-reload

启动prometheus服务

systemctl start prometheus
3、需要监控的客户服务器安装node_exporter

需要监控的服务器安装node_exporter,安装了prometheus的服务器安装node_exporter一定要换发送的端口

#下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz

# 解压
tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz -C /book/install/

启动node_exporter,指定端口为9077

./node_exporter --web.listen-address=":9077"

也可以用root用户配置服务的形式启动,创建node_exporter.service文件

vim /usr/lib/systemd/system/node_exporter.service

添加如下内容,指定了端口9177,默认的是9100,我们可以知道是端口可以通过此参数更改的,防止有些服务器9100已经被占用,同时上面在prometheus.yml配置文件配置的各服务器端口也是对应的是这个。
注意:在下面配置文件ExecStart启动时–web.listen-address=:9077千万不要加引号,端口解析不出来

[Unit]
Description=node_exporter
After=network.target 

[Service]
ExecStart=/book/install/node_exporter-1.1.2.linux-amd64/node_exporter --web.listen-address=:9077
Restart=on-failure

[Install]
WantedBy=multi-user.target

让配置生效

systemctl daemon-reload

启动node_exporter服务

systemctl start node_exporter

各服务器工作节点都启动成功后可以在http://ip:9090(安装prometheus的服务器地址)下查看各服务器是否已经启动好了node_exporter。启动好了通了的话会是下图中的UP状态。

Grafana ELK log 怎么配 grafana配置prometheus_prometheus_02

Grafana ELK log 怎么配 grafana配置prometheus_Grafana ELK log 怎么配_03

4、安装 Grafana 展示 Prometheus 数据

wget清华源下载,或者直接到清华源网址下载:
https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/

wget下载容易报证书过期,还是去网址下载下来上传到服务器。

wget https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-7.5.3-1.x86_64.rpm

root用户安装

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

启动grafana服务

systemctl start grafana-server.service

查看服务状态

systemctl status grafana-server.service

Grafana ELK log 怎么配 grafana配置prometheus_服务器_04

访问ui地址:

http://ip:3000    ip为安装grafana的服务器地址

Grafana ELK log 怎么配 grafana配置prometheus_运维_05


初次登录默认用户密码都是:admin,会让你改密码。

接下来按照下面步骤添加Prometheus数据源

Configuration -> Data Sources ->add data source -> Prometheus

Grafana ELK log 怎么配 grafana配置prometheus_prometheus_06


Grafana ELK log 怎么配 grafana配置prometheus_prometheus_07

Grafana ELK log 怎么配 grafana配置prometheus_prometheus_08

想要看到监控服务器指标的图表,需要创建一个dashbard来展示数据,这里我们只用prometheus采集了linux服务器主机的一些数据,所以我要到grafana下载已经画好的为linux准备的dashboard,到这个地址:https://grafana.com/grafana/dashboards/?search=8919 查询linux主机详情的dashboard对应的编号是8919。

下载好对应的json文件

Grafana ELK log 怎么配 grafana配置prometheus_linux_09

Grafana ELK log 怎么配 grafana配置prometheus_运维_10

导入下载的对应json文件

Grafana ELK log 怎么配 grafana配置prometheus_linux_11

Grafana ELK log 怎么配 grafana配置prometheus_运维_12

最后完成的漂亮的界面截图,记得退出时报错这个dashboard,以后登入就可以看到:

Grafana ELK log 怎么配 grafana配置prometheus_运维_13


完成了!