当前位置:   article > 正文

Nightingale部署方案_n9e.tar.gz

n9e.tar.gz

背景

        监控告警体系一直是运维工作的重中之重,万物无定型,技术的选择也是遵循这个道理,在综合当前公司的实际情况下,国产监控热门只选Nightingale就自然而然的成为了最佳的选择。

        当前公司服务大部分运行在IDC机房中,并且存在多个机房,也有部分云服务,部署方式既有主机部署的、Docker部署的,也有部署在K8S集群中的,情况复杂多样。

部署环境

操作系统:centos 7.9

Mysql:8

Redis:6.2

Nightingale:6.5.0

Nginx:1.25.0

Victoriametrics:v1.79.12

Categraf:v0.3.38

ibex:v0.5.0

Server端数据路径:/data

Categraf部署路径:/usr/local/categraf

架构图

以A机房为中心节点,部署Nightingale的主程序以及相依赖的Mysql和Redis,agent端采用Categraf,存储统一采用Victoriametrics;A机房的Categraf直接通过Nightingal主程序接口上传监控数据

B机房为边缘节点,采用categraf+n9e+Victoriametrics结构,可独立告警,告警信息汇总至中心节点

中心节点-A机房

categraf:负责采集指标数据并上传至n9e,数据写入路径为categraf --> Nginx代理 --> n9e --> victoriametrics;另外ibex的agent也合并至了categraf,categraf也支持远程执行脚本,执行请求路径为n9e --> ibex server --> categraf

n9e:Nightingale的主程序,提供web页面,核心依赖组件为mysql和redis

victoriametrics:时序存储,用来存储监控指标数据,兼容Prometheus,但性能较Prometheus有较大改善

ibex:提供远程执行脚本功能,以API方式提供服务

Nginx:n9e的反向代理,采用域名通信

核心服务部署清单

IP地址

配置

服务

版本

部署方式

故障重启

10.20.18.5

32C/64G/500G

Mysql

8

Docker

支持

Redis

6.2

Docker

支持

ibex

v0.5.0

Docker

支持

nightingale

6.4.0

Docker

支持

victoriametrics

v1.79.12

Docker

支持

10.20.18.6

8C/16G/500G

Nginx

1.25.0-alpine

Docker

支持

边缘节点-B机房

n9e-edge: 与主程序n9e进行通信,主要实现告警和数据上传功能

安装部署

Server

中心节点docker-compose.yaml

  1. version: "3.3"
  2. services:
  3. mysql:
  4. image: "mysql:8"
  5. container_name: mysql
  6. hostname: mysql
  7. restart: always
  8. environment:
  9. TZ: Asia/Shanghai
  10. MYSQL_ROOT_PASSWORD: 672ANVJf
  11. volumes:
  12. - /data/mysql/data:/var/lib/mysql/
  13. - /data/mysql/conf/my.cnf:/etc/my.cnf
  14. network_mode: host
  15. redis:
  16. image: "redis:6.2"
  17. container_name: redis
  18. hostname: redis
  19. restart: always
  20. volumes:
  21. - /data/redis/data:/data
  22. environment:
  23. TZ: Asia/Shanghai
  24. command: redis-server --appendonly yes --requirepass 672ANVJf
  25. network_mode: host
  26. n9e:
  27. image: flashcatcloud/nightingale:6.5.0
  28. container_name: n9e
  29. hostname: n9e
  30. restart: always
  31. environment:
  32. GIN_MODE: release
  33. TZ: Asia/Shanghai
  34. WAIT_HOSTS: 10.20.18.5:3306, 10.20.18.5:6379
  35. volumes:
  36. - /data/n9e/conf:/app/etc
  37. network_mode: host
  38. depends_on:
  39. - mysql
  40. - redis
  41. command: >
  42. sh -c "/app/n9e"
  43. ibex:
  44. image: flashcatcloud/ibex:v0.5.0
  45. container_name: ibex
  46. hostname: ibex
  47. restart: always
  48. environment:
  49. GIN_MODE: release
  50. TZ: Asia/Shanghai
  51. WAIT_HOSTS: 10.20.18.5:3306
  52. volumes:
  53. - /data/ibex:/app/etc
  54. network_mode: host
  55. depends_on:
  56. - mysql
  57. command: >
  58. sh -c "/app/ibex server"

Victoriametrics docker-compose.yaml

  1. version: "3.3"
  2. services:
  3. victoriametrics:
  4. image: victoriametrics/victoria-metrics:v1.79.12
  5. container_name: victoriametrics
  6. hostname: victoriametrics
  7. restart: always
  8. volumes:
  9. - /data/victoriametrics/data:/victoria-metrics-data
  10. environment:
  11. TZ: Asia/Shanghai
  12. network_mode: host
  13. command:
  14. - "--loggerTimezone=Asia/Shanghai"

Nginx

Nginx docker-compose.yaml

  1. version: '3.3'
  2. services:
  3. nginx:
  4. image: nginx:1.25.0-alpine
  5. restart: always
  6. hostname: nginx
  7. container_name: nginx
  8. privileged: true
  9. ports:
  10. - 80:80
  11. - 443:443
  12. volumes:
  13. - /data/nginx/conf/:/etc/nginx/ # 配置文件
  14. - /data/nginx/cert/:/etc/cert/ # ssl证书
  15. - /data/nginx/logs/:/var/log/nginx/ # 日志文件

n9e.conf配置

  1. upstream n9e {
  2. server 10.20.18.5:17000;
  3. }
  4. server {
  5. listen 80;
  6. server_name n9e.5i5j.com;
  7. location / {
  8. proxy_pass http://n9e;
  9. access_log /var/log/nginx/n9e.5i5j.com.access.log;
  10. proxy_set_header X-Real-IP $remote_addr;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. }
  13. }

N9e-edge

官方并没有n9e-edge的docker image,所以需要下载安装包后自己封装

n9e-edge Dockerfile

  1. FROM ubuntu:21.04
  2. WORKDIR /app
  3. ADD n9e-edge /app
  4. ADD edge /app/edge
  5. RUN chmod +x n9e-edge
  6. EXPOSE  19000
  7. CMD ["./n9e-edge","--configs","edge"]
n9e-edge docker-compose.yaml
  1. version: "3.3"
  2. services:
  3.   n9e-edge:
  4.     image: n9e-edge:6.5.0
  5.     container_name: n9e-edge
  6.     hostname: n9e-edge
  7.     restart: always
  8.     volumes:
  9.       - /data/n9e-edge/edge:/app/edge
  10.     environment:
  11.       TZ: Asia/Shanghai
  12.     network_mode: host

Categraf

安装包

https://www.wpsshop.cn/w/我家自动化/article/detail/158678

推荐阅读
相关标签
  

闽ICP备14008679号