Prometheus监控Linux服务器

Posted 林中龙虾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Prometheus监控Linux服务器相关的知识,希望对你有一定的参考价值。

一、使用node-exporter用来监控linux指标

node-exporter它是使用go语言编写的收集器

使用文档:https://prometheus.io/docs/guides/node-exporter/

wget https://github.com/prometheus/node_exporter/releases/download/v1.0.0-rc.0/node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
tar xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz -C /usr/local/
ln -s /usr/local/node_exporter-1.0.0-rc.0.linux-amd64/ /usr/local/node_exporter

# 可以直接执行node_exporter程序启动服务
/usr/local/node_exporter/node_exporter

二、使用systemd来管理node_exporter服务

# vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
# systemctl daemon-reload 
# systemctl start node_exporter.service 

# 启动服务后监听端口9100
# netstat -lntp | grep node_export
tcp6       0      0 :::9100                 :::*                    LISTEN      2986150/node_export 

三、在prometheus服务端添加主机

前面已经配置了基于file_sd_configs的文件自动发现,所以添加完服务之后并不需要重启prometheus服务

 [root@192-168-5-237 ~]# cd /usr/local/prometheus
 [root@192-168-5-237 prometheus]# vim sd_config/node.yml 
- targets:
  - 192.168.5.71:9100
  labels:
    app: nginx
 [root@192-168-5-237 prometheus]# ./promtool check config prometheus.yml 
Checking prometheus.yml
  SUCCESS: 0 rule files found

在status中查看targets中能看到新添加的主机

 

 四、promSQL获取CPU、内存、磁盘使用率(临时调试使用)

# 磁盘使用率
100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{mountpoint="/",fstype=~"ext4|xfs"} * 100)

# cpu使用率
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)

# 内存使用率
100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) / node_memory_MemTotal_bytes * 100

五、promSQL获取系统服务运行状态

5.1 查看node_exporter帮忙获取需要的参数选项

# ./node_exporter --help
--collector.systemd                         # Enable the systemd collector (default: disabled).
--collector.systemd.unit-whitelist=".+"     # Regexp of systemd units to whitelist. Units must both match whitelist and not match blacklist to be included.

5.2 修改node_exporter服务启动参数(监控sshd和nginx服务)

# cat /usr/lib/systemd/system/node_exporter.service 
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(sshd|nginx).service

[Install]
WantedBy=multi-user.target

# systemctl daemon-reload
# systemctl restart node_exporter.service 

  # ps aux | grep node
  root 2993957 0.2 0.5 115760 10216 ? Ssl 20:46 0:00 /usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(sshd|nginx).service

5.3 查看prometheus端是否成功

 

以上是关于Prometheus监控Linux服务器的主要内容,如果未能解决你的问题,请参考以下文章

linux Prometheus+Grafana监控服务器性能

linux12 -prometheus监控 -->简述与安装

Prometheus配置文件

Prometheus监控Linux服务器

Linux集群监控部署: prometheus 普罗米修斯 + Grafana(超详细)

Linux系统裸金属环境下部署prometheus监控