Prometheus+node_exporter+Grams实现监控服务器

首言

本文编辑于 2023-09-14

作者:muyiacc

Github:github.com/muyiacc

环境:debian11

为了通过网址远程查看服务器及容器的运行状况,选择了时下最热门的监控方案:Prometheus+node_exporter+Grafana。

现记录下自己的安装过程。

1. Prometheus

官网地址 https://prometheus.io/docs/introduction/overview/

1.1. 概述

Prometheus 是一个开源的系统监控和警报工具包,由SoundCloud 构建,由Golang编写,现有非常活跃的开发人员和社区,是一个独立的开源项目,于2016年加入了云原生计算基金会,成为继Kubernetes之后的第二个托管项目。总结:非常热门+ NB。

1.2. 安装

话不多说,开始使用安装之旅。

1)官网下载页面

https://prometheus.io/download/

核心组件 prometheus的最新版下载地址为:

https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz

上面的地址为github,众所周知,因为某些原因,你下载可能会出现网络问题,这里不做解决。

如果你的系统可直连github,可以通过如下命令直接下载。

wget https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0.linux-amd64.tar.gz

提示 wget 没安装?

debian: sudo apt install wget

centos: sudo yum install wget

2)解压安装

下载完成之后,解压安装

解压放到自己熟悉的路径即可。

tar -zxvf prometheus-2.47.0.linux-amd64.tar.gz -C ~/opt/

修改名字

cd ~/opt
mv prometheus-2.47.0.linux-amd64 prometheus-2.47.0

在解压的目录下,找到 prometheus.yml 文件,这是prometheus的配置文件

本文只为快速搭建使用,对于配置的含义不做详细解释。

默认的文件也不需要修改,需要注意的地方是

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"]

默认的端口是9090,如果你的端口被占用了,只需要修改上述的端口即可。

1.3. 启动

因为使用go语言编写,编译后的文件 只需要执行解压后的文件 prometheus

进入解压的目录

1)前台启动

./prometheus --config.file=prometheus.yml

2)后台启动

nohup ./prometheus --config.file=prometheus.yml >> prometheus.log 2>&1 &

上述的命令的含义为:后台启动,错误的日志重定向到标准输出,也就是将所有的日志追加到prometheus.log 中,prometheus.log会自动生成

通过浏览器 ip:端口 就可以访问。

如果是服务器,需要开放安全组,这里不做介绍。

关于对 Prometheus 的简单介绍就先到这里。

2. node_exporter

2.1. 概述

在 Prometheus 的架构设计中,Prometheus Server 主要负责数据的收集,存储并且对外提供数据查询支持。

实际的监控样本数据的收集则是由 Exporter 完成,因此为了能够监控到某些东西,如主机的 CPU 使用率,我们需要使用到 Exporter。

Prometheus 周期性的从 Exporter 暴露的 HTTP 服务地址(通常是/metrics)拉取监控样本数据。

为了能够采集到主机的运行指标如 CPU, 内存,磁盘等信息。我们可以使用 Node Exporter。Node Exporter 同样采用 Golang 编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。

下载地址: https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

2.2. 安装

# 下载
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

# 解压
tar -zxvf node_exporter-1.6.1.linux-amd64 -C ~/opt/

# 修改名字
cd ~/opt/ && mv node_exporter-1.6.1.linux-amd64 node_exporter-1.6.1

2.3. 启动

直接执行 node_exporter文件即可

cd ~/opt/linux-amd64 node_exporter-1.6.1

./node_exporter

通过控制台打印的信息可以知道,端口为 9100

浏览器访问 ip:9100即可访问

设置开机自启,编写systemd 服务脚本

关于如何编写,可以观看这篇文章

https://blog.csdn.net/lu_embedded/article/details/132424115

服务脚本文件以 .service 结尾,由 Unit、Service 和 Install 三个区块组成,这里提供一个示例

