n9e

nightingale

1、介绍

官网地址:http://n9e.didiyun.com/

参考文档:http://n9e.didiyun.com/docs/

未完待续、、、

2、安装

2.1 源码编译安装

如果您熟悉golang,了解基本的源码编译知识,可以通过这种方式来编译安装,Nightingale所有后端组件都是golang编写,不再有python模块,极致的简单

本节假设您已经了解golang编译基本常识,了解GOPATH环境变量代表的意思,建议使用golang1.12以上的版本。系统依赖mysql、redis,假设您已经安装完毕,并配置了mysql和redis的访问密码。本节所述为单机安装方式。

  1. 下载安装go环境
# 针对最小化centos7系统做一些基础包的安装
yum install  vim iotop bc gcc gcc-c++ glibc glibc-devel pcre \
pcre-devel openssl  openssl-devel zip unzip zlib-devel  net-tools \
lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel \
bc  systemd-devel bash-completion traceroute -y

# 准备go环境
# vim /root/.bash_profile
export GOROOT=/usr/local/go
export GOPATH=/usr/local/gopath # 这两条要加载PATH之前
PATH=$GOROOT/bin:$GOPATH/bin:$PATH:$HOME/bin
# source /root/.bash_profile

# 下载go
wget  "https://studygolang.com/dl/golang/go1.15.1.linux-amd64.tar.gz"
tar xf go1.15.1.linux-amd64.tar.gz -C /usr/local/
# 创建GOPATH路径
mkdir -pv /usr/local/gopath

# 该项目没有使用go module管理,需要放到github.com/didi下编译
mkdir -p $GOPATH/src/github.com/didi
cd $GOPATH/src/github.com/didi

# clone代码并编译打包,pack时会自动build,打包成一个tar.gz
git clone https://github.com.cnpmjs.org/didi/nightingale.git # 如何地址下载太慢进去github上选择加速的连接
cd nightingale && ./control build && ./control pack
  1. 准备数据库
yum install -y mariadb mariadb-server redis
systemctl enable --now mariadb redis

# 初始化mariadb数据库
mysql_secure_installation

# 导入数据到数据库
cd $GOPATH/src/github.com/didi/nightingale
mysql -uroot -p < sql/n9e_hbs.sql
mysql -uroot -p < sql/n9e_mon.sql
mysql -uroot -p < sql/n9e_uic.sql

# 修改mariadb配置文件,只监听127.0.0.1地址
vim /etc/my.cnf
bind-address=127.0.0.1
systemctl restart mariadb

# 配置redis的密码
vim /etc/redis.conf
requirepass#设置密码
systemctl restart redis

# 修改n9e里面mysql配置文件密码
cd $GOPATH/src/github.com/didi/nightingale
vim etc/mysql.yml

# 配置文件在etc目录,着重看一下mysql.yml,修改mysql访问的用户名和密码,另外redis密码默认为空,如果您配置了redis的访问密码,需要对应的修改monapi和judge的配置文件,将redis密码配置好。另外在etc/address.yml下可以看到各个模块监听的端口,如果与本地其他服务端口冲突了,就需要手工修改一下啦
  1. 安装nginx
yum install -y nginx
cd $GOPATH/src/github.com/didi/nightingale
\cp nginx.conf /etc/nginx/nginx.conf

# 修改nginx配置文件中localtion,pub的地址,修改为
root /usr/local/gopath/src/github.com/didi/nightingale/pub;

# 重启nginx
systemctl enable --now nginx
  1. 启动n9e的启动组件
cd /usr/local/gopath/src/github.com/didi/nightingale
./control start all

# 查看各组件启动情况,共6个组件
./control status 

# 查看端口
[root@n9e nightingale]# netstat -tlnp|grep 58
tcp6       0      0 :::5831                 :::*        LISTEN      7273/n9e-index      
tcp6       0      0 :::5800                 :::*        LISTEN      7191/n9e-monapi     
tcp6       0      0 :::2058                 :::*        LISTEN      7344/n9e-collector  
tcp6       0      0 :::5840                 :::*        LISTEN      7308/n9e-judge      
tcp6       0      0 :::5841                 :::*        LISTEN      7308/n9e-judge      
tcp6       0      0 :::5810                 :::*        LISTEN      7203/n9e-transfer   
tcp6       0      0 :::5811                 :::*        LISTEN      7203/n9e-transfer   
tcp6       0      0 :::5820                 :::*        LISTEN      7239/n9e-tsdb       
tcp6       0      0 :::5821                 :::*        LISTEN      7239/n9e-tsdb       
tcp6       0      0 :::5830                 :::*        LISTEN      7273/n9e-index 
  1. 搞个开机启动

既然是生产环境,所有模块挂掉都要自动拉起,都要设置开机自启动,可以使用systemd或者supervisor之类的托管,在etc/service目录下可以找到各模块的service文件示例,供参考

2.2 客户端collector部署

collector是个监控数据采集、转发组件,需要部署在每一台需要监控的机器上,根据用户在monapi和本地文件的配置,对机器的系统、端口、进程和日志信息进行采集并上报给transfer,也接收一些自定义采集器的推送,collector的配置如下:

collector的部署依赖的文件是n9e-collector二进制etc/collector.ymletc/address.yml。把这三个文件扔到目标机器的/home/n9e目录下,然后修改etc/address.yml中的monapi和transfer的addresses字段,配置为真实的server的ip地址即可。因为collector要跟transfer和monapi通信,所以必须知道这俩组件的ip地址。

  1. 在客户端安装一些基础包,不然会报错

image-20200913160840629

yum install -y net-tools
  1. 准备安装包
# 在服务器端进入n9e的主目录下
cd /root/gopath/src/github.com/didi/nightingale

# 先建一个临时文件用来报错collector的文件
mkdir -pv tmp/etc,移动collector二进制到tmp

# 移动collector的etc/address.yml,etc/collector.yml到 tmp/etc,移动collector二进制到tmp
cp etc/collector.yml tmp/etc
cp etc/address.yml tmp/etc
cp etc/service/n9e-collector.service tmp/etc/ #用户客户端system托管

# 编辑配置文件
# vim address.yml
---
monapi:
  http: 0.0.0.0:5800
  addresses:
    - 10.0.0.44

transfer:
  http: 0.0.0.0:5810
  rpc: 0.0.0.0:5811
  addresses:
    - 10.0.0.44

collector:
  http: 0.0.0.0:2058



# 打包安装文件
cd tmp/
tar czf collector.tar.gz *

# 放在pub目录下便于下载
mv collector.tar.gz ../pub/

  1. agent端安装collector
mkdir -p /home/n9e
cd /home/n9e
wget 10.0.0.44/collector.tar.gz
tar xf collector.tar.gz

mv n9e-collector.service /usr/lib/systemd/system/
systemctl enable --now n9e-collector.service
posted @ 2020-11-04 14:05  18cm的烦恼  阅读(565)  评论(0编辑  收藏  举报