文章目录
- 1 介绍
- 2 部署
- 2.1 下载
- 2.2 解压到指定目录
- 2.3 配置进程管理
- 2.4 程序启动参数
- 2.5 启动和监听
- 3 添加到 Prometheus
- 4. 指标
- 4.1 通过页面查看指标数据
- 4.2 查看都有哪些指标
- 4.3 指标数据规范
- 5 程序运行参数
1 介绍
Prometheus 使用 node_exporter
服务程序监控 Linux 主机。
2 部署
2.1 下载
官方下载地址 https://prometheus.io/download/
找到 node-export 下载即可
curl -o node-exporter.tar.gz -L https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
2.2 解压到指定目录
tar -xf node_exporter-1.7.0.linux-amd64.tar.gz -C /usr/local/
ln -s /usr/local/node_exporter-1.7.0.linux-amd64/ /usr/local/node_exporter
2.3 配置进程管理
/etc/systemd/system/node-exporter.service
[Unit]
Description=The node-exporter 监控程序
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter --collector.textfile.directory=/usr/local/node_exporter/
KillSignal=SIGQUIT
Restart=always
RestartPreventExitStatus=1 6 SIGABRT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
2.4 程序启动参数
- –web.listen-address=:9111 指定监听端口为 任意主机地址的 9111端口
- –collector.textfile.directory=/apps/exporterData 指定可以从目录
/apps/exporterData
中读取通过其他脚本程序获取的监控数据(注意是已经获取到的数据,不是其他脚本),比如使用脚本获取到的节点中的容器运行指标。
2.5 启动和监听
systemctl daemon-reload
systemctl enable --now node-exporter
默认监听端口9111
3 添加到 Prometheus
修改配置,增加被监控对象
vi /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# 如下新增
- job_name: "beijing"
static_configs:
- targets:
- 192.168.146.138:9111
labels:
dbs: mysql
检查配置文件语法
[root@mail prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: prometheus.yml is valid prometheus config file syntax
重新加载配置文件
curl -X POST localhost:9090/-/reload
访问 Prometheus 查看是否生效
4. 指标
4.1 通过页面查看指标数据
上面的数据是服务器里每个分区的总容量信息。
4.2 查看都有哪些指标
也可以通过命令行获取原始指标数据
curl 192.168.146.138:9111/metrics
部分部署输出内容:
# HELP node_filesystem_free_bytes Filesystem free space in bytes.
# TYPE node_filesystem_free_bytes gauge
node_filesystem_free_bytes{device="/dev/mapper/centos-root",fstype="xfs",mountpoint="/"} 1.5382708224e+10
node_filesystem_free_bytes{device="/dev/sda1",fstype="xfs",mountpoint="/boot"} 9.19621632e+08
node_filesystem_free_bytes{device="tmpfs",fstype="tmpfs",mountpoint="/run"} 1.03346176e+08
node_filesystem_free_bytes{device="tmpfs",fstype="tmpfs",mountpoint="/run/user/0"} 2.269184e+07
上面的数据是关于服务器的分区容量的一组信息。
4.3 指标数据规范
从上面的数据可以发现,一组指标数据有三部分组成:
1 HELP
格式要求是 指标名和指标的说明信息。
2 TYPE
格式要求是 指标名称和指标数据类型。
后面高级部分会详细介绍数据类型的含义。
3 指标数据本身
指标数据包含了指标名称,标签已经对应的值。
一组相同特征,相同类型的指标数据可以有多条。
node_filesystem_free_bytes{device="/dev/mapper/centos-root",fstype="xfs",mountpoint="/"} 1.5382708224e+10
node_filesystem_free_bytes{device="/dev/sda1",fstype="xfs",mountpoint="/boot"} 9.19621632e+08
node_filesystem_free_bytes{device="tmpfs",fstype="tmpfs",mountpoint="/run"} 1.03346176e+08
node_filesystem_free_bytes{device="tmpfs",fstype="tmpfs",mountpoint="/run/user/0"} 2.269184e+07
5 程序运行参数
--web.listen-address=:9100
指定监听地址和端口。
--collector.filesystem.mount-points-exclude=正则表达式
不监控正则表达式中的挂载点。
如下示例,返回的挂载点信息中将不会再有这些挂载点:
/usr/local/node_exporter/node_exporter --collector.filesystem.mount-points-exclude=^/(boot|sys|proc|dev|run)($|/)
如果是在 systemd 程序控制文件中,值不能加引号,如果在命令行里直接运行,值需要加引号。
效果如下: