阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Prometheus+Grafana搭建监控系统实践

190次阅读
没有评论

共计 6687 个字符,预计需要花费 17 分钟才能阅读完成。

使用 Prometheus+Grafana 搭建监控系统实践

一.环境

1. 拓扑

使用 Prometheus+Grafana 搭建监控系统实践

2. 节点

Node

OS

Hostname

IP

Remark

prometheus& grafana server

CentOS 7.4

prometheus

172.20.1.211

 

prometheus node

centos 7.4

node1

172.20.1.212

 

3. 版本(截止 20171130)

Soft/Node

Version

Download

prometheus

2.0.0

https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

node_exporter

v0.15.1

https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

grafana

4.6.2-1

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm

 

二.部署 prometheus 

在 prometheus& grafana server 节点部署 prometheus 服务。

1. 下载 & 部署

# 下载
[root@prometheus src]# cd /usr/local/src/
[root@prometheus src]# wget https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar.gz

# 部署到 /usr/local/ 目录
# promethus 不用编译安装,解压目录中有配置文件与启动文件
[root@prometheus src]# tar -zxvf prometheus-2.0.0.linux-amd64.tar.gz -C /usr/local/
[root@prometheus src]# cd /usr/local/
[root@prometheus local]# mv prometheus-2.0.0.linux-amd64/ prometheus/

# 验证
[root@prometheus local]# cd prometheus/
[root@prometheus prometheus]# ./prometheus --version

使用 Prometheus+Grafana 搭建监控系统实践

2. 配置文件

# 解压目录中的 prometheus.yml
# 简单验证,主要配置采用默认文件配置,有修改 / 新增处用红色标示
[root@prometheus prometheus]# vim prometheus.yml
# 全局配置
global:
  scrape_interval:     15s # 设置抓取 (pull) 时间间隔,默认是 1m
  evaluation_interval: 15s # 设置 rules 评估时间间隔,默认是 1m
  # scrape_timeout is set to the global default (10s).

# 告警管理配置,暂未使用,默认配置
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 加载 rules,并根据设置的时间间隔定期评估,暂未使用,默认配置
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# 抓取(pull),即监控目标配置
# 默认只有主机本身的监控配置
scrape_configs:
  # 监控目标的 label(这里的监控目标只是一个 metric,而不是指某特定主机,可以在特定主机取多个监控目标),在抓取的每条时间序列表中都会添加此 label
  - job_name: 'prometheus'

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

    # 可覆盖全局配置设置的抓取间隔,由 15 秒重写成 5 秒。scrape_interval: 5s

    # 静态指定监控目标,暂不涉及使用一些服务发现机制发现目标
static_configs:
      - targets: ['localhost:9090']
        # (opentional)再添加一个 label,标识了监控目标的主机
labels:
          instance: prometheus

  - job_name: 'linux'
    scrape_interval: 10s
static_configs:
  # 采用 node_exporter 默认开放的端口
      - targets: ['172.20.1.212:9100']
labels:
          instance: node1

3. 设置用户

# 添加用户,后期用此账号启动服务
[root@prometheus prom etheus]# groupadd prometheus
[root@prometheus prometheus]# useradd -g prometheus -s /sbin/nologin prometheus

# 赋权
[root@prometheus prometheus]# cd ~
[root@prometheus ~]# chown -R prometheus:prometheus /usr/local/prometheus/

# 创建 prometheus 运行数据目录
[root@prometheus ~]# mkdir -p /var/lib/prometheus
[root@prometheus ~]# chown -R prometheus:prometheus /var/lib/prometheus/

4. 设置开机启动

[root@prometheus ~]# touch /usr/lib/systemd/system/prometheus.service 
[root@prometheus ~]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service

[root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/
After=network.target

[Service]
# Type 设置为 notify 时,服务会不断重启
Type=simple
User=prometheus
# --storage.tsdb.path 是可选项,默认数据目录在运行目录的./dada 目录中
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 设置开机启动
[root@prometheus ~]# systemctl enable Prometheus
[root@prometheus ~]# systemctl start prometheus

5. 设置 iptables

[root@prometheus ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT

[root@prometheus ~]# service iptables restart

6. 启动并验证

1)查看服务状态

[root@prometheus ~]# systemctl status prometheus

使用 Prometheus+Grafana 搭建监控系统实践

[root@prometheus ~]# netstat -tunlp | grep 9090

使用 Prometheus+Grafana 搭建监控系统实践

2)web ui

Prometheus 自带有简单的 UI,http://172.20.1.211:9090

使用 Prometheus+Grafana 搭建监控系统实践

在 Status 菜单下,Configuration,Rule,Targets 等,

Statu–>Configuration 展示 prometheus.yml 的配置,如下:

使用 Prometheus+Grafana 搭建监控系统实践

Statu–>Targets 展示监控具体的监控目标,这里监控目标 ”linux” 暂未设置 node_exporter,未 scrape 数据,如下:

