Prometheusbu部署使用-1

Prometheus+grafana部署使用

主机列表:

192.168.161.130 : Prometheus
192.168.161.128 : node-1
192.168.161.129 : node-2

二进制手动部署

解压 prometheus-2.14.0.linux-amd64.tar.gz包
解压放至 /usr/local下

  • 编辑服务启动脚本

vim /usr/lib/systemd/system/prometheus.service

[Unit]
Description=Prometheus server daemon

[Service]
ExecStart=/usr/local/prome/prometheus --config.file=/usr/local/prome/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
systemctl daemon-reload  # 加载后台服务
systemctl start | stop | restart | status prometheus 

服务端监控配置文件内容

global:    # 全局配置段
  scrape_interval:      15s
  evaluation_interval:  15s
  external_labels:
      monitor: 'codelab-monitor'
rule_files:     # 告警规则配置

scrape_configs:     # 监控配置
  - job_name: 'prometheus'   #监控任务名称


    static_configs:  # 静态监控配置
      - targets: ['192.168.235.130:9090']
        labels:
          node: prome_server

使用动态发现添加主机

global:    # 全局配置段
  scrape_interval:      15s
  evaluation_interval:  15s
  external_labels:
      monitor: 'codelab-monitor'
rule_files:     # 告警规则配置

scrape_configs:     # 监控配置
  - job_name: 'prometheus'   #监控任务名称


#    static_configs:  # 静态监控配置
#      - targets: ['192.168.235.130:9090']
#        labels:
#          node: prome_server
    file_sd_configs: # 基于配置文件动态发现添加主机
       - files: ['/usr/local/prome/sd_config/*.yml']  # 定义服务发现配置路径
         refresh_interval: 5s  # 5秒发现刷洗发现一次

     
  • 创建服务发现配置文件
mkdir /usr/local/prome/sd_config
  • 编辑prometheus监控程序的配置文件
- targets:            # 直接指定动态发现下的 targets 目标主机
  - 192.168.235.130:9090
    labels:           # 给目标主机添加标签标识
      node: prome_server
  • 重载服务
systemctl reload prometheus

被监控节点安装数据采集工具 node-exporter

  • 解压
[root@localhost ~]# tar zxf node_exporter-0.18.1.linux-amd64.tar.gz 
[root@localhost ~]# mv node_exporter-0.18.1.linux-amd64 /usr/local/

  • 将服务做成系统服务管理运行
[Unit]
Description=Node_exporter server daemon

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

[Install]
WantedBy=multi-user.target

prometheus添加远程主机监控

在原来的prometheus.yml中添加任务,监控远程主机

# my global config
global:
  evaluation_interval: 15s
  scrape_interval:     15s

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.235.130:9090']
      labels:
        node: prome_server
#    file_sd_configs:
#      - files: ['/usr/local/prome/sd_config/*.yml']
#        refresh_interval: 5s
  - job_name: 'node-1'   # 添加主机node-1
    static_configs:
    - targets: ['192.168.235.128:9100']
      labels:
        node: node-1

  - job_name: 'node-2'  # 添加主机node-2
    static_configs:
    - targets: ['192.168.235.129:9100']
      labels:
        node: node-2

将node_exporter添加服务监控

node_exporter 还可以监控系统的服务状态,在启动是指定参数启用服务监控--collector.systemd --collector.systemd.unit-whitelist=服务名称

[Unit]
Description=Node_exporter server daemon

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

[Install]
WantedBy=multi-user.target
  • --collector.systemd : 表示启用服务监控
  • --collector.systemd.unit-whitelist=(sshd|docker|nginx).service : 表示监控多个服务

grafan中快速使用监控模板快速监控

grafana 提供了大量的监控模板,针对各种exporter和数据源制作了不同的监控模板,在grafana中导入即可直接使用

https://grafana.com/grafana/dashboards
  • 通过监控模板的ID值直接导入

选择某个监控模板,找到Get this dashboard:的值,这里针对node-exporter的模板有一个比较好的模板ID:8919 ,可以快速实现主机资源的监控。
同样,容器监控也一样。找到合适的模板即可

posted on 2019-11-16 10:59  孤岛鱼夫  阅读(501)  评论(0编辑  收藏  举报