searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Prometheus高可用实践

2023-09-14 06:48:49
75
0

1、整体架构

采用双节点主备的方案进行服务的高可用管理,在node1与node2上面均部署Prometheus服务与pushgateway,对外通过vip提供服务,

,采用keepalive进行vip的管理与自动切换,后端数据采用在node1和node2上搭建的VictoriaMetrics集群进行数据存储,保证数据的高可用。

2、主要配置

node1、node2均部署pushgateway,通过keepalive管理vip漂移, 数据均通过vip推送

global_defs {
   router_id KMS_HA

    script_user root    # 指定脚本运行用户
    enable_script_security
}

 

vrrp_script checkserver {
    script "/etc/keepalived/checkserver.sh"        #检测脚本
    interval 1         #监测间隔
    weight -11        #失败时,优先级减2
    fall 3             # 指定检测脚本连续执行失败次数为3,才进行Failover
    rise 1           # 指定检测脚本连续执行成功次数为1,才进行Failback
}
vrrp_instance VI_DB {
    state MASTER
    interface enp0s8    # 虚拟IP的网卡,与实际网卡一致
    virtual_router_id 22
    priority 100 # 优先级,主机挂掉后用此值决策哪个备机作为新主机
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 4422
    }

    virtual_ipaddress {
        192.168.56.200 # 虚拟为未被占用的ip地址
    }

    unicast_src_ip  192.168.56.101  #本机ip
    unicast_peer {
        192.168.56.102      #对端ip
    }

    track_script {
        checkserver                 #通过指定上面定义监控脚本来监控服务状态,以完成主备切换
    }
}

 

node1、node2通过vip订阅pushgateway数据

  - job_name: 'pushgateway'
    honor_labels: true
    static_configs:
      - targets: ['192.168.56.200:9091']
        labels:
          instance: pushgateway

后端部署VictoriaMetrics作为远端存储,将replicationFactor设置为2,如果需要配置Grafana进行数据可视化,可通过VictoriaMetrics的vmselect服务查询,ip为vip,即可支持服务自动切换。

VictoriaMetrics服务配置

vim /etc/systemd/system/vmstorage.service
[Unit]
Description=Vmstorage Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vmstorage-prod \
-loggerTimezone Asia/Shanghai \
-dedup.minScrapeInterval=30s \
-storageDataPath /tmp \
-httpListenAddr :8482 \
-vminsertAddr :8400 \
-vmselectAddr :8401

[Install]
WantedBy=multi-user.target


vim /etc/systemd/system/vminsert.service
[Unit]
Description=Vminsert Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vminsert-prod \
-httpListenAddr :8480 \
-storageNode=192.168.56.101:8400,192.168.56.102:8400 \
-replicationFactor=2
[Install]
WantedBy=multi-user.target

vim /etc/systemd/system/vmselect.service
[Unit]
Description=Vminsert Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vmselect-prod \
-httpListenAddr :8481 \
-selectNode 192.168.56.101:8481,192.168.56.102:8481 \
-dedup.minScrapeInterval=30s \
-storageNode=192.168.56.101:8401,192.168.56.102:8401

[Install]
WantedBy=multi-user.target

三、关于为什么不用Thanos 使用VictoriaMetrics

VictoriaMetrics虽然有三个组件,但是都是单文件且不依赖配置文件,只需启动时参数指定即可,部署与维护都十分方便,对比于thanos的配置十分复杂,参数调优可能比较困难,并且VictoriaMetrics不依赖外部系统,与Grafana完全兼容。

 

0条评论
作者已关闭评论
赵****熹
1文章数
0粉丝数
赵****熹
1 文章 | 0 粉丝
赵****熹
1文章数
0粉丝数
赵****熹
1 文章 | 0 粉丝
原创

Prometheus高可用实践

2023-09-14 06:48:49
75
0

1、整体架构

采用双节点主备的方案进行服务的高可用管理,在node1与node2上面均部署Prometheus服务与pushgateway,对外通过vip提供服务,

,采用keepalive进行vip的管理与自动切换,后端数据采用在node1和node2上搭建的VictoriaMetrics集群进行数据存储,保证数据的高可用。

2、主要配置

node1、node2均部署pushgateway,通过keepalive管理vip漂移, 数据均通过vip推送

global_defs {
   router_id KMS_HA

    script_user root    # 指定脚本运行用户
    enable_script_security
}

 

vrrp_script checkserver {
    script "/etc/keepalived/checkserver.sh"        #检测脚本
    interval 1         #监测间隔
    weight -11        #失败时,优先级减2
    fall 3             # 指定检测脚本连续执行失败次数为3,才进行Failover
    rise 1           # 指定检测脚本连续执行成功次数为1,才进行Failback
}
vrrp_instance VI_DB {
    state MASTER
    interface enp0s8    # 虚拟IP的网卡,与实际网卡一致
    virtual_router_id 22
    priority 100 # 优先级,主机挂掉后用此值决策哪个备机作为新主机
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 4422
    }

    virtual_ipaddress {
        192.168.56.200 # 虚拟为未被占用的ip地址
    }

    unicast_src_ip  192.168.56.101  #本机ip
    unicast_peer {
        192.168.56.102      #对端ip
    }

    track_script {
        checkserver                 #通过指定上面定义监控脚本来监控服务状态,以完成主备切换
    }
}

 

node1、node2通过vip订阅pushgateway数据

  - job_name: 'pushgateway'
    honor_labels: true
    static_configs:
      - targets: ['192.168.56.200:9091']
        labels:
          instance: pushgateway

后端部署VictoriaMetrics作为远端存储,将replicationFactor设置为2,如果需要配置Grafana进行数据可视化,可通过VictoriaMetrics的vmselect服务查询,ip为vip,即可支持服务自动切换。

VictoriaMetrics服务配置

vim /etc/systemd/system/vmstorage.service
[Unit]
Description=Vmstorage Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vmstorage-prod \
-loggerTimezone Asia/Shanghai \
-dedup.minScrapeInterval=30s \
-storageDataPath /tmp \
-httpListenAddr :8482 \
-vminsertAddr :8400 \
-vmselectAddr :8401

[Install]
WantedBy=multi-user.target


vim /etc/systemd/system/vminsert.service
[Unit]
Description=Vminsert Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vminsert-prod \
-httpListenAddr :8480 \
-storageNode=192.168.56.101:8400,192.168.56.102:8400 \
-replicationFactor=2
[Install]
WantedBy=multi-user.target

vim /etc/systemd/system/vmselect.service
[Unit]
Description=Vminsert Server
After=network.target

[Service]
Restart=on-failure
WorkingDirectory=/tmp
ExecStart=/usr/local/bin/vmselect-prod \
-httpListenAddr :8481 \
-selectNode 192.168.56.101:8481,192.168.56.102:8481 \
-dedup.minScrapeInterval=30s \
-storageNode=192.168.56.101:8401,192.168.56.102:8401

[Install]
WantedBy=multi-user.target

三、关于为什么不用Thanos 使用VictoriaMetrics

VictoriaMetrics虽然有三个组件,但是都是单文件且不依赖配置文件,只需启动时参数指定即可,部署与维护都十分方便,对比于thanos的配置十分复杂,参数调优可能比较困难,并且VictoriaMetrics不依赖外部系统,与Grafana完全兼容。

 

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0