运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • Devops笔记

  • Kubernetes

  • 运维监控系统

  • go分布式爬虫

  • Linux性能优化

  • 夜莺(nightingale)开源观测平台

    • 夜莺(nightingale)介绍
    • n9e 部署
      • 三种部署方式
        • 1. 二进制方式
        • 2. docker compose方式
        • 3. helm方式
    • Categraf 采集器部署
    • VictoriaMetrics 时序库部署
    • 夜莺功能介绍
  • kubernetes-network-policy-recipes

  • 专栏
  • 夜莺(nightingale)开源观测平台
lyndon
2023-05-06
目录

n9e 部署

# 三种部署方式

各种环境的选型建议:

  • 如果想快速体验测试,可以使用 Docker compose 方式
  • 最稳定的部署方式,建议使用二进制部署
  • 公司大规模使用了 Kubernetes,可以选择 Helm 方式
  • 小规模使用,比如 1000 台机器以下,用 Prometheus 做存储即可,超过 1000 台机器,选择 VictoriaMetrics 可能更合适

# 1. 二进制方式

安装依赖mysql/redis

# install mysql
yum -y install mariadb*
systemctl enable mariadb
systemctl restart mariadb
mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('1234');"

# install redis
yum install -y redis
systemctl enable redis
systemctl restart redis
1
2
3
4
5
6
7
8
9
10

安装n9e

mkdir -p /opt/n9e && cd /opt/n9e
# 可以去 https://github.com/ccfos/nightingale/releases 找最新版本的包,文档里的包地址可能已经不是最新的了
tarball=n9e-v6.0.0-ga.6-linux-amd64.tar.gz
urlpath=https://download.flashcat.cloud/${tarball}
wget $urlpath || exit 1
tar zxvf ${tarball}
mysql -uroot -p1234 < n9e.sql
# 临时启动
nohup ./n9e &> n9e.log &

# 或者使用systemd托管服务
cat n9e.service
[Unit]
Description="n9e"
After=network.target

[Service]
Type=simple

ExecStart=/opt/n9e/n9e
WorkingDirectory=/opt/n9e

Restart=on-failure
SuccessExitStatus=0
LimitNOFILE=65536
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=n9e

[Install]
WantedBy=multi-user.target

cp n9e.service /etc/systemd/system/
systemctl daemon-reload
systemctl start n9e

# check n9e
ps aux |grep n9e|grep -v grep
root     19880  0.2  0.5 729972 18952 pts/0    Sl   15:48   0:00 ./n9e
# 或者:
systemctl status n9e

# check port
netstat -anpt |grep 17000
tcp6       0      0 :::17000                :::*                    LISTEN      19880/./n9e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

如果启动成功,n9e 默认会监听在 17000 端口。上面使用 nohup 简单演示,生产环境建议用 systemd 托管。

配置文件 etc/config.toml 中含有 mysql 的连接地址配置,如果连接数据库报错,可以检查一下用户名和密码。

夜莺服务端部署好之后,浏览器访问 17000 就可以体验相关功能了,默认用户是 root,密码是 root.2020,夜莺 v6 可以支持对接 Prometheus like、Elasticsearch、Jaeger 三种数据源,可以点击 系统信息-数据源 菜单,配置对应的数据源,即可在夜莺平台查看 metrics、logs、traces 的数据。

# 2. docker compose方式

使用Docker Compose一键启动夜莺,快速尝试。更多Docker Compose相关知识请参考Docker官网 (opens new window) 操作演示 (opens new window)

git clone https://gitlink.org.cn/ccfos/nightingale.git
cd nightingale/docker
# docker compose V2版本执行 docker compose up -d (https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)
docker-compose up -d
# 正常会有以下输出
# Creating mysql      ... done
# Creating redis      ... done
# Creating prometheus ... done
# Creating ibex       ... done
# Creating agentd     ... done
# Creating n9e        ... done
# Creating telegraf   ... done
# docker compose V2版本执行 docker compose ps (https://docs.docker.com/compose/#compose-v2-and-the-new-docker-compose-command)
docker-compose ps
# 正常情况会有以下输出
# NAME                IMAGE                              COMMAND                  SERVICE             CREATED             STATUS              PORTS
# categraf            flashcatcloud/categraf:latest      "/entrypoint.sh"         categraf            2 days ago          Up 2 days
# ibex                ulric2019/ibex:0.3                 "sh -c '/wait && /ap…"   ibex                2 days ago          Up 2 days
# mysql               mysql:5.7                          "docker-entrypoint.s…"   mysql               2 days ago          Up 2 days
# n9e                 flashcatcloud/nightingale:latest   "sh -c '/wait && /ap…"   n9e                 2 days ago          Up 2 days
# prometheus          prom/prometheus                    "/bin/prometheus --c…"   prometheus          2 days ago          Up 2 days
# redis               redis:6.2                          "docker-entrypoint.s…"   redis               2 days ago          Up 2 days
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