使用 Prometheus+Grafana 搭建监控系统实践

7. 绘图

访问:http://172.20.1.211:9090/metrics,查看从 exporter 具体能抓到的数据,如下:

使用 Prometheus+Grafana 搭建监控系统实践

访问:http://172.20.1.211:9090,在输入框中任意输入 1 个 exporter 能抓取得值,点击 ”Execute” 与 ”Execute” 按钮,即可见相应抓取数据的图形,同时可对时间与 unit 做调整,如下:

使用 Prometheus+Grafana 搭建监控系统实践

三.部署 node_exporter

Node_exporter 收集机器的系统数据,这里采用 prometheus 官方提供的 exporter,除 node_exporter 外,官方还提供 consul,memcached,haproxy,MySQLd 等 exporter,具体可查看官网。

这里在 prometheus node 节点部署相关服务。

1. 下载 & 部署

# 下载
[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# wget https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz

# 部署
[root@node1 src]# tar -zxvf node_exporter-0.15.1.linux-amd64.tar.gz -C /usr/local/
[root@node1 src]# cd /usr/local/
[root@node1 local]# mv node_exporter-0.15.1.linux-amd64/ node_exporter/

2. 设置用户

[root@node1 ~]# groupadd prometheus
[root@node1 ~]# useradd -g prometheus -s /sbin/nologin prometheus
[root@node1 ~]# chown -R prometheus:prometheus /usr/local/node_exporter/

3. 设置开机启动

[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

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

[Install]
WantedBy=multi-user.target

[root@node1 ~]# systemctl enable node_exporter
[root@node1 ~]# systemctl start node_exporter

4. 设置 iptables

# 官方 node_exporter 默认使用 9100 端口
[root@node1 ~]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9100 -j ACCEPT

[root@node1 ~]# service iptables restart

5. 验证

访问:http://172.20.1.211:9090,可见 node1 主机已经可被监控,如下:

使用 Prometheus+Grafana 搭建监控系统实践

四.部署 grafana

在 prometheus& grafana server 节点部署 grafana 服务。

1. 下载 & 安装

# 下载
[root@prometheus ~]# cd /usr/local/src/
[root@prometheus src]# wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm

# 安装
[root@prometheus src]# yum localinstall grafana-4.6.2-1.x86_64.rpm

2. 配置文件

配置文件位于 /etc/grafana/grafana.ini,这里暂时保持默认配置即可。

3. 设置开机启动

[root@prometheus src]# systemctl enable grafana-server
[root@prometheus src]# systemctl start grafana-server

4. 设置 iptables

# grafana-server 默认使用 3000 端口
[root@prometheus src]# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT

[root@prometheus src]# service iptables restart

5. 添加数据源 

1)登陆

访问:http://172.20.1.211:3000,默认账号 / 密码:admin/admin

使用 Prometheus+Grafana 搭建监控系统实践

2)添加数据源

在登陆首页,点击 ”Add data source” 按钮,跳转到添加数据源页面,配置如下:

Name: prometheus

Type: prometheus

URL: http://localhost:9090/

Access: proxy

取消 Default 的勾选,其余默认,点击 ”Add”,如下:

使用 Prometheus+Grafana 搭建监控系统实践

在 ”Dashboards” 页签下 ”import” 自带的模版,如下:

使用 Prometheus+Grafana 搭建监控系统实践

6. 导入 dashboard

从 grafana 官网下载相关 dashboaed 到本地,如:https://grafana.com/dashboards/405

Grafana 首页 –> 左上角图标 –>Dashboard–>import

使用 Prometheus+Grafana 搭建监控系统实践

Upload 已下载至本地的 json 文件(或者使用 dashboard id,如这里的 405),如下:

使用 Prometheus+Grafana 搭建监控系统实践

数据源选择 ”prometheus”,即添加的数据源 name,点击 ”Import” 按钮,如下:

使用 Prometheus+Grafana 搭建监控系统实践

7. 查看 dashboard

Grafana 首页 –> 左上角图标 –>Dashboard–>Home,Home 下拉列表中可见有已添加的两个 dashboard,”Prometheus Stats” 与 ”Node Exporter Server Metrics”,选择 1 个即可,如下:

使用 Prometheus+Grafana 搭建监控系统实践

使用 Prometheus+Grafana 搭建监控系统实践

使用 Prometheus+Grafana 搭建监控系统实践

参考文档:

  1. Prometheus github:https://github.com/prometheus
  2. grafana github:https://github.com/grafana/grafana
  3. Prometheus getting_started:https://prometheus.io/docs/prometheus/latest/getting_started/
  4. Prometheus node_exporter:https://github.com/prometheus/node_exporter
  5. Prometheus 部署(docker,optional):https://prometheus.io/docs/prometheus/latest/installation/
  6. Prometheus 配置文件详解:https://prometheus.io/docs/prometheus/latest/configuration/configuration/
  7. grafana 部署:http://docs.grafana.org/installation/rpm/

本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-01/150354.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6687字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中