夜莺(Nightingale)简介
Nightingale是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的监控需求。
Nightingale在产品完成度、系统高可用、以及用户体验方面,达到了企业级的要求,可满足不同规模用户的场景,小到几台机器,大到数十万都可以完美支撑。兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。
Nightingale是一款分布式高性能的运维监控系统,在 Open-Falcon 的基础上,各核心模块做了大幅优化,引入了滴滴的生产实践经验结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进, 作为集团统一的监控解决方案,支撑了滴滴内部数十亿监控指标,覆盖了从系统、容器、到应用等各层面的监控需求,周活跃用户数千。五年磨一剑,取之开源,回馈开源。夜莺Fork自Open-Falcon,可以把夜莺看做是Open-Falcon的下一代
特点与优势
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/
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
2、创建n9e用户并安装夜莺所有组件
useradd -U -m n9e yum install n9e-*.rpm -y
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
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;
并修改组件/usr/local/n9e/etc/mysql.yml 文件里的数据库配置信息
5、替换默认nginx配置文件,并重启 nginx 服务
cd /etc/nginx/ mv nginx.conf nginx.conf_bak cp /usr/local/n9e/etc/nginx.conf /etc/nginx/ systemctl restart nginx
6、启动所有组件
systemctl enable --now n9e-collector n9e-tsdb n9e-transfer n9e-monapi n9e-judge n9e-index
7、使用夜莺
使用浏览器打开http://ip 即可访问,默认账号 root 密码 root
节点管理(组织架构) 挂载endpoint到对应组织架构节点下
配置监控大盘
监控大盘的定制做了大幅易用性改进,支持了图表阈值,支持了图表分类,新增图表和排序管理都是所见即所得的方式,巡检大盘的定制从此不再是困难
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
可以看到endpoint已经上线,可以自动挂载点对应的组织节点下