💡启动成功之后,建议把 initsql 目录下的内容挪走,这样下次重启的时候,DB 就不会重新初始化了。否则下次启动 mysql 还是会自动执行 initsql 下面的 sql 文件导致 DB 重新初始化,页面上创建的规则、大盘等都会丢失。Docker Compose 这种部署方式,只是用于简单测试,不推荐在生产环境使用,当然了,如果您是 Docker Compose 专家,另当别论"

服务启动之后,浏览器访问 n9e 的端口,即17000,默认用户是root,密码是root.2020

# 3. helm方式

Helm chart 由快猫团队维护,地址:https://github.com/flashcatcloud/n9e-helm 夜莺系统的默认用户是root,密码是root.2020

git clone https://github.com/flashcatcloud/n9e-helm.git
helm install nightingale ./n9e-helm -n n9e --create-namespace
1
2

配置chart

以下配置项可以在安装时通过 --set传入 或者 直接编辑 values.yaml

配置暴露夜莺服务的方式

  • Ingress: k8s集群中必须已经安装了ingress controller
  • ClusterIP: 通过集群的内部 cluster ip 暴露服务,选择该值时服务只能够在集群内部访问。
  • NodePort: 通过每个节点上的 IP 和静态端口(NodePort)暴露服务。在集群外通过NodeIP:NodePort 访问夜莺服务。
  • LoadBalancer: 使用云提供商的负载均衡器向外部暴露服务。

配置夜莺服务使用TLS

  • enabled: 是否使用tls方式。如果expose.type 为 ingress 并且 enabled为false时,记得删除expose.ingress.annotations中的ssl-redirect annotations。
  • certSource: TLS证书来源。 可选项为
    • auto: 自动生成TLS证书。
      • commonName: 用于生成证书的CN, 如果expose.type 不是 ingress, 此项必须填写。
    • secret: 从特定的secret中读取证书信息。TLS证书可以手动生成,或通过cert manager生成。
      • secretName: secret的名字,必须包含以下两个key的内容
        • tls.crt: 证书内容
        • tls.key: 私钥内容
    • none: 不使用TLS证书(ingress模式)。 如果 ingress controller配置了默认的TLS证书, 使用此选项。

配置external URL

external URL主要用于访问夜莺web服务

格式: protocol://domain[:port]。 通常:

  • 如果通过 Ingress 暴露服务, domain 应该配置为 expose.ingress.hosts.web
  • 如果通过 ClusterIP 暴露服务, domain 应该配置为 expose.clusterIP.name
  • 如果通过 NodePort 暴露服务, domain 应该配置为 k8s 集群内node的IP
  • 如果通过 LoadBalancer 暴露服务, domain 应该配置为从云提供商那里获取到的域名的CNAME(自有域名作为提供商域名的cname)

注意:

  1. 如果夜莺部署在proxy之后,那 domain 设置为proxy的URL
  2. 夜莺web服务的初始用户名为 root,初始密码为 root.2020

配置持久化存储

  • Disable: 关闭持久存储,pod生命周期结束后,数据消失。

  • Persistent Volume Claim(default): 需要设置StorageClass以便k8s提供动态卷支持。 如果已有持久卷, 就配置到 existingClaim

    我用的是阿里云nas storageclass,设置参数:storageClass: "nas-sc"

卸载

卸载/删除 nightingale:

helm uninstall  nightingale -n n9e
1
上次更新: 2023/05/06, 16:27:35
夜莺(nightingale)介绍
Categraf 采集器部署

← 夜莺(nightingale)介绍 Categraf 采集器部署→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式