Kubernetes/Helm/Helm部署Nightingale.md

223 lines
3.8 KiB
Markdown
Raw Normal View History

2024-08-07 10:54:39 +00:00
> 本文作者:丁辉
# Helm部署Nightingale
## 介绍
**Nightingale 是一个开源的监控工具主要用于监控和分析电子病历系统EMR中的数据**。
## 开始部署
[官方文档](https://flashcat.cloud/docs/)
[项目仓库](https://github.com/ccfos/nightingale)
[Helm仓库地址](https://github.com/flashcatcloud/n9e-helm/tree/master)
1. 克隆 Helm 仓库
```bash
git clone https://github.com/flashcatcloud/n9e-helm.git
```
2. 编写 values.yaml
```bash
vi n9e-values.yaml
```
内容如下
```yaml
expose:
type: clusterIP # 使用 clusterIP
externalURL: https://填写域名 # 改为自己的外部服务访问地址
# 指定存储卷, 不指定则需要集群内存在默认的存储卷
persistence:
enabled: true
persistentVolumeClaim:
database:
storageClass: ""
redis:
storageClass: ""
prometheus:
storageClass: ""
categraf:
internal:
docker_socket: unix:///var/run/docker.sock # 如果您的kubernetes运行时是容器或其他则清空此变量。
n9e:
internal:
image:
repository: flashcatcloud/nightingale
tag: latest # 使用最新版镜像
```
3. 部署
```bash
helm install nightingale ./n9e-helm -n monitor -f n9e-values.yaml --create-namespace
```
4. 创建 Nginx 证书 secret
> cert为.pem和.crt文件都可以
```bash
kubectl create secret tls n9e-tls --key nginx.key --cert nginx.pem -n monitor
```
5. 编写 ingress 文件
```bash
vi n9e-ingress.yaml
```
内容如下
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: n9e-ingress
namespace: monitor
spec:
ingressClassName: nginx
rules:
- host: # 域名
http:
paths:
- pathType: Prefix
backend:
service:
name: nightingale-center
port:
number: 80
path: /
tls:
- hosts:
- # 域名
secretName: n9e-tls
```
6. 部署 ingress
```bash
kubectl apply -f n9e-ingress.yaml
```
7. 访问验证
- 访问地址https://hello.n9e.info
- 账户密码root/root.2020
## 卸载
1. 删除 ingress
```bash
kubectl delete -f n9e-ingress.yaml
```
2. 卸载 nightingale
```bash
helm uninstall nightingale -n monitor
```
3. 删除 secret
```bash
kubectl delete secret n9e-tls -n monitor
```
4. 删除命名空间
```bash
kubectl delete namespace monitor
```
# 开始使用
添加自带的 prometheus 数据源
登录系统后点击 > 系统配置 > 数据源 > 添加
- 数据源名称
```bash
nightingale-prometheus
```
- URL
```bash
http://nightingale-prometheus:9090
```
# 如何配置外部数据库
## 使用外部数据库
> 仅为示例
更改 values.yaml 内 database 配置
```bash
vi n9e-values.yaml
```
内容如下
```yml
database:
type: external # 改为 external
external:
host: "192.168.1.10"
port: "3306"
name: "n9e_v6"
username: "root"
password: "root"
sslmode: "disable"
```
## 配置外部 Reids 启动
> 指定 Reids 运行模式为独立模式或哨兵模式
>
> 仅为示例
更改 values.yaml 内 redis 配置
```bash
vi n9e-values.yaml
```
内容如下
```yml
redis:
type: external
external:
addr: "192.168.1.10:6379"
sentinelMasterSet: ""
password: ""
mode: "standalone" # standalone/sentinel
```
# 问题记录
- 部署后 prometheus 无法抓取 n9e 监控目标
原因是因为:
1. prometheus 配置 svc 地址错误
2. helm 模版格式错误
解决方法:
[本人提交记录](https://github.com/flashcatcloud/n9e-helm/pull/109)