[Unit]   
Description=test   		# 简单描述服务
After=network.target    # 描述服务类别,表示本服务需要在network服务启动后在启动
Before=xxx.service      # 表示需要在某些服务启动之前启动,After和Before字段只涉及启动顺序,不涉及依赖关系

[Service] 
Type=forking     		# 设置服务的启动方式
User=USER        		# 设置服务运行的用户
Group=USER       		# 设置服务运行的用户组
WorkingDirectory=/PATH	# 设置服务运行的路径(cwd)
KillMode=control-group  # 定义systemd如何停止服务
Restart=no        		# 定义服务进程退出后,systemd的重启方式,默认是不重启
ExecStart=/start.sh    	# 服务启动命令,命令需要绝对路径(采用sh脚本启动其他进程时Type须为forking)
   
[Install]   
WantedBy=multi-user.target  # 多用户

创建 service 文件

sudo vim /usr/lib/systemd/system/node_exporter.service

[Unit]
Description=node_export
Documentation=https://github.com/prometheus/node_exporter
After=network.target

[Service]
Type=simple
User=ecs-user
ExecStart=/home/ecs-user/opt/node_exporter-1.6.1/node_exporter
Restart=on-failure

[Install]
WantedBy=multi-user.target

开启自启

# 查看状态
systemctl status node_exporter 
# 启动node_exporter
systemctl start node_exporter 
# 开启自启
systemctl enable node_exporter 

3. Grafana

3.1 概述

Grafana 是一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现

是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。

官网:https://grafana.com/zh-cn/grafana/

3.2 安装

个人使用,选择 Standalone Linux Binaries 版本

# 下载
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.1.1.linux-amd64.tar.gz

# 解压
tar -zxvf grafana-enterprise-10.1.1.linux-amd64.tar.gz -C ~/opt/

# 不用修改名字了,默认为grafana-10.1.1

3.3 启动

进入解压的目录

nohup ./bin/grafana-server web >> ./grafana.log 2>&1 &

3.4 集成Prometheus

启动Grafana之后,浏览器访问 ip:3000,进入登录界面,默认用户和密码都为admin

输出密码之后,会提示修改密码,修改即可。

完成之后,进入主界面 ,大概如下:

Prometheus+node_exporter+Grams实现监控服务器_第1张图片

3.4.1 配置数据源

按住Ctrl+K,搜索 data sources,选中data sources 配置数据源,进入如下界面

Prometheus+node_exporter+Grams实现监控服务器_第2张图片

选择 add new data source ,选择Prometheus,进入配置

Prometheus+node_exporter+Grams实现监控服务器_第3张图片

这里只需要配置一下 Prometheus server URL,默认没改端口的填入 http://localhost:9090,不要选择https,滑到最底下,选择save & test按钮,如果显示Successfully queried the Prometheus API,表示对接成功。

3.4.2 创建仪表盘 Dashboard

Ctrl + K,搜索 Dashboards,进入Dashboards,选择new dashborad,后续自行探索吧。

Prometheus+node_exporter+Grams实现监控服务器_第4张图片

3.4.3 导入仪表盘 Dashboard

Ctrl + K,搜索 Dashboards,进入Dashboards,选择Import

Prometheus+node_exporter+Grams实现监控服务器_第5张图片

填入 ID ,Load 即可

对于如何寻找已经创建好的仪表盘,可在官网寻找 https://grafana.com/grafana/dashboards/

Prometheus+node_exporter+Grams实现监控服务器_第6张图片

这里推荐一个 https://grafana.com/grafana/dashboards/12633-linux/

填入的id为12633,load后进入如下界面,选择之前连接的Prometheus,最后 Import就大功告成了。

Prometheus+node_exporter+Grams实现监控服务器_第7张图片

最后的展示

Prometheus+node_exporter+Grams实现监控服务器_第8张图片

你可能感兴趣的:(prometheus,服务器,运维,grafana)