nightingale安装

本文档详细介绍了两种方法在CentOS7系统上部署夜莺监控系统,包括使用oneinstack一键安装和手动安装步骤,涉及MySQL、Nginx配置及服务启动。安装完成后,可通过浏览器访问IP地址进行系统登录。
摘要由CSDN通过智能技术生成

https://gitee.com/xuhanga/Nightingale#22-%E8%B5%84%E4%BA%A7%E7%AE%A1%E7%90%86%E4%B8%AD%E5%BF%83

 

方法一:

简单快捷,直接使用all-in-one来安装部署夜莺的这套监控系统~

步骤

下载n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz并进行解压和安装

wget https://dl.cactifans.com/n9e/1.3.0/n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz && tar -zxvf n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz && yum install n9e-* -y

安装相应的nginx和mysql

推荐使用oneinstack直接一键安装~

wget -c http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --db_option 2 --dbinstallmethod 1 --dbrootpwd oneinstack --memcached  --reboot

mysql 导入表结构并创建相应的用户

mysql -uroot -p </usr/local/n9e/sql/n9e_hbs.sql

mysql -uroot -p </usr/local/n9e/sql/n9e_mon.sql

mysql -uroot -p </usr/local/n9e/sql/n9e_uic.sql

安全考虑,建议为 n9e 独立建立 mysql 用户,在 mysql 里创建 n9e 用户并授权

mysql>create user n9e@127.0.0.1 identified by '你的密码';

mysql>grant all on n9e_hbs.* to n9e@127.0.0.1;

mysql>grant all on n9e_mon.* to n9e@127.0.0.1;

mysql>grant all on n9e_uic.* to n9e@127.0.0.1;

mysql> flush privileges;

修改配置文件mysql.yml中的密码,通过sed或者手动都可以

vi /usr/local/n9e/etc/mysql.yml

---

uic:

  addr: "n9e:你的密码@tcp(127.0.0.1:3306)/n9e_uic?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

 

修改Nginx的配置文件

 cat /usr/local/n9e/etc/nginx.conf

   #放到http中

    proxy_connect_timeout   500ms;

    proxy_send_timeout      1000ms;

    proxy_read_timeout      3000ms;

    proxy_buffers           64 8k;

    proxy_busy_buffers_size    128k;

    proxy_temp_file_write_size 64k;

    proxy_redirect off;

    proxy_next_upstream error invalid_header timeout http_502 http_504;

 

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Real-Port $remote_port;

    proxy_set_header Host $http_host;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

 

# server内容

     upstream n9e.monapi {

        server 127.0.0.1:5800;

        keepalive 10;

    }

 

    upstream n9e.index {

        server 127.0.0.1:5830;

        keepalive 10;

    }

 

    upstream n9e.transfer {

        server 127.0.0.1:5810;

        keepalive 10;

    }

 

    server {

        listen      52000; #监听端口改成自己对外的接口

        server_name  _;

        root         /usr/share/nginx/html;

 

        # Load configuration files for the default server block.

 

        location / {

            root /usr/local/n9e/pub;

        }

 

        location /api/portal {

            proxy_pass http://n9e.monapi;

        }

 

        location /api/index {

            proxy_pass http://n9e.index;

        }

 

        location /api/transfer {

            proxy_pass http://n9e.transfer;

        }

    }

 

nginx的完整配置

cat /usr/local/nginx/conf/nginx.conf

 

user www www;

worker_processes auto;

 

error_log /data/wwwlogs/error_nginx.log crit;

pid /var/run/nginx.pid;

worker_rlimit_nofile 51200;

 

events {

  use epoll;

  worker_connections 51200;

  multi_accept on;

}

 

