29.滴滴夜莺平台的搭建

本文详细介绍了滴滴开源的运维监控系统——滴滴夜莺(Nightingale)的搭建过程,包括从准备环境、安装依赖、配置数据库、启动服务到访问Web界面的每一步。夜莺现已成为一个全面的运维平台,包含了用户资源中心、资产管理系统、任务执行中心和监控告警系统等多个子系统,提供了一站式的运维解决方案。
摘要由CSDN通过智能技术生成

滴滴夜莺的搭建

滴滴夜莺开源平台网址:http://n9e.didiyun.com/docs/

1.简述

滴滴夜莺(Nightingale)是一款经过大规模生产环境验证的、分布式高性能的运维监控系统。基于Open-Falcon,结合滴滴内部的最佳实践,在性能、可维护性、易用性方面做了大量的改进,支撑了滴滴内部数十亿监控指标,覆盖了从系统、容器、到应用等各层面的监控需求。

夜莺于2020年3月底开源至今,GitHub Star已突破2000,并且于9月底发布了最新的3.0版本。本次更新夜莺被拆成了四个子系统,分别是:

1. 用户资源中心(RDB)
   平台底座,所有的运维系统,都需要依赖这个,内置用户、权限、角色、组织、资源的管理。类似于CMDB。
2. 资产管理系统(AMS)
   偏硬件资产的管理,开源版本开放了一个主机设备的管理。agent安装之后,会自动注册到资产管理系统,自动采集到机器的sn、ip、cpu、mem、disk等信息。
3. 任务执行中心(JOB)
   用于批量跑脚本,类似pssh、ansible、saltstack,不过不支持playbook。任务本身支持一些控制:暂停点、容忍度、单机超时时间、中途暂停、中途取消、中途Kill等。
4. 监控告警系统(MON)

从新拆分的系统来看,夜莺已经不简单是一个监控告警系统,而是逐步演变成一个运维平台,这一点也已经在“滴滴夜莺后续发展计划,新功能通告”中确定。

话不多少,我们来体验下吧。

2.安装

#1.准备nginx源
cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

#2.准备好mysql、redis、nginx
yum install -y mariadb* redis nginx

#3.下载我们编译好的二进制到/home/n9e目录,如果要更换目录,要注意修改nginx.conf,建议先用这个目录
mkdir -p /home/n9e
cd /home/n9e
wget http://116.85.64.82/n9e.tar.gz
tar zxvf n9e.tar.gz

#4.初始化数据库,这里假设使用root账号,密码1234,如果不是这个账号密码,注意修改/home/n9e/etc/mysql.yml
#先启动数据库
systemctl start mariadb
systemctl enable mariadb
我们需要给root用户设置一个初始密码1234。
mysql -u root
use mysql;
update user set password=password("1234")where user='root';
 flush privileges;
exit;
测试:
mysql -u root -p

cd /home/n9e/sql
mysql -uroot -p1234 < n9e_ams.sql
mysql -uroot -p1234 < n9e_hbs.sql
mysql -uroot -p1234 < n9e_job.sql
mysql -uroot -p1234 < n9e_mon.sql
mysql -uroot -p1234 < n9e_rdb.sql

#5.redis配置修改,默认配置的6379端口,密码为空,如果默认配置不对,可以执行如下命令,看到多个配置文件里有redis相关配置,挨个检查修改下
cd /home/n9e/etc
grep redis -r .
./judge.yml:redis:
./monapi.yml:# read alert from redis
./monapi.yml:redis:
./rdb.yml:redis:

#6.下载前端静态资源文件,放到默认的/home/n9e目录下,如果要改目录,需要修改后面提到的nginx.conf
cd /home/n9e
wget http://116.85.64.82/pub.tar.gz
tar zxvf pub.tar.gz

前端的源码单独拆了一个repo,地址是: https://github.com/n9e/fe 没有和nightingale放一块

#7.覆盖nginx.conf,建议大家还是看一下这个配置,熟悉一下nginx配置,夜莺不同web侧组件就是通过nginx的不同location区分的。覆盖完了配置记得reload一下或者重启nginx
#先备份一下nginx原始配置
 cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
 cp etc/nginx.conf /etc/nginx/nginx.conf
 systemctl restart nginx

#注意:8、9部分只是在你的机器中执行看能不能获取一些值,不用在什么配置中加
#8.检查identity.yml,要保证这个shell可以正常获取本机ip,如果实在不能正常获取,自己又不懂shell不会改,在specify字段写死也行
 
 #用来做心跳,给服务端上报本机ip
ip:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1

 # MON、JOB的客户端拿来做本机标识
ident:
  specify: ""
  shell: ifconfig `route|grep '^default'|awk '{print $NF}'`|grep inet|awk '{print $2}'|head -n 1
  
#9.检查agent.yml的几个shell,挨个检查是否可以跑通,跑不通就改成适合自己的,实在是不会改,直接写死,比如disk部分,写死80Gi直接写:disk: echo 80Gi即可
  report:
  # ...
  sn: dmidecode -s system-serial-number | tail -n 1

  fields:
    cpu: cat /proc/cpuinfo | grep processor | wc -l
    mem: cat /proc/meminfo | grep MemTotal | awk '{printf "%dGi", $2/1024/1024}'
    disk: df -m | grep '/dev/' | grep -v '/var/lib' | grep -v tmpfs | awk '{sum += $2};END{printf "%dGi", sum/1024}'
    
#10.启动各个进程,包括mysql、redis、nginx,夜莺的各个组件直接用control脚本启动即可,后续上生产环境,可以用systemd之类的托管
cd /home/n9e
./control start all
rdb started
job started
ams started
monapi started
tsdb started
index started
transfer started
judge started
agent started

#11.登录web,账号root,密码root.2020,进来第一步一定要修改密码,如果nginx报权限类的错误,检查selinux是否关闭了,如下命令可关闭
setenforce 0

3.访问

在这里插入图片描述

用户名:root 密码:root.2020

在这里插入图片描述
如上图,搭建滴滴夜莺平台就搭建完成,里面的功能,我们一起来研究吧!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值