一、简介:
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,可以去官网下载对应系统的版本,如下图:
如果安装的服务器可以连接外网可以使用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状态。
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
访问ui地址:
http://ip:3000 ip为安装grafana的服务器地址
初次登录默认用户密码都是:admin,会让你改密码。
接下来按照下面步骤添加Prometheus数据源
Configuration -> Data Sources ->add data source -> Prometheus
想要看到监控服务器指标的图表,需要创建一个dashbard来展示数据,这里我们只用prometheus采集了linux服务器主机的一些数据,所以我要到grafana下载已经画好的为linux准备的dashboard,到这个地址:https://grafana.com/grafana/dashboards/?search=8919 查询linux主机详情的dashboard对应的编号是8919。
下载好对应的json文件
导入下载的对应json文件
最后完成的漂亮的界面截图,记得退出时报错这个dashboard,以后登入就可以看到:
完成了!