CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql

夜莺(Nightingale)简介


Nightingale是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的监控需求。

Nightingale在产品完成度、系统高可用、以及用户体验方面,达到了企业级的要求,可满足不同规模用户的场景,小到几台机器,大到数十万都可以完美支撑。兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。

Nightingale是一款分布式高性能的运维监控系统,在 Open-Falcon 的基础上,各核心模块做了大幅优化,引入了滴滴的生产实践经验结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进, 作为集团统一的监控解决方案,支撑了滴滴内部数十亿监控指标,覆盖了从系统、容器、到应用等各层面的监控需求,周活跃用户数千。五年磨一剑,取之开源,回馈开源。夜莺Fork自Open-Falcon,可以把夜莺看做是Open-Falcon的下一代

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_02

特点与优势

1、可伸缩

对于快速发展的业务,一款可伸缩的监控系统是很有必要的。夜莺的每个模块都可以方便的水平扩展

2、高性能

得益于内存TSDB和RRD的归档机制,可以在秒级返回成百上千条监控指标,满足高性能监控大盘的需求

3、高可用

没有严重的单点故障,易于部署和运维。任一机器挂掉对集群无影响

4、可扩展

夜莺的客户端组件与falcon-agent兼容,内置了插件机制和日志监控机制

5、高效

夜莺集成了对象树(大厂标配),支持策略继承、多种告警函数,也支持告警回调用于故障自愈

6、易于部署

所有后端模块全部使用Go语言编写,减少了模块数量,大幅减小部署难度

下面介绍在CentOS7下部署夜莺Nightingale

为了方便起见,这里采用RPM包的方式安装 

本文参考http://n9e.didiyun.com/zh/docs/install/

1、下载夜莺Nightingale的rpm包

下载地址https://dl.cactifans.com/n9e/1.3.0/

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_03

cd /opt
wget https://dl.cactifans.com/n9e/1.3.0/n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz
tar -zxf n9e-1.3.0-438ec4a.el7.x86_64.rpm-bundle.tar.gz

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_04

2、创建n9e用户并安装夜莺所有组件

useradd -U -m n9e
yum install n9e-*.rpm -y

CentOS7下部署滴滴云开源运维监控系统-Nightingale_nginx_05

CentOS7下部署滴滴云开源运维监控系统-Nightingale_nginx_06

3、配置yum源,安装MariaDB和nginx组件

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 mariadb-server nginx -y
systemctl enable mariadb.service
systemctl start mariadb.service
systemctl enable nginx.service
systemctl start nginx.service

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_07

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_08

4、导入n9e数据库表结构

mysqladmin -uroot password "n9epwd123"
mysql -uroot -pn9epwd123 </usr/local/n9e/sql/n9e_hbs.sql
mysql -uroot -pn9epwd123 </usr/local/n9e/sql/n9e_mon.sql
mysql -uroot -pn9epwd123 </usr/local/n9e/sql/n9e_uic.sql

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

create user n9e@localhost identified by 'n9epwd123';
grant all on n9e_hbs.* to n9e@localhost;
grant all on n9e_mon.* to n9e@localhost;
grant all on n9e_uic.* to n9e@localhost;

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_09

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

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_10

5、替换默认nginx配置文件,并重启 nginx 服务

cd /etc/nginx/
mv nginx.conf nginx.conf_bak
cp /usr/local/n9e/etc/nginx.conf /etc/nginx/
systemctl restart nginx

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_11

6、启动所有组件

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

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_12

7、使用夜莺

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

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_13

节点管理(组织架构) 挂载endpoint到对应组织架构节点下 

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_14

CentOS7下部署滴滴云开源运维监控系统-Nightingale_nginx_15

配置监控大盘

CentOS7下部署滴滴云开源运维监控系统-Nightingale_nginx_16

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_17

监控大盘的定制做了大幅易用性改进,支持了图表阈值,支持了图表分类,新增图表和排序管理都是所见即所得的方式,巡检大盘的定制从此不再是困难 

PS:模拟Linux服务器高cpu使用率,来测试告警功能

cat /dev/urandom | gzip -9 | gzip -d | gzip -9 | gzip -d > /dev/null

8、在endpoint安装采集客户端collector

wget https://dl.cactifans.com/n9e/1.3.0/n9e-collector-1.3.0-438ec4a.el7.x86_64.rpm
ll
rpm -ivh n9e-collector-1.3.0-438ec4a.el7.x86_64.rpm
cd /usr/local/n9e/etc/
cp address.yml address.yml_bak
vi address.yml
sed -i 's/127.0.0.1/192.168.31.80/g' address.yml
cat address.yml
systemctl enable --now n9e-collector
netstat -anp | grep 192.168.31.80

CentOS7下部署滴滴云开源运维监控系统-Nightingale_mysql_18

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_19

CentOS7下部署滴滴云开源运维监控系统-Nightingale_sql_20

可以看到endpoint已经上线,可以自动挂载点对应的组织节点下