夜莺n9e对接多个Prometheus

背景

使用夜莺对接多个集群的 promethus, 来完成多个 k8s的告警规则的汇总。

webapi 配置

webapi的配置文件,在安装目录下的 etc/webapi.conf
Mysql(DB)和Redis的配置这里就不多讲了,需要修改的单单独修改
之后需要在 webapi.conf 文件中将多个Prometheus都维护到 [[Cluster]]
[[Cluster]] 表示这部分配置是个数组可以复制多份,然后每份维护不同的Name Prom 填写 Prometheus 的URL即可
例如:

[[Clusters]]
# Prometheus cluster name
Name = "Default"
# Prometheus APIs base url
Prom = "http://192.168.189.170:30909"
# Basic auth username
BasicAuthUser = ""
# Basic auth password
BasicAuthPass = ""
# timeout settings, unit: ms
Timeout = 30000
DialTimeout = 3000
MaxIdleConnsPerHost = 100

[[Clusters]]
# Prometheus cluster name
Name = "161cluster"
# Prometheus APIs base url
Prom = "http://192.168.189.160:30909"
# Basic auth username
BasicAuthUser = ""
# Basic auth password
BasicAuthPass = ""
# timeout settings, unit: ms
Timeout = 30000
DialTimeout = 3000
MaxIdleConnsPerHost = 100

上面表示 Default集群链接Prometheus 是 http://192.168.189.170:30909, 161cluster 集群链接的 Prometheus 是http://192.168.189.160:30909
然后启动

nohup ./n9e webapi &> webapi.log &

Server 处理

默认的配置文件, 安装目录下的 etc/server.conf,需要修改Mysql(DB)和 Redis的配置,提前修改。 这里也不详细阐述
之后启动 server

nohup ./n9e server &> server.log &

夜莺要求 server 必须和 Prometheus一一对应,就要启动多个server, 为了方便这里就在一个服务器使用同一个安装包使用不同的配置文件启动多个实例

源码分析

从源码 src\main.go 分析看,代码中读取了conf 参数, 添加配置文件的参数应该是 conf

func newServerCmd() *cli.Command {
	return &cli.Command{
		Name:  "server",
		Usage: "Run server",
		Flags: []cli.Flag{
			&cli.StringFlag{
				Name:    "conf",
				Aliases: []string{"c"},
				Usage:   "specify configuration file(.json,.yaml,.toml)",
			},
		},
		Action: func(c *cli.Context) error {
			printEnv()

			var opts []server.ServerOption
			if c.String("conf") != "" {
				opts = append(opts, server.SetConfigFile(c.String("conf")))
			}
			opts = append(opts, server.SetVersion(version.VERSION))

			server.Run(opts...)
			return nil
		},
	}
}

操作

将安装目录下面的的 etc/server.conf 复制一份并且重命名。
在这里插入图片描述

修改复制的文件对接需要监控的k8s集群的prometheus
修改 clusterName 和webapi.conf 中的一致
在这里插入图片描述
修改端口, 不要再用19000 了会冲突
在这里插入图片描述
修改Reader的Url为对应k8s的prometheus
在这里插入图片描述

使用 --config 参数再启动一个副本

nohup ./n9e  server --conf ./etc/server61-19001.conf  &> server61.log &

ps一下进程就看到了又启动一个 server 了
在这里插入图片描述

结果

告警引擎界面就能看到了,对应集群告警的邮件也就能发出来了
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值