synchronization
This commit is contained in:
		
							
								
								
									
										222
									
								
								Helm/Helm部署Nightingale.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								Helm/Helm部署Nightingale.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,222 @@
 | 
			
		||||
> 本文作者:丁辉
 | 
			
		||||
 | 
			
		||||
# 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)
 | 
			
		||||
		Reference in New Issue
	
	Block a user