文章目录
1 介绍
Prometheus 使用 node_exporter
服务程序监控 Linux 主机。
2 部署
2.1 下载
官方下载地址 https://prometheus.io/download/
找到 node-export 下载即可
curl -o node_exporter-1.8.2.linux-amd64.tar.gz -L https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
2.2 解压到指定目录
tar -xf node_exporter-1.8.2.linux-amd64.tar.gz -C /usr/local/
ln -s /usr/local/node_exporter-1.8.2.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
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 启动和监听
systemctl daemon-reload
systemctl enable --now node-exporter
默认监听端口9100
3 添加到 Prometheus
修改配置,增加被监控对象
vi /usr/local/prometheus/prometheus.yml
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
# 如下新增
- job_name: "beijing-servers"
static_configs:
- targets:
- 10.10.40.179:9100
检查配置文件语法
[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 通过页面查看指标数据
搜索框中尝试输入 node_filesystem_size_bytes
上面的数据是服务器里每个分区的总容量信息。
4.2 查看都有哪些指标
也可以通过命令行获取原始指标数据
curl 10.10.40.179:9100/metrics|less
4.3 指标数据规范
从上面的数据可以发现,一组指标数据有三部分组成:
1 HELP
格式要求是 指标名和指标的说明信息。
2 TYPE
格式要求是 指标名称和指标数据类型。
后面高级部分会详细介绍数据类型的含义。
3 指标数据本身
指标数据包含了指标名称,标签已经对应的值。
一组相同特征,相同类型的指标数据可以有多条.通过标签进行区分,或者会通过时间戳区分(不同时间获取到的不同的值)。
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 程序控制文件中,值不能加引号,如果在命令行里直接运行,值需要加引号。
效果如下:
增加自定义的指标
Collector 收集器,
node_exporter 中的指标都是通过一个一个的收集器获取监控指标的。默认有很多收集器,可以通过 ./node_exporter --help |grep collector
看到。
Textfile Collector 文本文件收集器
我们也可以把需要收集的指标数据安装 Prometheus 的规定的规范,存放到一个普通的文本文件,最后使用启动参数 --collector.textfile.directory
来指定这个普通文本文件所在的上级目录,来达到收集自定义指标的目的。
通常用于收集静态的信息,比如主机的角色信息等,当然也可以利用计划任务和脚本、程序配合,定时收集并把收集的信息输入到这个文件中。
文件和内容格式
--collector.textfile.directory
指定的目录下的文件,必须是以 *.prom
结尾的普通文本。
内容格式为:
metric_name [ "{" label_name "=" `"` label_value `"` { "," label_name "=" `"` label_value `"` } [ "," ] "}" ] value
指标的值必须是 float
类型,不能是字符串或者布尔值
一个服务器角色信息的静态指标示例:
echo 'role{role="application_server"} 1' > /usr/local/node_exporter/textfile-collectors/role.prom
添加如下内容到启动参数中
--collector.textfile.directory=/usr/local/node_exporter/textfile-collectors/
重启 node-exproter 服务
systemctl daemon-reload
systemctl restart node-exporter
查看自定义指标 role
在搜索框中输入 role