node_exporter是一类数据采集组件的总称。Exporter负责从目标处搜集数据, 并将其转化为Prometheus支持的格式, 它开放了一个http接口(以便Prometheus来抓取数据). 与传统的数据采集组件不同的是, Exporter并不向中央服务器发送数据, 而是等待中央服务器(如Prometheus等)主动前来抓取。Prometheus · GitHub 有很多写好的exporter,可以直接下载使用。
Prometheus(中文名:普罗米修斯)是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB). Prometheus使用Go语言开发, 是Google BorgMon监控系统的开源版本。
Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态, 任意组件只要提供对应的HTTP接口就可以接入监控. 不需要任何SDK或者其他的集成过程。输出被监控组件信息的HTTP接口被叫做exporter,目前开发常用的组件大部分都有exporter可以直接使用, 比如Nginx、MySQL、Linux系统信息、Mongo、ES等
Grafana是一个图形化工具, 它可以从很多种数据源(例如Prometheus)中读取数据信息, 使用很漂亮的图表来展示数据, 并且有很多开源的dashborad可以使用,可以快速地搭建起一个非常精美的监控平台。它与Prometheus的关系就类似于Kibana与ElasticSearch。
node_exporter
:https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
Prometheus
:https://github.com/prometheus/prometheus/releases/download/v2.34.0-rc.0/prometheus-2.34.0-rc.0.linux-amd64.tar.gz
Grafana
:https://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.2.linux-amd64.tar.gz
[root@iZ8vb7u9c6qu93ecd45frhZ media]# ll
total 165192
-rw-r--r-- 1 root root 83911070 Mar 1 21:36 grafana-enterprise-8.4.2.linux-amd64.tar.gz
-rw-r--r-- 1 root root 9033415 Dec 8 16:52 node_exporter-1.3.1.linux-amd64.tar.gz
-rw-r--r-- 1 root root 76202164 Feb 28 23:58 prometheus-2.34.0-rc.0.linux-amd64.tar.gz
快速安装方式直接执行以下命令即可安装grafana
、node_exporter
、prometheus
安装过程访问PasteMe - 一个不算糟糕的可私有文本分享平台查看
curl api.pasteme.cn/8413 | bash
安装后执行以下命令查看各组件运行情况
systemctl status node_exporter
systemctl status prometheus
systemctl status grafana-server
浏览器访问组件查看是否正常,默认账号密码为:admin
node_exporter
、Prometheus
、Grafana
的默认端口分别是 9100
、9090
、3000
安装完成之后三个组件为相互独立的,需要通过配置将三个组件关联起来工作。
Prometheus
编辑配置文件/usr/local/prometheus/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.
scrape_configs:
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090'] # 将端口号修改为9100
上述修改的让Prometheus从 localhost:9100/metrics
进行 metrics
信息的读取,默认的 9090
是 Prometheus
本身的 metrics
信息,修改后就读取node_exporter
采集到的信息。
监控多个节点时
- targets: ['localhost1:9100','localhost2:9100']
修改配置后重启Prometheus
systemctl restart prometheus
#查看状态
systemctl status prometheus
Grafana
进入到/usr/local/grafana/bin
执行以下命令
chmod +x grafana-cli
./grafana-cli plugins install grafana-piechart-panel
systemctl restart grafana-server
这一步是为了安装一个饼图插件,执行之后用浏览器访问服务器的3000
端口
账号密码均为admin
Grafana
解压到/usr/local
#解压到当前文件夹并移动到/usr/local目录下
tar -xzvf grafana-enterprise-8.4.2.linux-amd64.tar.gz
mv grafana-8.4.2 /usr/local/grafana
在/usr/local/grafana/
目录下新建grafana-server.service
文件并写入以下内容,配置这个文件是为了能用systemctl
管理服务
##grafana-server.service
[Unit]
Description=Grafana Server
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/grafana
ExecStart=/usr/local/grafana/bin/grafana-server
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
配置好之后设置软连接
ln -s /usr/local/grafana/grafana-server.service /lib/systemd/system/
启动grafana
systemctl daemon-reload
systemctl start grafana-server
访问服务器3000
端口
Node_Exporter
解压到/usr/local
##解压并移动到/usr/local
tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 /usr/local/node_exporter
在/usr/local/node_exporter/
目录下新建node_exporter.service
文件并写入以下内容,同样配置这个文件是为了能用systemctl
管理服务
cd /usr/local/node_exporter
touch node_exporter.service
vi touch node_exporter.service
写入以下内容
##node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
配置软连接
ln -s /usr/local/node_exporter/node_exporter.service /lib/systemd/system/
启动node_exporter
systemctl daemon-reload
systemctl start node_exporter
查看node_exporter
状态
systemctl status node_exporter
Prometheus
解压到/usr/local
##解压并移动到/usr/local
tar -zxvf prometheus-2.34.0-rc.0.linux-amd64.tar.gz
mv prometheus-2.34.0-rc.0.linux-amd64 /usr/local/prometheus
在/usr/local/prometheus/
目录下新建prometheus.service
文件并写入以下内容,同样配置这个文件是为了能用systemctl
管理服务
cd /usr/local/node_exporter
touch node_exporter.service
vi touch node_exporter.service
写入内容
##node_exporter.service
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/prometheus
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
配置软连接
ln -s /usr/local/prometheus/prometheus.service /lib/systemd/system/
启动prometheus
systemctl daemon-reload
systemctl start prometheus
查看prometheus
状态
systemctl status prometheus
Prometheus
同样手动安装之后也需要配置prometheus
,配置内容同上述prometheus
配置,即配置/usr/local/prometheus/prometheus.yml
文件
Grafana
登录Grafana
默认账号密码admn/admin
配置数据源,即Grafana从什么地方获取数据
选择Prometheus
填写地址,点击保存&test
导入ID为8919
面板,这是已经写好的node_export面板,可查看这个网址查看效果。https://grafana.com/dashboards/8919
输入8919
点击load
填写名称选择创建好的数据源
面板展示
欢迎大家关注我的订阅号,会定期分享一些关于测试相关的文章,有问题也欢迎一起讨论学习!