这里我将下载安装以下几个组件(提前下载好这几个组件的二进制文件):
-
prometheus server:Prometheus主服务;
-
pushgateway:借助pushgateway,让target通过push的方式,完成监控时序数据的上报;
-
node_exporter:用于监控Nginx内核公开的硬件和操作系统指标;
-
alertmanager:独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、去重等处理,并将它们通过路由发送给正确的接收器;
一、Prometheus Server的安装
Prometheus Server基于Golang语言开发,编译会后的软件包,不依赖于任何第三方依赖,只需要下载对应平台的二进制包、解压后完成基础配置后即可正常启动。
这里我下载的是LTS长期支持版的2.37.1。
1、查看下载好的所有组件:
[root@jiguiquan1 jiguiquan]# ll total 126528 -rw-r--r--. 1 root root 25880024 Oct 9 08:40 alertmanager-0.24.0.linux-amd64.tar.gz -rw-r--r--. 1 root root 10111972 Oct 9 08:40 node_exporter-1.4.0.linux-amd64.tar.gz -rw-r--r--. 1 root root 83865783 Oct 9 08:40 prometheus-2.37.1.linux-amd64.tar.gz -rw-r--r--. 1 root root 9695285 Oct 9 08:40 pushgateway-1.4.3.linux-amd64.tar.gz
2、解压并重命名prometheus server压缩包:
[root@jiguiquan1 jiguiquan]# tar -zxvf prometheus-2.37.1.linux-amd64.tar.gz [root@jiguiquan1 jiguiquan]# mv prometheus-2.37.1.linux-amd64 prometheus-2.37.1 [root@jiguiquan1 prometheus-2.37.1]# cd /jiguiquan/prometheus-2.37.1/ [root@jiguiquan1 prometheus-2.37.1]# ls console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool # 主执行文件:prometheus # 主配置文件:prometheus.yml
3、配置主配置文件:
[root@jiguiquan1 prometheus-2.37.1]# vim prometheus.yml # 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. Prometheus自己的核心配置 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['192.168.56.10:9090'] # 添加 PushGateway 监控配置 - job_name: 'pushgateway' static_configs: - targets: ['192.168.56.10:9091'] labels: instance: pushgateway # 添加 Node Exporter 监控配置 - job_name: 'node exporter' static_configs: - targets: ['192.168.56.10:9100', '192.168.56.11:9100', '192.168.56.12:9100']
配置项说明:
global 配置块:此片段指定的是 prometheus 的全局配置, 比如采集间隔,抓取超时时间等。
scrape_interval:拉取数据的时间间隔,默认为 1 分钟默认继承 global 值。
crape_timeout: 抓取超时时间,默认继承 global 值。
evaluation_interval:规则验证(生成 alert)的时间间隔,默认为 1 分钟。
rule_files 配置块:此片段指定报警规则文件, prometheus 根据这些规则信息,会推送报警信息到alertmanager 中。
scrape_configs 配置块:配置采集目标相关, prometheus 监视的目标。Prometheus自身的运行信息可以通过 HTTP 访问,所以Prometheus 可以监控自己的运行数据。指定抓取配置,prometheus 的数据采集通过此片段配置。
job_name:监控作业的名称。他的下一集是instance,也就是target
static_configs:表示静态目标配置,就是固定从某个 target 拉取数据。一个 scrape_config 片段指定一组目标和参数, 目标就是实例,指定采集的端点, 参数描述如何采集这些实例, 主要参数如下:
➢ targets : 指定监控的目标, 其实就是从哪儿拉取数据。
➢ metric_path: 抓取路径, 默认是/metrics
➢ *_sd_configs: 指定服务发现配置
Prometheus 会从 http://192.168.56.10:9090/metrics 上拉取数据。
4、启动prometheus server服务(nohup后台运行):
nohup ./prometheus --config.file=prometheus.yml > prometheus.log 2>&1 &
5、访问页面: http://192.168.56.10:9090
这里可以看到我们配置的所有Target,因为其他服务还没有启动,所以状态为DOWN,待会启动后再对比看看!
二、PushGateway的安装
1、解压并重命名pushgateway的压缩包:
[root@jiguiquan1 jiguiquan]# tar -zxvf pushgateway-1.4.3.linux-amd64.tar.gz [root@jiguiquan1 jiguiquan]# mv pushgateway-1.4.3.linux-amd64 pushgateway-1.4.3 [root@jiguiquan1 pushgateway-1.4.3]# cd /jiguiquan/pushgateway-1.4.3/ [root@jiguiquan1 pushgateway-1.4.3]# ls LICENSE NOTICE pushgateway # 主执行文件:pushgateway
2、启动pushgateway服务(nohup后台运行):
nohup ./pushgateway --web.listen-address :9091 > pushgateway.log 2>&1 &
三、node_exporter的安装(非必选)
1、解压并重命名node_exporter的压缩包(3台节点服务器):
[root@jiguiquan1 jiguiquan]# tar -zxvf node_exporter-1.4.0.linux-amd64.tar.gz [root@jiguiquan1 jiguiquan]# mv node_exporter-1.4.0.linux-amd64 node_exporter-1.4.0 [root@jiguiquan1 jiguiquan]# cd /jiguiquan/node_exporter-1.4.0/ [root@jiguiquan1 node_exporter-1.4.0]# ls LICENSE node_exporter NOTICE # 主执行文件:node_exporter
2、启动node_exporter服务(nohup后台运行):
nohup ./node_exporter > node_exporter.log 2>&1 &
启动成功后,我们就可以在 http://192.168.56.12:9100/metrics 地址,看到数据的采集情况,而prometheus也正是通过这个api去采集对应的数据的!
3、配置node_exporter的开机自启动:
# 创建service文件 [root@jiguiquan3 jiguiquan]# vim /usr/lib/systemd/system/node_exporter.service [Unit] Description=node_export Documentation=https://github.com/prometheus/node_exporter After=network.target [Service] Type=simple User=root ExecStart= /jiguiquan/node_exporter-1.4.0/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target ## 配置服务开机自启 [root@jiguiquan3 jiguiquan]# systemctl enable node_exporter.service Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service. ### 启动服务 [root@jiguiquan3 jiguiquan]# systemctl start node_exporter #### 查看服务状态 [root@jiguiquan3 jiguiquan]# systemctl status node_exporter ● node_exporter.service - node_export Loaded: loaded (/usr/lib/systemd/system/node_exporter.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2022-10-09 09:54:47 UTC; 6s ago Docs: https://github.com/prometheus/node_exporter Main PID: 22222 (node_exporter) CGroup: /system.slice/node_exporter.service └─22222 /jiguiquan/node_exporter-1.4.0/node_exporter
四、alertmanager的安装(非必选)
1、解压并重命名alertmanager的压缩包:
[root@jiguiquan1 jiguiquan]# tar -zxvf alertmanager-0.24.0.linux-amd64.tar.gz [root@jiguiquan1 jiguiquan]# mv alertmanager-0.24.0.linux-amd64 alertmanager-0.24.0 [root@jiguiquan1 jiguiquan]# cd /jiguiquan/alertmanager-0.24.0/ [root@jiguiquan1 alertmanager-0.24.0]# ls alertmanager alertmanager.yml amtool LICENSE NOTICE # 主执行文件:alertmanager # 主配置文件:alertmanager.yml
2、配置主配置文件:
暂时先不动!
3、启动alertmanager服务(nohup后台运行):
nohup ./alertmanager --config.file=alertmanager.yml > alertmanager.log 2>&1 &
4、当所有服务都启动完成后,再查看Prometheus的Target页面:
至此,Prometheus的最基础的几个组件就安装完成了!node_exporter服务的开机自启也正常!
五、Grafana的安装与配置
官方网站:https://grafana.com/
下载页面:https://grafana.com/grafana/download/8.3.6?pg=get&plcmt=selfmanaged-box1-cta1
我没有选择最新版,而是8.3.6版,因为新版很多模板兼容性不一定好!
1、下载Centos版本的grafana8.3.6:
方法一:rpm安装
# 网络不好的话,就手动下载吧 wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.6-1.x86_64.rpm yum install grafana-enterprise-8.3.6-1.x86_64.rpm
方法2:二进制包安装(为了与上面其他服务方法一致,我这里也还是二进制包安装吧)
# 网络不好的话,就手动下载吧 wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.6.linux-amd64.tar.gz tar -zxvf grafana-enterprise-8.3.6.linux-amd64.tar.gz
2、后台运行Grafana程序:
[root@jiguiquan1 jiguiquan]# cd /jiguiquan/grafana-8.3.6/ [root@jiguiquan1 grafana-8.3.6]# ls bin conf LICENSE NOTICE.md plugins-bundled public README.md scripts VERSION [root@jiguiquan1 grafana-8.3.6]# nohup /jiguiquan/grafana-8.3.6/bin/grafana-server > grafana.log 2>&1 & [4] 1267
启动后,通过 http://192.168.56.10:3000 端口访问Grafana程序;
默认账号密码:admin :admin
3、配置Prometheus数据源:
4、手动创建Dashboard或者Row:
其实工作中:我们很少自己手动配置Grafana Dashboard,因为我们一般配置的不好看,我们更多时候是选用Grafana官网上别人开放的Dashboard!
六、通过模板配置Node Exporter面板
官网Dashboard下载页面:https://grafana.com/grafana/dashboards/
1、选择我们想要的模板:
我选择的是这个Dashboard模板:
https://grafana.com/grafana/dashboards/11074-node-exporter-for-prometheus-dashboard-en-v20201010/
下载该模板的json文件:
2、在Grafana中导入我们下载好的模板json文件:
3、如果效果可以,不要忘记保存哦: