166 lines
4.1 KiB
Markdown
166 lines
4.1 KiB
Markdown
|
> 本文作者:丁辉
|
|||
|
|
|||
|
# N9e对接Kube-Prometheus-Stack
|
|||
|
|
|||
|
## 更新Kube-Prometheus-Stack
|
|||
|
|
|||
|
1. 编写 values.yaml
|
|||
|
|
|||
|
```bash
|
|||
|
vi kube-prometheus-stack-values.yaml
|
|||
|
```
|
|||
|
|
|||
|
2. 内容如下
|
|||
|
|
|||
|
```yaml
|
|||
|
prometheusOperator:
|
|||
|
admissionWebhooks:
|
|||
|
patch:
|
|||
|
enabled: true
|
|||
|
image:
|
|||
|
registry: registry.aliyuncs.com # 配置国内镜像加速
|
|||
|
repository: google_containers/kube-webhook-certgen
|
|||
|
grafana:
|
|||
|
enabled: false
|
|||
|
alertmanager:
|
|||
|
enabled: false
|
|||
|
defaultRules:
|
|||
|
create: false
|
|||
|
# 这些设置表明所提及的选择器(规则、服务监视器、Pod 监视器和抓取配置)将具有独立的配置,而不会基于 Helm 图形值。(否则你的 ServiceMonitor 可能不会被自动发现)
|
|||
|
prometheus:
|
|||
|
prometheusSpec:
|
|||
|
ruleSelectorNilUsesHelmValues: false
|
|||
|
serviceMonitorSelectorNilUsesHelmValues: false
|
|||
|
podMonitorSelectorNilUsesHelmValues: false
|
|||
|
probeSelectorNilUsesHelmValues: false
|
|||
|
scrapeConfigSelectorNilUsesHelmValues: false
|
|||
|
# 服务器上启用 --web.enable-remote-write-receiver 标志
|
|||
|
enableRemoteWriteReceiver: true
|
|||
|
# 启用 Prometheus 中被禁用的特性
|
|||
|
enableFeatures:
|
|||
|
- remote-write-receiver
|
|||
|
# 挂载持久化存储
|
|||
|
storageSpec:
|
|||
|
volumeClaimTemplate:
|
|||
|
spec:
|
|||
|
# 选择默认的 sc 创建存储(我已在集群内准备 nfs-client)
|
|||
|
storageClassName:
|
|||
|
accessModes: ["ReadWriteOnce"]
|
|||
|
resources:
|
|||
|
requests:
|
|||
|
storage: 10Gi # 根据自己的需求申请 pvc 大小
|
|||
|
# 挂载本地时区
|
|||
|
volumes:
|
|||
|
- name: timezone
|
|||
|
hostPath:
|
|||
|
path: /usr/share/zoneinfo/Asia/Shanghai
|
|||
|
volumeMounts:
|
|||
|
- name: timezone
|
|||
|
mountPath: /etc/localtime
|
|||
|
readOnly: true
|
|||
|
```
|
|||
|
|
|||
|
3. 更新
|
|||
|
|
|||
|
```bash
|
|||
|
helm upgrade kube-prometheus-stack -f kube-prometheus-stack-values.yaml --set "kube-state-metrics.image.registry=k8s.dockerproxy.com" prometheus-community/kube-prometheus-stack -n monitor
|
|||
|
```
|
|||
|
|
|||
|
## 更新N9e
|
|||
|
|
|||
|
1. 获取 nightingale-center svc
|
|||
|
|
|||
|
```bash
|
|||
|
kubectl get svc nightingale-center -n monitor | grep -v NAME | awk '{print $3}'
|
|||
|
```
|
|||
|
|
|||
|
2. 编写 values.yaml
|
|||
|
|
|||
|
```bash
|
|||
|
vi n9e-values.yaml
|
|||
|
```
|
|||
|
|
|||
|
内容如下
|
|||
|
|
|||
|
```yaml
|
|||
|
expose:
|
|||
|
type: clusterIP # 使用 clusterIP
|
|||
|
|
|||
|
externalURL: https://hello.n9e.info # 改为自己的外部服务访问地址
|
|||
|
|
|||
|
persistence:
|
|||
|
enabled: true
|
|||
|
|
|||
|
categraf:
|
|||
|
internal:
|
|||
|
docker_socket: unix:///var/run/docker.sock # 如果您的kubernetes运行时是容器或其他,则清空此变量。
|
|||
|
|
|||
|
n9e:
|
|||
|
internal:
|
|||
|
image:
|
|||
|
repository: flashcatcloud/nightingale
|
|||
|
tag: latest # 使用最新版镜像
|
|||
|
|
|||
|
prometheus:
|
|||
|
type: external
|
|||
|
external:
|
|||
|
host: "10.43.119.105" # 这里添加 nightingale-center svc
|
|||
|
port: "9090"
|
|||
|
username: ""
|
|||
|
password: ""
|
|||
|
podAnnotations: {}
|
|||
|
```
|
|||
|
|
|||
|
3. 更新
|
|||
|
|
|||
|
```bash
|
|||
|
helm upgrade nightingale ./n9e-helm -n monitor -f n9e-values.yaml
|
|||
|
```
|
|||
|
|
|||
|
4. 编写 ServiceMonitor
|
|||
|
|
|||
|
```bash
|
|||
|
vi n9e-servicemonitor.yaml
|
|||
|
```
|
|||
|
|
|||
|
内容如下
|
|||
|
|
|||
|
```yaml
|
|||
|
apiVersion: monitoring.coreos.com/v1
|
|||
|
kind: ServiceMonitor
|
|||
|
metadata:
|
|||
|
name: n9e-center-monitor
|
|||
|
namespace: monitor
|
|||
|
spec:
|
|||
|
endpoints:
|
|||
|
- path: /metrics
|
|||
|
port: port
|
|||
|
namespaceSelector:
|
|||
|
matchNames:
|
|||
|
- monitor
|
|||
|
selector:
|
|||
|
matchLabels:
|
|||
|
app: n9e
|
|||
|
```
|
|||
|
|
|||
|
5. 部署
|
|||
|
|
|||
|
```bash
|
|||
|
kubectl apply -f n9e-servicemonitor.yaml
|
|||
|
```
|
|||
|
|
|||
|
6. N9e 添加数据源
|
|||
|
|
|||
|
```bash
|
|||
|
http://kube-prometheus-stack-prometheus:9090/
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
## 问题记录
|
|||
|
|
|||
|
> ```
|
|||
|
> WARNING writer/writer.go:129 push data with remote write:http://10.43.119.105:9090/api/v1/write request got status code: 400, response body: out of order sample
|
|||
|
> WARNING writer/writer.go:79 post to http://10.43.119.105:9090/api/v1/write got error: push data with remote write:http://10.43.119.105:9090/api/v1/write request got status code: 400, response body: out of order sample
|
|||
|
> ```
|
|||
|
>
|
|||
|
> 上报数据 400, 暂时没有思路咋解决
|