写点什么

nightingale 安装详解

用户头像
曾祥斌
关注
发布于: 2020 年 07 月 03 日

nightingale是didi开源监控平台

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

源码地址:https://github.com/didi/nightingale

B站视频地址:https://search.bilibili.com/all?keyword=%E5%BC%80%E6%BA%90%E8%BF%90%E7%BB%B4%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9FNightingale-%E7%B3%BB%E5%88%97

open-falcon插件地址:http://book.open-falcon.com/zh_0_2/usage/



第一步:nightingale源码安装参考视频

https://s3-gz01.didistatic.com/n9e-pub/video/n9e-install-src.mp4

1.安装go

2.配置环境变量 go gopath

3.git clone n9e源码到gopath下 git clone https://github.com/didi/nightingale.git

4.编译源码 ./control build

4.安装 mariadb redis

5.mysql_secure_installation初始化密码

6.修改n9e链接数据库密码

7.导入数据库 mysql -uroot -p < n9e_mon.sql 三个数据库文件



第二步:Mysql监控配置(mymon https://github.com/open-falcon/mymon

1.源码下载make

# Build
go get -u github.com/open-falcon/mymon
cd $GOPATH/src/github.com/open-falcon/mymon
make

2.配置参数(endpoint需要指定)

[default]
# 工作目录
basedir = .
# 日志目录,默认日志文件为myMon.log,旧版本有log_file项,如果同时设置了,会优先采用log_file
log_dir = .
# 配置报警忽略的metric项,依然会上报改metric,但原有的该metric项的报警策略将不会生效
ignore_file = ./falconignore
# 保存快照(process, innodb status)的目录
snapshot_dir = ./snapshot
# 保存快照的时间(日)
snapshot_day = 10
# 日志级别[RFC5424]
# 0 Emergency
# 1 Alert
# 2 Critical
# 3 Error
# 4 Warning
# 5 Notice
# 6 Informational
# 7 Debug
log_level = 5
# falcon agent连接地址
falcon_client=http://127.0.0.1:2058/api/collector/push
# 自定义endpoint
endpoint=172.16.49.40
[mysql]
# 数据库用户名
user=root
# 您的数据库密码
password=1qaz!QAZ
# 数据库连接地址
host=127.0.0.1
# 数据库端口
port=3306



3.加入Linux定时器执行计划(需要指定root用户)

# Add to crontab
echo '* * * * * root cd /root/gopath/src/github.com/open-falcon/mymon && ./mymon -c /root/gopath/src/github.com/open-falcon/mymon/etc/myMon.cfg' > /etc/cron.d/mymon



第三步 JMX监控配置



https://github.com/toomanyopenfiles/jmxmon

需要配置endpoint



第四步Nginx监控配置

falcon-ngx_metic https://github.com/GuyCheung/falcon-ngx_metric

可能出现路径错误,需要修改lua_package_path为绝对路径

Nginx 安装lua最难处理,参考下面步骤(直接上openresty就没这么多事了)

(Nginx版本nginx-1.19.0 http://nginx.org/download/nginx-1.19.0.tar.gz

https://www.cnblogs.com/felixzh/p/8709201.html



1.下载安装LuaJIT 2.1(2.0或者2.1都是支持的,官方推荐2.1):http://luajit.org/download.html

cd /usr/local/src
wget http://luajit.org/download/LuaJIT-2.1.0-beta2.tar.gz
tar zxf LuaJIT-2.1.0-beta2.tar.gz
cd LuaJIT-2.1.0-beta2
make PREFIX=/usr/local/luajit
make install PREFIX=/usr/local/luajit



2.下载ngx_devel_kit(NDK)模块 :https://github.com/simpl/ngx_devel_kit/tags,不需要安装

cd /usr/local/src
wget https://github.com/simpl/ngx_devel_kit/archive/v0.2.19.tar.gz
tar -xzvf v0.2.19.tar.gz

3.下载最新的lua-nginx-module 模块 :https://github.com/openresty/lua-nginx-module/tags,不需要安装(这里使用版本是v0.10.9rc7.tar.gz,原文中版本阿里云上测试不可用)

cd /usr/local/src
wget https://github.com/openresty/lua-nginx-module/archive/v0.10.9rc7.tar.gz
tar -xzvf v0.10.9rc7.tar.gz

4.nginx -V查看已经编译的配置

nginx -V

5.进入之前安装nginx的解压目录,重新编译安装(在nginx -V得到的配置下,加入ngx_devel_kit-0.2.19和ua-nginx-module-0.10.9rc7的目录),最终的配置如下:

设置环境变量

export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.1

6.Nginx重新部署,增加如下传参(我的nginx -v 为空,直接输入下方编译参数)

./configure --prefix=/usr/local/nginx --with-ld-opt="-Wl,-rpath,/usr/local/luajit/lib" --add-module=/root/ngx_devel_kit-0.2.19 --add-module=/root/lua-nginx-module-0.10.9rc7 --with-http_stub_status_module

7.编译安装Nginx

make -j2
make install

8.配置 falcon-ngx_metic

9.加入Linux定时器执行计划

echo '* * * * * root python nginx_collect.py --format=falcon --service=172.16.49.40 --falcon-addr=http://127.0.0.1:2058/api/collector/push' > /etc/cron.d/nginx_collect



用户头像

曾祥斌

关注

还未添加个人签名 2020.02.19 加入

还未添加个人简介

评论

发布
暂无评论
nightingale安装详解