lavonXV 发表于 2024-5-25 13:56:18

Linux本地部署Nightingale夜莺监控并实现远程访问提高运维效率

本帖最后由 lavonXV 于 2024-5-25 13:58 编辑

Nightingale(夜莺)是一款开源的监控系统,可以帮助运维人员实时监控服务器和应用的状态,提高系统稳定性和运维效率。本文将详细介绍如何在Linux环境下本地部署Nightingale,并配置远程访问功能。

1. 准备工作

在开始部署之前,需要确保系统满足以下基本要求:

(1) 一台运行Linux操作系统的服务器(例如:Ubuntu 20.04)。
(2) 安装了Docker和Docker Compose。
(3) 配置好防火墙,允许相应端口的访问。

1.1 安装Docker

如果尚未安装Docker,可以通过以下命令进行安装:


sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker


验证Docker是否安装成功:


docker --version


1.2 安装Docker Compose

Docker Compose可以帮助我们更方便地管理多容器应用。使用以下命令安装Docker Compose:


sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose


验证Docker Compose是否安装成功:


docker-compose --version


2. 下载并配置Nightingale

2.1 下载Nightingale源码

首先,克隆Nightingale的GitHub仓库:


git clone <a href="https://github.com/ccfos/nightingale.git" target="_blank">https://github.com/ccfos/nightingale.git</a>
cd nightingale


2.2 配置Docker Compose文件

在Nightingale项目目录中,找到`docker-compose.yml`文件。我们需要对该文件进行一些修改,以便适应我们的部署环境。

编辑`docker-compose.yml`,确保配置如下:


version: '3'

services:
n9e:
    image: n9e/n9e:v5.1.0
    container_name: n9e
    restart: always
    ports:
      - "17000:17000"
      - "17001:17001"
    volumes:
      - ./n9e-data:/data
    environment:
      - MYSQL_HOST=mysql
      - MYSQL_PORT=3306
      - MYSQL_USER=root
      - MYSQL_PASS=yourpassword
      - MYSQL_DB=n9e
      - REDIS_ADDR=redis:6379
      - JWT_SECRET=your_jwt_secret
      - [email protected]
      - ADMIN_PASS=admin_password

mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: yourpassword
      MYSQL_DATABASE: n9e
    volumes:
      - ./mysql-data:/var/lib/mysql

redis:
    image: redis:5.0
    container_name: redis
    restart: always
    volumes:
      - ./redis-data:/data

将`yourpassword`和`your_jwt_secret`替换为实际的密码和密钥。

3. 启动Nightingale

配置完成后,通过以下命令启动Nightingale服务:


docker-compose up -d

此时,Nightingale会自动启动,并通过`17000`和`17001`端口提供服务。

4. 配置防火墙和远程访问

为了实现远程访问,需要配置防火墙以允许相关端口的访问。

4.1 配置防火墙

使用`ufw`(Uncomplicated Firewall)配置防火墙,允许`17000`和`17001`端口的访问:


sudo ufw allow 17000/tcp
sudo ufw allow 17001/tcp
sudo ufw enable


4.2 配置反向代理(可选)

为了提高安全性和便捷性,可以使用Nginx配置反向代理。

4.2.1 安装Nginx

使用以下命令安装Nginx:


sudo apt-get install -y nginx


4.2.2 配置Nginx

在`/etc/nginx/sites-available`目录中创建一个新的配置文件,例如`nightingale`:


sudo nano /etc/nginx/sites-available/nightingale


在文件中添加以下内容:


server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
      proxy_pass http://localhost:17000;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /api/ {
      proxy_pass http://localhost:17001;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
}


激活该配置文件,并重启Nginx:


sudo ln -s /etc/nginx/sites-available/nightingale /etc/nginx/sites-enabled/
sudo systemctl restart nginx


5. 访问Nightingale

现在,可以通过浏览器访问Nightingale监控系统:

- 输入`http://your_domain_or_ip`访问Nightingale的Web界面。
- 使用之前配置的管理员邮箱和密码登录。

6. 添加监控节点

在Nightingale Web界面中,可以添加新的监控节点和设置告警规则。

6.1 添加主机

在“主机管理”页面,添加需要监控的主机。可以通过SSH远程执行脚本来安装Nightingale Agent,或手动安装。

6.2 配置告警规则

根据业务需求,在“告警管理”页面配置告警规则,确保在系统异常时能够及时收到通知。

7. 总结

本文详细介绍了如何在Linux环境下本地部署Nightingale监控系统,并实现远程访问。通过Docker和Docker Compose,简化了安装和配置过程;通过防火墙和反向代理配置,确保系统的安全性和访问的便捷性。希望本文能帮助读者快速上手Nightingale,提高运维效率。
页: [1]
查看完整版本: Linux本地部署Nightingale夜莺监控并实现远程访问提高运维效率