环境准备:

Node OS Hostname IP
prometheus& grafana server CentOS 7.7 server 100.100.142.212
prometheus node CentOS 7.7 node1 100.100.142.213

Prometheus部署:

一、下载:

1.下载Prometheus,官方下载地址:https://prometheus.io/download/

  1. [root@server ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-amd64.tar.gz

2.部署到/usr/local目录下

  1. [root@server ~]# tar xzvf prometheus-2.20.1.linux-amd64.tar.gz -C /usr/local
  2. [root@server ~]# cd /usr/local/ && mv prometheus-2.20.1.linux-amd64 prometheus

3.验证版本

  1. [root@server ~]# cd /usr/local/prometheus/
  2. [root@server prometheus]# ./prometheus --version

如下:
Prometheus Grafana部署实践 - 图2

二、配置文件

  1. [root@server prometheus]# vim prometheus.yml
  2. # my global config
  3. global:
  4. scrape_interval: 15s # 设置抓取(pull)时间间隔,默认是1m
  5. evaluation_interval: 15s # 设置rules评估时间间隔,默认是1m
  6. # scrape_timeout is set to the global default (10s).
  7. # 告警管理配置,暂未使用,默认配置
  8. # Alertmanager configuration
  9. alerting:
  10. alertmanagers:
  11. - static_configs:
  12. - targets:
  13. # - alertmanager:9093
  14. # 加载rules,并根据设置的时间间隔定期评估,暂未使用,默认配置
  15. # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  16. rule_files:
  17. # - "first_rules.yml"
  18. # - "second_rules.yml"
  19. # 抓取(pull),即监控目标配置
  20. # 默认只有主机本身的监控配置
  21. # A scrape configuration containing exactly one endpoint to scrape:
  22. # Here it's Prometheus itself.
  23. scrape_configs:
  24. # 监控目标的label(这里的监控目标只是一个metric,而不是指某特定主机,可以在特定主机取多个监控目标),在抓取的每条时间序列表中都会添加此label
  25. - job_name: prometheus
  26. scrape_interval: 5s # 可覆盖全局配置设置的抓取间隔,由15秒重写成5秒。
  27. scrape_timeout: 5s
  28. metrics_path: /metrics
  29. scheme: http
  30. static_configs: # 静态指定监控目标,暂不涉及使用一些服务发现机制发现目标
  31. - targets:
  32. - 100.100.142.212:9090
  33. labels: # (opentional)再添加一个label,标识了监控目标的主机
  34. instance: prometheus
  35. - job_name: node1
  36. scrape_interval: 10s
  37. scrape_timeout: 10s
  38. metrics_path: /metrics
  39. scheme: http
  40. static_configs:
  41. - targets: # 采用node_exporter默认开放的端口
  42. - 100.100.142.213:9100
  43. labels:
  44. instance: node1

三、设置用户

  1. # 添加用户,后期用此账号启动服务
  2. [root@server prometheus]# groupadd prometheus
  3. [root@server prometheus]# useradd -g prometheus -s /sbin/nologin prometheus
  4. #授权
  5. [root@server prometheus]# chown -R prometheus:prometheus /usr/local/prometheus/
  6. # 创建prometheus运行数据目录
  7. [root@server prometheus]# mkdir -p /var/lib/prometheus
  8. [root@server prometheus]# chown -R prometheus:prometheus /var/lib/prometheus/

四、设置system管理并开机自启动

创建system文件并给予用户权限

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

编辑文件,内容如下:

  1. [root@server ~]# vim /usr/lib/systemd/system/prometheus.service
  2. [Unit]
  3. Description=Prometheus
  4. Documentation=https://prometheus.io/
  5. After=network.target
  6. [Service]
  7. # Type设置为notify时,服务会不断重启
  8. Type=simple
  9. User=prometheus
  10. # --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
  11. ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.retention=360d --storage.tsdb.path=/var/lib/prometheus
  12. Restart=on-failure
  13. [Install]
  14. WantedBy=multi-user.target

设置开机自启动

  1. [root@server ~]# systemctl enable prometheus

五、启动Prometheus并验证

启动服务

  1. [root@server ~]# systemctl start prometheus

验证服务状态

  1. [root@server ~]# systemctl status prometheus

Prometheus Grafana部署实践 - 图3

六、访问web ui

Prometheus自带有简单的UI,访问:100.100.142.212:9090
Prometheus Grafana部署实践 - 图4
在Status菜单下,Configuration,Rule,Targets等,
Statu—>Configuration展示prometheus.yml的配置,如下:
Prometheus Grafana部署实践 - 图5
Statu—>Targets展示监控具体的监控目标,这里监控目标”linux”暂未设置node_exporter,未scrape数据,如下:
Prometheus Grafana部署实践 - 图6
访问100.100.142.212:9090/metrics,查看从exporter具体能抓到的数据,如下:
Prometheus Grafana部署实践 - 图7

部署node_exporter

一、下载&部署

  1. # 下载
  2. [root@node1 ~]# cd /usr/local/src/
  3. [root@node1 src]# wget https://github.com/prometheus/node_exporter/releases/download/v0.15.1/node_exporter-0.15.1.linux-amd64.tar.gz
  4. # 部署
  5. [root@node1 src]# tar -zxvf node_exporter-0.15.1.linux-amd64.tar.gz -C /usr/local/
  6. [root@node1 src]# cd /usr/local/
  7. [root@node1 local]# mv node_exporter-0.15.1.linux-amd64/ node_exporter/

二、设置用户

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

三、设置system管理并开机自启动

  1. [root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
  2. [Unit]
  3. Description=node_exporter
  4. Documentation=https://prometheus.io/
  5. After=network.target
  6. [Service]
  7. Type=simple
  8. User=prometheus
  9. ExecStart=/usr/local/node_exporter/node_exporter
  10. Restart=on-failure
  11. [Install]
  12. WantedBy=multi-user.target
  13. [root@node1 ~]# systemctl enable node_exporter
  14. [root@node1 ~]# systemctl start node_exporter

四、验证

访问:http://100.100.142.212:9090/targets,可见node1主机已经被监控,如下:
Prometheus Grafana部署实践 - 图8

部署Grafana

一、下载Grafana

官方下载链接:https://grafana.com/grafana/download

  1. #下载
  2. [root@server ~]# wget https://dl.grafana.com/oss/release/grafana-7.1.3-1.x86_64.rpm
  3. #安装
  4. [root@server ~]# yum localinstall grafana-7.1.3-1.x86_64.rpm -y

二、启动并设置开机自启动

  1. [root@server ~]# systemctl start grafana-server
  2. [root@server ~]# systemctl enable grafana-server

三、访问grafana并设置数据源

登录:访问100.100.142.212:3000,默认账号密码:admin/admin,登录后会让你设置新密码,根据提示操作即可。
Prometheus Grafana部署实践 - 图9
添加数据源:
1.登录后点击COMPLETE
Prometheus Grafana部署实践 - 图10
2.选择Prometheus,点击Select
Prometheus Grafana部署实践 - 图11
3.填写配置
Name自定义,URL填Prometheus地址,填完保存即可
Prometheus Grafana部署实践 - 图12
Prometheus Grafana部署实践 - 图13
导入模板,官方Dashboards地址:https://grafana.com/grafana/dashboards
1.左测【+】点击Import
Prometheus Grafana部署实践 - 图14
2.将选择好模板的ID填入或导入json文件,然后点击load
Prometheus Grafana部署实践 - 图15
3.然后自定义名称,选择数据源后点击import
Prometheus Grafana部署实践 - 图16
4.然后在主页点击HOME就可以看到自己的仪表盘,再进入就可以看到系统相关监控信息了
Prometheus Grafana部署实践 - 图17
Prometheus Grafana部署实践 - 图18