环境准备:
| 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/
[root@server ~]# wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-amd64.tar.gz
2.部署到/usr/local目录下
[root@server ~]# tar xzvf prometheus-2.20.1.linux-amd64.tar.gz -C /usr/local[root@server ~]# cd /usr/local/ && mv prometheus-2.20.1.linux-amd64 prometheus
3.验证版本
[root@server ~]# cd /usr/local/prometheus/[root@server prometheus]# ./prometheus --version
二、配置文件
[root@server prometheus]# vim prometheus.yml# my global configglobal:scrape_interval: 15s # 设置抓取(pull)时间间隔,默认是1mevaluation_interval: 15s # 设置rules评估时间间隔,默认是1m# scrape_timeout is set to the global default (10s).# 告警管理配置,暂未使用,默认配置# Alertmanager configurationalerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# 加载rules,并根据设置的时间间隔定期评估,暂未使用,默认配置# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:# - "first_rules.yml"# - "second_rules.yml"# 抓取(pull),即监控目标配置# 默认只有主机本身的监控配置# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs:# 监控目标的label(这里的监控目标只是一个metric,而不是指某特定主机,可以在特定主机取多个监控目标),在抓取的每条时间序列表中都会添加此label- job_name: prometheusscrape_interval: 5s # 可覆盖全局配置设置的抓取间隔,由15秒重写成5秒。scrape_timeout: 5smetrics_path: /metricsscheme: httpstatic_configs: # 静态指定监控目标,暂不涉及使用一些服务发现机制发现目标- targets:- 100.100.142.212:9090labels: # (opentional)再添加一个label,标识了监控目标的主机instance: prometheus- job_name: node1scrape_interval: 10sscrape_timeout: 10smetrics_path: /metricsscheme: httpstatic_configs:- targets: # 采用node_exporter默认开放的端口- 100.100.142.213:9100labels:instance: node1
三、设置用户
# 添加用户,后期用此账号启动服务[root@server prometheus]# groupadd prometheus[root@server prometheus]# useradd -g prometheus -s /sbin/nologin prometheus#授权[root@server prometheus]# chown -R prometheus:prometheus /usr/local/prometheus/# 创建prometheus运行数据目录[root@server prometheus]# mkdir -p /var/lib/prometheus[root@server prometheus]# chown -R prometheus:prometheus /var/lib/prometheus/
四、设置system管理并开机自启动
创建system文件并给予用户权限
[root@server ~]# touch /usr/lib/systemd/system/prometheus.service[root@server ~]# chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service
编辑文件,内容如下:
[root@server ~]# vim /usr/lib/systemd/system/prometheus.service[Unit]Description=PrometheusDocumentation=https://prometheus.io/After=network.target[Service]# Type设置为notify时,服务会不断重启Type=simpleUser=prometheus# --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.retention=360d --storage.tsdb.path=/var/lib/prometheusRestart=on-failure[Install]WantedBy=multi-user.target
设置开机自启动
[root@server ~]# systemctl enable prometheus
五、启动Prometheus并验证
启动服务
[root@server ~]# systemctl start prometheus
验证服务状态
[root@server ~]# systemctl status prometheus
六、访问web ui
Prometheus自带有简单的UI,访问:100.100.142.212:9090
在Status菜单下,Configuration,Rule,Targets等,
Statu—>Configuration展示prometheus.yml的配置,如下:
Statu—>Targets展示监控具体的监控目标,这里监控目标”linux”暂未设置node_exporter,未scrape数据,如下:
访问100.100.142.212:9090/metrics,查看从exporter具体能抓到的数据,如下:
部署node_exporter
一、下载&部署
# 下载[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/
二、设置用户
[root@node1 ~]# groupadd prometheus[root@node1 ~]# useradd -g prometheus -s /sbin/nologin prometheus[root@node1 ~]# chown -R prometheus:prometheus /usr/local/node_exporter/
三、设置system管理并开机自启动
[root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service[Unit]Description=node_exporterDocumentation=https://prometheus.io/After=network.target[Service]Type=simpleUser=prometheusExecStart=/usr/local/node_exporter/node_exporterRestart=on-failure[Install]WantedBy=multi-user.target[root@node1 ~]# systemctl enable node_exporter[root@node1 ~]# systemctl start node_exporter
四、验证
访问:http://100.100.142.212:9090/targets,可见node1主机已经被监控,如下:
部署Grafana
一、下载Grafana
官方下载链接:https://grafana.com/grafana/download
#下载[root@server ~]# wget https://dl.grafana.com/oss/release/grafana-7.1.3-1.x86_64.rpm#安装[root@server ~]# yum localinstall grafana-7.1.3-1.x86_64.rpm -y
二、启动并设置开机自启动
[root@server ~]# systemctl start grafana-server[root@server ~]# systemctl enable grafana-server
三、访问grafana并设置数据源
登录:访问100.100.142.212:3000,默认账号密码:admin/admin,登录后会让你设置新密码,根据提示操作即可。
添加数据源:
1.登录后点击COMPLETE
2.选择Prometheus,点击Select
3.填写配置
Name自定义,URL填Prometheus地址,填完保存即可

导入模板,官方Dashboards地址:https://grafana.com/grafana/dashboards
1.左测【+】点击Import
2.将选择好模板的ID填入或导入json文件,然后点击load
3.然后自定义名称,选择数据源后点击import
4.然后在主页点击HOME就可以看到自己的仪表盘,再进入就可以看到系统相关监控信息了


