• 夜莺Nightingale:打造高可用监控平台

    01夜莺监控简介

    夜莺监控(Nightingale)是一款集数据采集、可视化、监控告警和数据分析于一体的开源云原生观测分析工具。它采用All-in-One设计理念,与云原生生态紧密集成,为企业提供即插即用的监控分析和告警能力。

    02夜莺Nightingale高可用架构

    实现夜莺的高可用性,只需将服务部署在不同的机器上,并确保配置文件一致,同时连接到同一个MySQL和Redis实例。通过在夜莺前端配置虚拟IP(VIP)并部署集群或主从模式的中间件,即可实现高可用架构。

    03部署步骤详解

    Redis集群部署

    1. 启动Redis容器:使用Docker在两台服务器上分别启动3个Redis容器。

    2. 配置Redis:在redis.conf中设置集群相关参数,如开启集群模式、配置文件、节点超时等。

    Plain Text
    protected-mode no
    port 7001                                                                                        #三个不同的端口即可
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    cluster-announce-ip IP                                #服务器本机ip
    cluster-announce-port 7001                            #同port参数
    cluster-announce-bus-port 17001                       #三个不同的端口即可
    appendonly yes

    3. 创建集群:所有容器启动后,通过redis-cli命令创建集群。

    Bash
    redis-cli --cluster create n9e-01IP:7001 n9e-01IP:7002 1n9e-01IP:7003 n9e-02IP:7001 n9e-02IP:7002 n9e-02IP:7003 --cluster-replicas 1

    MySQL主从部署

    1. 部署MySQL服务:在两台服务器上使用二进制方式部署MySQL,确保server_id不同,并开启gtid_mode。

    2. 创建同步账户:在主库上创建从库同步账户并授权。

    SQL
    CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';

    3. 开启同步:在从库上配置主库信息,开启数据同步。

    SQL
    CHANGE MASTER TO MASTER_HOST='n9e-01IP', MASTER_USER='slave', MASTER_PASSWORD='password', MASTER_PORT=3306, 
    MASTER_AUTO_POSITION=1, MASTER_CONNECT_RETRY=10;

    Prometheus部署

    1. 部署Prometheus:在服务器上部署Prometheus,作为数据源。

    2. 配置参数:开启热重载和远程写入监控数据接收。

    YAML
    --web.enable-lifecycle
    --web.enable-remote-write-receiver

    夜莺服务部署

    1. 部署夜莺:在两台服务器上部署夜莺服务。

    2. 配置日志:在config.toml中配置日志目录、级别和输出方式。

    TOML
    [Log]
    Dir = "logs"
    Level = "INFO"
    Output = "file"

    3. 配置Redis和MySQL:在config.toml中配置Redis集群地址和MySQL主库地址,并导入夜莺数据库表结构。

    TOML
    [Redis]
    Address = "n9e-01IP:7001,n9e-01IP:7002,n9e-01IP:7003,n9e-02IP:7001,n9e-02IP:7002,n9e-02IP:7003"
    [DB]
    DSN = "root:password@tcp(n9e-01IP:3306)/n9e_v6?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"
    Bash
    mysql -u root -p password < n9e.sql

    Keepalived配置

    1. 安装Keepalived:在两台服务器上安装Keepalived。

    2. 配置抢占:配置为BACKUP模式,使用不同优先级进行抢占。

    3. 配置检测脚本:配置检测脚本检测夜莺进程。

    夜莺平台配置

    1. 访问夜莺:通过配置的VIP访问夜莺服务,夜莺服务的端口默认为17000,使用vip:17000/进行访问,账户密码默认为root/root.2020。

    2. 添加数据源:在集成中心添加Prometheus-like数据源,URL填入n9e-01IP:9090

    集成grafana仪表盘

    1. 集成Grafana:如果有正在使用的Grafana,可以在夜莺中集成。

    2. 配置Grafana:修改defaults.ini配置,允许嵌入式集成和匿名访问,需要修改defaults.ini配置,将allow_embedding取消注释并设为true,将[server]下的domain

    设为grafana的服务器ip,将[auth.anonymous]下的配置取消注释并将enabled设为true,然后即可将grafana中的仪表盘通过短链集成到夜莺。

    在本文中,我们详细介绍了如何部署和配置夜莺Nightingale监控平台,以实现高可用性监控架构。通过精心设计的Redis集群、MySQL主从复制、Prometheus数据源集成,以及Keepalived的高可用配置,我们确保了监控服务的稳定性和可靠性。此外,通过集成Grafana仪表盘,我们进一步增强了监控数据的可视化和分析能力。

    随着监控平台的成功部署和运行,我们不仅提升了对IT基础设施的实时监控能力,还为未来的业务扩展和性能优化奠定了坚实的基础。我们期待夜莺Nightingale监控平台在持续的运营中发挥关键作用,帮助我们更好地理解和优化系统性能,确保业务连续性和数据安全。

    如有相关问题,请在文章后面给小编留言,小编安排作者第一时间和您联系,为您答疑解惑。

    «
以专业成就每一位客户,让企业IT只为效果和安全买单

以专业成就每一位客户,让企业IT只为效果和安全买单