Linux主机监控:Prometheus+Grafana

1. Prometheus简介

        老规矩,先给出官网地址

Overview | Prometheus

        Prometheus 是一个开源系统监控和警报工具包,最初是在 SoundCloud 构建的。自2012年推出以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入云原生计算基金会,成为继 Kubernetes 之后的第二个托管项目。

        Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录时的时间戳一起存储,以及称为标签的可选键值对。

2. docker安装

Docker:离线安装-CSDN博客

Docker 安装-CSDN博客

3. docker-compose安装

Docker-Compose:离线安装-CSDN博客

4. 下载prometheus镜像至本地

需要有一台有外网环境的电脑

# 下载prometheus和grafana镜像
docker pull prom/prometheus:v2.52.0
docker pull grafana/grafana:11.0.0

# 导出镜像为tar
docker save -o prometheus.tar prom/prometheus:v2.52.0
docker save -o grafana.tar grafana/grafana:11.0.0

# 将.tar包上传至目标服务器

# 导入镜像
docker load -i grafana.tar
docker load -i prometheus.tar

5. 创建docker-compose.yaml文件

networks:
  monitoring:
    driver: bridge

services:
  prometheus:
    image: prom/prometheus:v2.52.0
    user: root # 使用root用户运行,防止出现缺失权限导致的启动异常
    container_name: prometheus
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro  # 本地时区挂载在镜像中
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml # 挂载配置文件
      - ./prometheus/data:/prometheus # 挂载数据存储目录
    command:
      - '--config.file=/etc/prometheus/prometheus.yml' # 指定配置文件
      - '--storage.tsdb.path=/prometheus' # 数据存放目录,与挂载目录保持一致
      - '--web.console.libraries=/usr/share/prometheus/console_libraries' # 控制台库
      - '--web.console.templates=/usr/share/prometheus/consoles' # 控制台模板
      # 热加载配置
      - '--web.enable-lifecycle'
      # api配置
      #- '--web.enable-admin-api'
      # 历史数据最大保留时间,默认15天,这里使用默认值也够用了,防止占用大量磁盘
      - '--storage.tsdb.retention.time=15d'
    networks:
      - monitoring
    ports:
      - 9090:9090

  grafana:
    image: grafana/grafana:11.0.0
    user: root # 使用root用户运行,防止出现缺失权限导致的启动异常
    container_name: grafana
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./grafana/data:/var/lib/grafana # 挂载数据存储目录
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin # 指定admin账户的密码
    networks:
      - monitoring
    ports:
      - 3000:3000

6. 创建prometheus配置文件

vim prometheus.yml

# 全局配置
global:
  scrape_interval:     15s # 将搜刮间隔设置为每15秒一次。默认是每1分钟一次。
  evaluation_interval: 15s # 每15秒评估一次规则。默认是每1分钟一次。


# 搜刮配置
scrape_configs:
  - job_name: 'prometheus'
    # 覆盖全局默认值,每15秒从该作业中刮取一次目标
    scrape_interval: 15s
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node-exporter' # node_exporter监控节点
    scrape_interval: 15s
    static_configs:
    - targets: ['192.168.0.160:9100']
      labels:
        instance: 192.168.0.160

7. 运行prometheus

docker-compose up -d prometheus

浏览器访问:http://192.168.0.xxx:9090,如下图

 8. 运行grafana

docker-compose up -d grafana

浏览器访问:http://192.168.0.xxxx:3000,如下图

账号:admin

密码:admin(与docker-compose配置的默认密码有关,第一次登录会强制修改密码)

9. 安装node_exporter,主机监控

        (1). 下载node_exporter Download | Prometheus

        (2). 将node_exporter安装包上传至服务器

        (3). 解压安装包

# 解压
tar -zxvf node_exporter-1.8.1.linux-amd64.tar.gz

# 重名命文件夹
mv node_exporter-1.8.1.linux-amd64/ node_exporter

       (4). 创建node_exporter服务

# 将node_exporter添加至系统可执行程序
cp node_exporter /usr/local/bin/

# 创建服务配置
vi /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter
After=network.target

[Service]
Restart=on-failure
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100

[Install]
WantedBy=multi-user.target

# 重新加载systemctl指令
systemctl daemon-reload

# 启动nodex_exporter
systemctl start node_exporter

10. 修改promethus配置文件,添加node_exporter监控节点

# 多个node_exporter配置参考
  - job_name: 'node-exporter'
    scrape_interval: 15s
    static_configs:
    - targets: ['192.168.0.160:9100']
      labels:
        instance: 192.168.0.160
    - targets: ['192.168.0.170:9100']
      labels:
        instance: 192.168.0.170

11. 重启prometheus

docker-compose restart prometheus

进入status=》Targets页面,如下图

12. 配置grafana

        (1). 创建prometheus数据源,如下图步骤

        (2). 创建可视化面板

可视化面板市场:Grafana dashboards | Grafana Labs

这里推荐使用:16098

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值