http {

  include mime.types;

  default_type application/octet-stream;

  server_names_hash_bucket_size 128;

  client_header_buffer_size 32k;

  large_client_header_buffers 4 32k;

  client_max_body_size 1024m;

  client_body_buffer_size 10m;

  sendfile on;

  tcp_nopush on;

  keepalive_timeout 120;

  server_tokens off;

  tcp_nodelay on;

 

  fastcgi_connect_timeout 300;

  fastcgi_send_timeout 300;

  fastcgi_read_timeout 300;

  fastcgi_buffer_size 64k;

  fastcgi_buffers 4 64k;

  fastcgi_busy_buffers_size 128k;

  fastcgi_temp_file_write_size 128k;

  fastcgi_intercept_errors on;

    proxy_connect_timeout   500ms;

    proxy_send_timeout      1000ms;

    proxy_read_timeout      3000ms;

    proxy_buffers           64 8k;

    proxy_busy_buffers_size    128k;

    proxy_temp_file_write_size 64k;

    proxy_redirect off;

    proxy_next_upstream error invalid_header timeout http_502 http_504;

 

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Real-Port $remote_port;

    proxy_set_header Host $http_host;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

 

  #Gzip Compression

  gzip on;

  gzip_buffers 16 8k;

  gzip_comp_level 6;

  gzip_http_version 1.1;

  gzip_min_length 256;

  gzip_proxied any;

  gzip_vary on;

  gzip_types

    text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml

    text/javascript application/javascript application/x-javascript

    text/x-json application/json application/x-web-app-manifest+json

    text/css text/plain text/x-component

    font/opentype application/x-font-ttf application/vnd.ms-fontobject

    image/x-icon;

  gzip_disable "MSIE [1-6]\.(?!.*SV1)";

 

  ##Brotli Compression

  #brotli on;

  #brotli_comp_level 6;

  #brotli_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

 

  ##If you have a lot of static files to serve through Nginx then caching of the files' metadata (not the actual files' contents) can save some latency.

  #open_file_cache max=1000 inactive=20s;

  #open_file_cache_valid 30s;

  #open_file_cache_min_uses 2;

  #open_file_cache_errors on;

 

######################## default ############################

  server {

    listen 80;

    server_name _;

    access_log /data/wwwlogs/access_nginx.log combined;

    root /data/wwwroot/default;

    index index.html index.htm index.php;

    #error_page 404 /404.html;

    #error_page 502 /502.html;

    location /nginx_status {

      stub_status on;

      access_log off;

      allow 127.0.0.1;

      deny all;

    }

    location ~ [^/]\.php(/|$) {

      #fastcgi_pass remote_php_ip:9000;

      fastcgi_pass unix:/dev/shm/php-cgi.sock;

      fastcgi_index index.php;

      include fastcgi.conf;

    }

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {

      expires 30d;

      access_log off;

    }

    location ~ .*\.(js|css)?$ {

      expires 7d;

      access_log off;

    }

    location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {

      deny all;

    }

  }

 

######################## nightingale ############################

   upstream n9e.monapi {

        server 127.0.0.1:5800;

        keepalive 10;

    }

 

    upstream n9e.index {

        server 127.0.0.1:5830;

        keepalive 10;

    }

 

    upstream n9e.transfer {

        server 127.0.0.1:5810;

        keepalive 10;

    }

 

    server {

        listen      52000;

        server_name  _;

        root         /usr/share/nginx/html;

 

        # Load configuration files for the default server block.

 

        location / {

            root /usr/local/n9e/pub;

        }

 

        location /api/portal {

            proxy_pass http://n9e.monapi;

        }

 

        location /api/index {

            proxy_pass http://n9e.index;

        }

 

        location /api/transfer {

            proxy_pass http://n9e.transfer;

        }

    }

########################## vhost #############################

  include vhost/*.conf;

}

 

验证配置是否正确

nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

重新载入nginx

service nginx reload

启动所有组件服务

systemctl enable --now n9e-collector n9e-tsdb n9e-transfer n9e-monapi n9e-judge n9e-index

查看服务状态

cd /usr/local/n9e/

 

#查看有哪些命令

./control -h

Usage: ./control {start|stop|restart|status|build|pack} <module>

 

#查看所有服务状态(一共6个) | 全部启动后就可以进行下一步, 若某一个没启动可到/usr/local/n9e/logs中去查看相关服务的日志

 ./control status

root      18322  0.1  0.1 996288 25792 ?        Sl   May08   2:27 /usr/local/n9e/n9e-index

root      18351  0.1  0.1 1069996 22916 ?       Sl   May08   2:50 /usr/local/n9e/n9e-judge

root      18381  0.2  0.1 1152172 28780 ?       Sl   May08   5:28 /usr/local/n9e/n9e-collector

n9e       66032  0.1  0.1 1408048 28484 ?       Ssl  May08   2:53 /usr/local/n9e/n9e-tsdb

n9e       66116  0.6  0.1 1061668 23156 ?       Ssl  May08  13:21 /usr/local/n9e/n9e-transfer

n9e       66131  0.6  0.1 1070460 29588 ?       Ssl  May08  13:13 /usr/local/n9e/n9e-monapi

 

#启动(单个模块/所有模块 )

./control start collector

./control start all   

访问

使用浏览器打开http://公网ip 即可访问,默认账号 root 密码 root

 

方法二:

准备一台系统为 CentOS7.X 的虚拟机或物理机,并安装完成 mysqlredisnginx软件,简单 yum 安装即可,生产环境可寻求运维或DBA同学帮忙部署。

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y mariadb* redis nginx

安装步骤

1、找个干净的CentOS7,准备好mysql、redis、nginx,简单yum安装一下即可,生产环境mysql建议找dba帮忙来搞

yum install -y mariadb* redis nginx


 

mariadb开机自启

systemctl enable mariadb
 

启动服务mariadb

systemctl start mariadb

查询进程mysql

ps aux |grep mysql


 

数据库初始化

[root@localhost ~]# mysql_secure_installation



 

redis开机自启

systemctl enable redis
 

启动服务redis

systemctl start redis
 

查询进程redis

ps aux |grep redis


 

nginx开机自启

systemctl enable nginx
 

启动服务nginx

systemctl start nginx
 

查询进程nginx

ps aux |grep nginx




2、下载我们编译好的二进制到/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




3、初始化数据库,这里假设使用root账号,密码1234,如果不是这个账号密码,注意修改/home/n9e/etc/mysql.yml

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

修改配置文件mysql.yml中的密码,通过sed或者手动都可以

vi /usr/local/n9e/etc/mysql.yml

 

 

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

cd /home/n9e/etc
grep redis -r .


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

cd /home/n9e
wget http://116.85.64.82/pub.tar.gz
tar zxvf pub.tar.gz

6、覆盖nginx.conf,建议大家还是看一下这个配置,熟悉一下nginx配置,夜莺不同web侧组件就是通过nginx的不同location区分的。覆盖完了配置记得reload一下或者重启nginx

cp etc/nginx.conf /etc/nginx/nginx.conf

重启nginx服务
systemctl restart nginx


7、检查identity.yml,要保证这个shell可以正常获取本机ip,如果实在不能正常获取,自己又不懂shell不会改,在specify字段写死也行

# 用来做心跳,给服务端上报本机ip
ip:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1

# MON、JOB的客户端拿来做本机标识
ident:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1




8、检查/home/n9e/etc/agent.yml的几个shell,挨个检查是否可以跑通,跑不通就改成适合自己的,实在是不会改,直接写死,比如disk部分,写死80Gi直接写:disk: echo 80Gi即可

report:
  # ...
  sn: dmidecode -s system-serial-number | tail -n 1

  fields:
    cpu: cat /proc/cpuinfo | grep processor | wc -l
    mem: cat /proc/meminfo | grep MemTotal | awk '{printf "%dGi", $2/1024/1024}'
    disk: df -m | grep '/dev/' | grep -v '/var/lib' | grep -v tmpfs | awk '{sum += $2};END{printf "%dGi", sum/1024}'



9、启动各个进程,包括mysql、redis、nginx,夜莺的各个组件直接用control脚本启动即可,后续上生产环境,可以用systemd之类的托管

cd /home/n9e
./control start all



查看进程

./control status




10、登录web,账号root,密码root.2020,进来第一步一定要修改密码,如果nginx报权限类的错误,检查selinux是否关闭了,如下命令可关闭

setenforce 0

浏览器访问IP地址

Web

使用浏览器访问 http://ip 即可看到 n9e 的 web 页面,默认账号:root 密码:root.2020 即可登录系统,至此安装完成。 234

Debug

如组件启动失败,建议检查 etc 下配置文件,并查看 logs 文件夹下的日志排错。

 

配置客户端

wget http://116.85.64.82/n9e.tar.gz
tar  -xf   n9e.tar.gz

将 control       n9e-agent     /etc/address.yml     /etc/agent.yml     /etc/identity.yml  打包 拷贝到/home/n9e/
在解压目录下etc/address.yml
修改配置文件vim address.yml将全局172.0.0.1改成master节点的主机的ip

 :%s/172.0.0.1/ip/g

配置开机自启服务

vim     /usr/lib/systemd/system/agent.service
Description=n9e agent
After=network-online.target
Wants=network-online.target

[Service]
# modify when  deploy  in prod env
User=root
Group=root

Type=simple
Environment="GIN_MODE=release"
ExecStart=/home/n9e/n9e-agent
WorkingDirectory=/home/n9e

Restart=always
RestartSec=1
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

重启服务

systemctl restart  agent 
 

开机自启

systemctl enable  agent 
 

检查服务是否正常

systemctl status   agent

 

一、夜莺服务器操作

1、进入夜莺的安装目录

cd /root/nightingale/
mkdir -p tmp/etc    //创建用于打包的临时问文件
cp etc/collector.yml tmp/etc
cp etc/address.yml tmp/etc
cp n9e-collector tmp
cp etc/service/n9e-collector.service tmp/etc/
//选取需要的文件
hostname -I //查看本机IP

2、修改address.yml,collector需要monapi,transfer这两个地址,其余的地方不需要改动

vim etc/address.yml
---
monapi:
  http: 0.0.0.0:5800
  addresses:
    - 127.0.0.1   //修改为夜莺服务器IP

transfer:
  http: 0.0.0.0:5810
  rpc: 0.0.0.0:5811
  addresses:
    - 127.0.0.1   //修改为夜莺服务器IP

tsdb:
  http: 0.0.0.0:5820
  rpc: 0.0.0.0:5821
  addresses:
    - 127.0.0.1

index:
  http: 0.0.0.0:5830
  rpc: 0.0.0.0:5831
  addresses:
    - 127.0.0.1

judge:
  http: 0.0.0.0:5840
  rpc: 0.0.0.0:5841
  addresses:
    - 127.0.0.1

collector:
  http: 0.0.0.0:2058

3、将刚刚拷贝的文件进行打包并作为前端资源进行分发

tar zcvf collector.tar.gz *
mv collector.tar.gz /root/nightingale/pub/  //将打包的文件提供分

二、监控服务器(agent端)
1、创建/home/n9e并进入

cd /home/n9e
#拉取服务器资源并解压在n9e目录下
wget http://Nightingale服务器的IP地址:端口号/collector.tar.gz

2、将agent添加至系统服务中

cp etc/n9e-collector.service /usr/lib/systemd/system

 //cat n9e-collector.service
[root@localhost etc]# cat n9e-collector.service
[Unit]
Description=Nightingale collector
After=network-online.target
Wants=network-online.target

[Service]
# modify when deploy in prod env
User=root         
Group=root

Type=simple
ExecStart=/home/n9e/n9e-collector    
WorkingDirectory=/home/n9e

Restart=always
RestartSec=1
StartLimitInterval=0

[Install]
WantedBy=multi-user.target

 

3、启动、查看、重启Nightingale服务

systemctl  start  n9e-collector
systemctl  enable  n9e-collector
systemctl  status  n9e-collector
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值