一、夜莺监控简介
夜莺监控(Nightingale)是一款集数据采集、可视化、监控告警和数据分析于一体的开源云原生观测分析工具。它采用All-in-One设计理念,与云原生生态紧密集成,为企业提供即插即用的监控分析和告警能力。
二、夜莺Nightingale高可用架构
实现夜莺的高可用性,只需将服务部署在不同的机器上,并确保配置文件一致,同时连接到同一个MySQL和Redis实例。通过在夜莺前端配置虚拟IP(VIP)并部署集群或主从模式的中间件,即可实现高可用架构。
三、部署步骤详解
Redis集群部署
- 启动Redis容器:使用Docker在两台服务器上分别启动3个Redis容器。
- 配置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
- 创建集群:所有容器启动后,通过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主从部署
- 部署MySQL服务:在两台服务器上使用二进制方式部署MySQL,确保server_id不同,并开启gtid_mode。
- 创建同步账户:在主库上创建从库同步账户并授权。
SQL
CREATE USER 'slave'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO 'slave'@'%';
- 开启同步:在从库上配置主库信息,开启数据同步。
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部署
- 部署Prometheus:在服务器上部署Prometheus,作为数据源。
- 配置参数:开启热重载和远程写入监控数据接收。
YAML
--web.enable-lifecycle
--web.enable-remote-write-receiver
夜莺服务部署
- 部署夜莺:在两台服务器上部署夜莺服务。
- 配置日志:在config.toml中配置日志目录、级别和输出方式。
TOML
[Log]
Dir = "logs"
Level = "INFO"
Output = "file"
- 配置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配置
- 安装Keepalived:在两台服务器上安装Keepalived。
- 配置抢占:配置为BACKUP模式,使用不同优先级进行抢占。
- 配置检测脚本:配置检测脚本检测夜莺进程。
夜莺平台配置
- 访问夜莺:通过配置的VIP访问夜莺服务,夜莺服务的端口默认为17000,使用http://vip:17000/进行访问,账户密码默认为root/root.2020。
- 添加数据源:在集成中心添加Prometheus-like数据源,URL填入http://n9e-01IP:9090。
集成grafana仪表盘
- 集成Grafana:如果有正在使用的Grafana,可以在夜莺中集成。
- 配置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监控平台在持续的运营中发挥关键作用,帮助我们更好地理解和优化系统性能,确保业务连续性和数据安全。