官网文档

各个版本下载地址:https://github.com/didi/nightingale/releases

一、安装

1.安装编译

下载我们编译好的二进制到/home/n9e目录,如果要更换目录,要注意修改nginx.conf

mkdir -p /home/n9e
cd /home/n9e
wget http://116.85.64.82/n9e.tar.gz
tar zxvf n9e.tar.gz

redis配置修改,默认配置的6379端口,密码为空,如果默认配置不对,可以执行如下命令,看到多个配置文件里有redis相关配置,挨个检查修改下

cd /home/n9e/etc
grep redis -r

下载前端静态资源文件,放到默认的/home/n9e目录下,如果要改目录,需要修改后面提到的nginx.conf

cd /home/n9e
wget http://116.85.64.82/pub.tar.gz
tar zxvf pub.tar.gz
前端的源码单独拆了一个repo,地址是: https://github.com/n9e/fe 没有和nightingale放一块

2.安装mysql、redis、nginx

yum install -y mariadb* redis nginx


安装完成MariaDB,首先启动MariaDB
systemctl start mariadb

设置开机启动
systemctl enable mariadb

接下来进行MariaDB的相关简单配置
mysql_secure_installation

登录mysql
mysql -uroot -p

开启redis
systemctl start redis

开启nginx
systemctl start nginx

3.导入n9e数据库表结构

mysql -uroot -p </home/n9e/sql/n9e_ams.sql
mysql -uroot -p </home/n9e/sql/n9e_hbs.sql
mysql -uroot -p </home/n9e/sql/n9e_job.sql
mysql -uroot -p </home/n9e/sql/n9e_mon.sql
mysql -uroot -p </home/n9e/sql/n9e_rdb.sql


安全考虑,建议为 n9e 独立建立 mysql 用户,在 mysql 里创建 n9e 用户并授权
mysql>create user n9e@127.0.0.1 identified by '你的密码';
mysql>grant all on n9e_ams.* to n9e@127.0.0.1;
mysql>grant all on n9e_hbs.* to n9e@127.0.0.1;
mysql>grant all on n9e_job.* to n9e@127.0.0.1;
mysql>grant all on n9e_mon.* to n9e@127.0.0.1;
mysql>grant all on n9e_rdb.* to n9e@127.0.0.1;
mysql> flush privileges;

并修改组件/usr/local/n9e/etc/mysql.yml 文件里的数据库配置信息

vi /home/n9e/etc/mysql.yml

---
rdb:
  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_rdb?charset=utf8&parseTime=True&loc=Asia%2FShanghai"
  max: 16
  idle: 4
  debug: false
ams:
  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_ams?charset=utf8&parseTime=True&loc=Asia%2FShanghai"
  max: 16
  idle: 4
  debug: false
job:
  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_job?charset=utf8&parseTime=True&loc=Asia%2FShanghai"
  max: 16
  idle: 4
  debug: false
mon:
  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_mon?charset=utf8&parseTime=True&loc=Asia%2FShanghai"
  max: 16
  idle: 4
  debug: false
hbs:
  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_hbs?charset=utf8&parseTime=True&loc=Asia%2FShanghai"
  max: 16
  idle: 4
  debug: false

4.修改Nginx的配置文件

cat /home/n9e/etc/nginx.conf

image.png

把/home/n9e/etc/nginx.conf的配置信息拷贝到/usr/local/nginx/conf/nginx.conf,即

vi /etc/nginx/nginx.conf

增加配置
######################## nightingale ############################
upstream n9e.rdb {
        server 127.0.0.1:8000;
        keepalive 60;
    }

    upstream n9e.ams {
        server 127.0.0.1:8002;
        keepalive 60;
    }

    upstream n9e.job {
        server 127.0.0.1:8004;
        keepalive 60;
    }

    upstream n9e.monapi {
        server 127.0.0.1:8006;
        keepalive 60;
    }

    upstream n9e.transfer {
        server 127.0.0.1:8008;
        keepalive 60;
    }

    upstream n9e.index {
        server 127.0.0.1:8012;
        keepalive 60;
    }

    server {
        listen       6699 default_server;
        server_name  n9e.example.com;
        root         /home/n9e/pub;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location =/ {
            rewrite / /mon;
        }

        location / {
            try_files $uri /layout/index.html;
        }

        location ~ .*(.htm|.html|manifest.json)$ {
            add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
        }

        location /api/rdb {
            proxy_pass http://n9e.rdb;
        }

        location /api/ams {
            proxy_pass http://n9e.ams;
        }

        location /api/job {
            proxy_pass http://n9e.job;
        }

        location /api/mon {
            proxy_pass http://n9e.monapi;
        }

        location /api/index {
            proxy_pass http://n9e.index;
        }

        location /api/transfer {
            proxy_pass http://n9e.transfer;
        }
    }

5.验证配置是否正确

nginx -t

重新载入nginx

service nginx reload
启动
service nginx start
service nginx status

6.启动服务

启动所有
./control start all

查看状态
./control status

7. 访问

访问:http://ip:6699/
账号密码:root/root.2020

二、客户端单独部署

1.打包agent端需要的文件

tar zcvf agent.tar.gz n9e-agent etc/agent.yml etc/identity.yml etc/address.yml control

2.可以用python起一个httpserver

ss -tlnp| grep 8099
python -mSimpleHTTPServer 8099

3.在客户端下载这个压缩包

mkdir -p /home/n9e
cd /home/n9e

4.解压

address.yml
tar zxvf agent.tar.gz

5.修改配置文件

vi address.yml

:%s/127.0.0.1/你的ip/g

image.png

6.启动agent

./control start agent

7.设置自启动方式

把服务端的客户端启动文件复制到客户端的/usr/lib/systemd/system/agent.service

cat etc/service/agent.service

vim /usr/lib/systemd/system/agent.service
启动
systemctl start agent

开机自启动
systemctl enable agent