|
- # debug, release
- RunMode = "release"
-
- # # custom i18n dict config
- # I18N = "./etc/i18n.json"
-
- # # custom i18n request header key
- # I18NHeaderKey = "X-Language"
-
- # metrics descriptions
- MetricsYamlFile = "./etc/metrics.yaml"
-
- BuiltinAlertsDir = "./etc/alerts"
- BuiltinDashboardsDir = "./etc/dashboards"
-
- # config | api
- ClustersFrom = "config"
-
- # using when ClustersFrom = "api"
- ClustersFromAPIs = []
-
- [[NotifyChannels]]
- Label = "邮箱"
- # do not change Key
- Key = "email"
-
- [[NotifyChannels]]
- Label = "钉钉机器人"
- # do not change Key
- Key = "dingtalk"
-
- [[NotifyChannels]]
- Label = "企微机器人"
- # do not change Key
- Key = "wecom"
-
- [[NotifyChannels]]
- Label = "飞书机器人"
- # do not change Key
- Key = "feishu"
-
- [[NotifyChannels]]
- Label = "mm bot"
- # do not change Key
- Key = "mm"
-
- [[NotifyChannels]]
- Label = "telegram机器人"
- # do not change Key
- Key = "telegram"
-
- [[ContactKeys]]
- Label = "Wecom Robot Token"
- # do not change Key
- Key = "wecom_robot_token"
-
- [[ContactKeys]]
- Label = "Dingtalk Robot Token"
- # do not change Key
- Key = "dingtalk_robot_token"
-
- [[ContactKeys]]
- Label = "Feishu Robot Token"
- # do not change Key
- Key = "feishu_robot_token"
-
- [[ContactKeys]]
- Label = "MatterMost Webhook URL"
- # do not change Key
- Key = "mm_webhook_url"
-
- [[ContactKeys]]
- Label = "Telegram Robot Token"
- # do not change Key
- Key = "telegram_robot_token"
-
- [Log]
- # log write dir
- Dir = "logs"
- # log level: DEBUG INFO WARNING ERROR
- Level = "DEBUG"
- # stdout, stderr, file
- Output = "stdout"
- # # rotate by time
- # KeepHours: 4
- # # rotate by size
- # RotateNum = 3
- # # unit: MB
- # RotateSize = 256
-
- [HTTP]
- # http listening address
- Host = "0.0.0.0"
- # http listening port
- Port = 18000
- # https cert file path
- CertFile = ""
- # https key file path
- KeyFile = ""
- # whether print access log
- PrintAccessLog = true
- # whether enable pprof
- PProf = false
- # http graceful shutdown timeout, unit: s
- ShutdownTimeout = 30
- # max content length: 64M
- MaxContentLength = 67108864
- # http server read timeout, unit: s
- ReadTimeout = 20
- # http server write timeout, unit: s
- WriteTimeout = 40
- # http server idle timeout, unit: s
- IdleTimeout = 120
-
- [JWTAuth]
- # signing key
- SigningKey = "5b94a0fd640fe2765af826acfe42d151"
- # unit: min
- AccessExpired = 1500
- # unit: min
- RefreshExpired = 10080
- RedisKeyPrefix = "/jwt/"
-
- [ProxyAuth]
- # if proxy auth enabled, jwt auth is disabled
- Enable = false
- # username key in http proxy header
- HeaderUserNameKey = "X-User-Name"
- DefaultRoles = ["Standard"]
-
- [BasicAuth]
- user001 = "ccc26da7b9aba533cbb263a36c07dcc5"
-
- [AnonymousAccess]
- PromQuerier = false
- AlertDetail = false
-
- [LDAP]
- Enable = false
- Host = "ldap.example.org"
- Port = 389
- BaseDn = "dc=example,dc=org"
- # AD: manange@example.org
- BindUser = "cn=manager,dc=example,dc=org"
- BindPass = "*******"
- # openldap format e.g. (&(uid=%s))
- # AD format e.g. (&(sAMAccountName=%s))
- AuthFilter = "(&(uid=%s))"
- CoverAttributes = true
- TLS = false
- StartTLS = true
- # ldap user default roles
- DefaultRoles = ["Standard"]
-
- [LDAP.Attributes]
- Nickname = "cn"
- Phone = "mobile"
- Email = "mail"
-
- [OIDC]
- Enable = false
- DisplayName = "OIDC登录"
- RedirectURL = "http://n9e.com/callback"
- SsoAddr = "http://sso.example.org"
- ClientId = ""
- ClientSecret = ""
- CoverAttributes = true
- DefaultRoles = ["Standard"]
-
- [OIDC.Attributes]
- Nickname = "nickname"
- Phone = "phone_number"
- Email = "email"
-
- [CAS]
- Enable = false
- DisplayName = "CAS登录"
- SsoAddr = "https://cas.example.com/cas/"
- RedirectURL = "http://127.0.0.1:18000/callback/cas"
- CoverAttributes = false
- # cas user default roles
- DefaultRoles = ["Standard"]
-
- [CAS.Attributes]
- Nickname = "nickname"
- Phone = "phone_number"
- Email = "email"
-
- [OAuth]
- Enable = false
- DisplayName = "OAuth2登录"
- RedirectURL = "http://127.0.0.1:18000/callback/oauth"
- SsoAddr = "https://sso.example.com/oauth2/authorize"
- TokenAddr = "https://sso.example.com/oauth2/token"
- UserInfoAddr = "https://api.example.com/api/v1/user/info"
- ClientId = ""
- ClientSecret = ""
- CoverAttributes = true
- DefaultRoles = ["Standard"]
- UserinfoIsArray = false
- UserinfoPrefix = "data"
- Scopes = ["profile", "email", "phone"]
-
- [OAuth.Attributes]
- # Username must be defined
- Username = "username"
- Nickname = "nickname"
- Phone = "phone_number"
- Email = "email"
-
- # example
- # # nested : UserinfoIsArray=false, UserinfoPrefix="data"
- # # {"data":{"username":"123456","nickname":"姓名"},"code":0,"message":"ok"}
- # # nested and array : UserinfoIsArray=true, UserinfoPrefix="data"
- # # {"data":[{"username":"123456","nickname":"姓名"}],"code":0,"message":"ok"}
- # # flat : UserinfoIsArray=false, UserinfoPrefix=""
- # # {"username":"123456","nickname":"姓名"}
- # # flat and array : UserinfoIsArray=true, UserinfoPrefix=""
- # # [{"username":"123456","nickname":"姓名"}]
-
- [Redis]
- # address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
- Address = "127.0.0.1:6379"
- # Username = ""
- # Password = ""
- # DB = 0
- # UseTLS = false
- # TLSMinVersion = "1.2"
- # standalone cluster sentinel
- RedisType = "standalone"
- # Mastername for sentinel type
- # MasterName = "mymaster"
- # SentinelUsername = ""
- # SentinelPassword = ""
-
- [DB]
- DSN="root:1234@tcp(127.0.0.1:3306)/n9e_v5?charset=utf8mb4&parseTime=True&loc=Local&allowNativePasswords=true"
- # enable debug mode or not
- Debug = false
- # mysql postgres
- DBType = "mysql"
- # unit: s
- MaxLifetime = 7200
- # max open connections
- MaxOpenConns = 150
- # max idle connections
- MaxIdleConns = 50
- # table prefix
- TablePrefix = ""
- # enable auto migrate or not
- # EnableAutoMigrate = false
-
- [[Clusters]]
- # Prometheus cluster name
- Name = "Default"
- # Prometheus APIs base url
- Prom = "http://127.0.0.1:9090"
- # Basic auth username
- BasicAuthUser = ""
- # Basic auth password
- BasicAuthPass = ""
- # timeout settings, unit: ms
- Timeout = 30000
- DialTimeout = 3000
- MaxIdleConnsPerHost = 100
- Headers = ["X-From", "n9e"]
-
- [Ibex]
- Address = "http://127.0.0.1:10090"
- # basic auth
- BasicAuthUser = "ibex"
- BasicAuthPass = "ibex"
- # unit: ms
- Timeout = 3000
-
- [TargetMetrics]
- TargetUp = '''max(max_over_time(target_up{ident=~"(%s)"}[%dm])) by (ident)'''
- LoadPerCore = '''max(max_over_time(system_load_norm_1{ident=~"(%s)"}[%dm])) by (ident)'''
- MemUtil = '''100-max(max_over_time(mem_available_percent{ident=~"(%s)"}[%dm])) by (ident)'''
- DiskUtil = '''max(max_over_time(disk_used_percent{ident=~"(%s)", path="/"}[%dm])) by (ident)'''
|