Kubernetes/Helm/Helm部署Nightingale.md
offends 7a2f41e7d6
All checks were successful
continuous-integration/drone Build is passing
synchronization
2024-08-07 18:54:39 +08:00

223 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

> 本文作者:丁辉
# 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)