n9e
nightingale
1、介绍
参考文档:http://n9e.didiyun.com/docs/
未完待续、、、
2、安装
2.1 源码编译安装
如果您熟悉golang,了解基本的源码编译知识,可以通过这种方式来编译安装,Nightingale所有后端组件都是golang编写,不再有python模块,极致的简单
本节假设您已经了解golang编译基本常识,了解GOPATH环境变量代表的意思,建议使用golang1.12以上的版本。系统依赖mysql、redis,假设您已经安装完毕,并配置了mysql和redis的访问密码。本节所述为单机安装方式。
- 下载安装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
- 准备数据库
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下可以看到各个模块监听的端口,如果与本地其他服务端口冲突了,就需要手工修改一下啦
- 安装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
- 启动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
- 搞个开机启动
既然是生产环境,所有模块挂掉都要自动拉起,都要设置开机自启动,可以使用systemd或者supervisor之类的托管,在etc/service目录下可以找到各模块的service文件示例,供参考
2.2 客户端collector部署
collector是个监控数据采集、转发组件,需要部署在每一台需要监控的机器上,根据用户在monapi和本地文件的配置,对机器的系统、端口、进程和日志信息进行采集并上报给transfer,也接收一些自定义采集器的推送,collector的配置如下:
collector的部署依赖的文件是n9e-collector二进制、etc/collector.yml、etc/address.yml。把这三个文件扔到目标机器的/home/n9e目录下,然后修改etc/address.yml中的monapi和transfer的addresses字段,配置为真实的server的ip地址即可。因为collector要跟transfer和monapi通信,所以必须知道这俩组件的ip地址。
- 在客户端安装一些基础包,不然会报错
yum install -y net-tools
- 准备安装包
# 在服务器端进入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/
- 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
本文来自博客园,作者:18cm的烦恼,转载请注明原文链接:https://www.cnblogs.com/jubian520/p/13925628.html