Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.

README.md

国内用户�以访问gitee镜�仓库: https://gitee.com/mirrors/Nightingale �步�实时,�天一次,�过速度快


�级说明

v3.x的版本和v2.x差别巨大,没办法平滑�移,�以继续使用 v.2.8.0 ,我们之所以决定�级到v3.x,具体原因 请看这里 ,简而言之,我们是希望夜莺��演化为一个�维平�。如果v2.x用�也能满足需求,�以继续用v2.x,毕竟,适�自己的�是最好的

新版效果

用户资�中心:

用户资�中心截图

资产管�中心:

资产管�中心截图

任务执行中心:

任务执行中心截图

监控告警中心:

监控告警中心截图

安装步骤

1�找个干净的CentOS7,准备好mysql�redis�nginx,简�yum安装一下��,生产环境mysql建议找dba帮忙��

yum install -y mariadb* redis nginx

2�下载我们编译好的二进制到/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

3��始化数�库,这里�设使用root账�,密�1234,如果�是这个账�密�,注�修改/home/n9e/etc/mysql.yml

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

4�redis�置修改,默认�置的6379端�,密�为空,如果默认�置�对,�以执行如下命令,看到多个�置文件里有redis相关�置,挨个检查修改下

cd /home/n9e/etc
grep redis -r .

5ã€?下载å‰?端é?™æ€?资æº?文件,放到默认的/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放一�

6�覆盖nginx.conf,建议大家还是看一下这个�置,熟悉一下nginx�置,夜莺��web侧组件就是通过nginx的��location区分的。覆盖完了�置记得reload一下或者��nginx

cp etc/nginx.conf /etc/nginx/nginx.conf

7�检查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

8�检查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}'

9��动�个进程,包括mysql�redis�nginx,夜莺的�个组件直接用control脚本�动��,�续上生产环境,�以用systemd之类的托管

cd /home/n9e
./control start all

10�登录web,账�root,密�root.2020,进�第一步一定�修改密�,如果nginx报��类的错误,检查selinux是�关闭了,如下命令�关闭

setenforce 0

上�安装步骤如果走完了�然没有�建起�,你�能需� 使用Docker安装 或者 查看视频教程

�系统简介

夜莺拆�了四个�系统,分别是:用户资�中心(RDB)�资产管�系统(AMS)�任务执行中心(JOB)�监控告警系统(MON)。下�分别介�一下这几个�系统的设计�衷

用户资�中心

这是一个平�底座,所有的�维系统,都需��赖这个,内置用户����角色�组织�资�的管�。最核心的是一棵组织资�树,树节点的类别和扩展字段�以自定义,组织资�树的层级结构最简�的组织方�是:租户》项目》模�,��一点的组织方�:租户》组织》项目》模�》集群,组织是�以嵌套的。节点上挂两类对象,一个是人员��,一个是资�,资��以是�类资�,除了主机设备�网络设备,也�以是rds实例,redis实例,当然,这就需�rds�redis的管控系统和RDB打通了。滴滴在�一些大的中��商业化解决方案的时候,RDB就是扮演了这么一个底座的角色。

资产管�系统

这里的资产管ç?†ç³»ç»Ÿï¼Œæ˜¯å??硬件资产的管ç?†ï¼Œè¿™ä¸ªç³»ç»Ÿçš„使用者一般是系统部的人,资产管ç?†ç±»äººå‘˜ï¼Œåº”用è¿?维相对ä¸?太关注这个系统。开æº?版本开放了一个主机设备的管ç?†ï¼Œå¤§å®¶å?¯ä»¥äºŒå¼€ï¼Œå¢žåŠ ä¸€äº›ç½‘ç»œè®¾å¤‡ç®¡ç?†ã€?机柜机架ä½?的管ç?†ã€?é…?件耗æ??的管ç?†ç­‰ç­‰ï¼Œæœ‰äº†åº•座,上é?¢å†?长出一些其他系统都相对容易。agent安装之å?Žï¼Œä¼šè‡ªåŠ¨æ³¨å†Œåˆ°èµ„äº§ç®¡ç?†ç³»ç»Ÿï¼Œè‡ªåŠ¨é‡‡é›†åˆ°æœºå™¨çš„snã€?ipã€?cpuã€?memã€?disk等信æ?¯ï¼Œè¿™äº›ä¿¡æ?¯ä¸ºäº†ç?µæ´»æ€§è€ƒè™‘,都是用shell采集的,上文“安装步骤â€?一章有æ??到,其中最é‡?è¦?的是ip,系统中有很多设备,ip是需è¦?全局唯一,其他的snã€?cpuã€?memã€?disk等,如果无法采集æˆ?功,å?¯ä»¥å†™æ­»ï¼Œshell里直接写echo一个å?‡æ•°æ?®å?³å?¯ã€‚

�一�资产,都有一个租户的字段,代表资产归属,需�管�员去分�资产归属(修改资产的所属租户),�个租户�能使用对应的资产,分�完了之�,会出现在用户资�中心的“游离资����中,�个租户就�以把游离资�挂到资产树上去分门别类的管�使用。树节点的创建是在树上�键哈。

任务执行中心

用于批�跑脚本,类似pssh�ansible�saltstack,�过�支�playbook,大�至简,就用脚本撸�,shell�python�perl�ruby,都行,��机器上有解�器。因为是内置到夜莺里的,所以体系化会更好一些,和组织资�树的��是打通的,�以控制��的人对��的机器有��的��,有些人�以用root账�执行,有些人�能用普通账�执行,历�执行记录都�以通过web页�查看审计。任务本身支�一些控制:暂�点�容�度��机超时时间�中途暂��中途�消�中途Kill等。

一些�常�跑的脚本,�以��模�,模�是对脚本的一�管�方�,�续就�以基于模�创建任务,填个机器列表就�以执行。比如安装JDK,调整TCP内核�数,调整ulimit等机器�始化脚本,都�以��模�。

开�版本的任务执行中心,�以看�是一个命令通�,�续�以基于这个命令通�构建一些场景化应用,比如机器�始化平���务�更�布平���置分�系统等。任务执行中心�类�作都有API对外暴露,具体��看:router.go 我�的命令通��周执行任务�超过60万,就是因为�类上层业务都在�赖这个命令通�的能力。

监控告警系统

这�核心逻辑和v2版本差别�大,监控指标分�了设备相关指标和设备无关指标,因为有些自定义监控数�的场景,endpoint�好定义,或者endpoint�常�化,这�就�以使用设备无关指标的方��处�。监控大盘�了优化,引入了更多类型的图表,但夜莺毕竟是个metrics监控系统,处�的是数值型时�数�,所以,最有用的图表其实就是折线图,其他类型图表,看看就好,场景较少。夜莺也�以对接Grafana,有个专门的DataSource�件,Grafana会更炫酷一些,�是,在数��大的时候性能较差。

系统架构

n9e系统架构图

监控部分的架构和之å‰?没有差别,collectoræ?‰è¿›äº†ä¸€äº›å‘½ä»¤æ‰§è¡Œçš„能力,所以改了个å??å­—å?«agent。引入了三个新组件:rdbã€?amsã€?job,rdb是用户资æº?中心,ams是资产管ç?†ç³»ç»Ÿï¼Œjob是任务执行中心。agent除了上报监控数æ?®ç»™transfer,还会上报本机信æ?¯ç»™ams,注册本机信æ?¯åˆ°èµ„产管ç?†ç³»ç»Ÿï¼Œå?¦å¤–就是与job模å?—交互,拉å?–è¦?执行的任务,上报任务执行结果。

文档手册

v3版本�准备�独建站了,文档全部使用github wiki: https://github.com/didi/nightingale/wiki 欢迎大家一起完善。�外当�正在录制一套夜莺的教学视频,�续会放到微信公众�:ops-soldier,欢迎关注获�教程

交�互助

对于夜莺的建议或修改,请直接æ??交issue或pr。如想加入ã€?夜莺网å?‹äº’助交æµ?群】,请加微信好å?‹ï¼šUlricQin,注明加群。

商业版本

夜莺开�版本是从商业版本中摘�的部分功能,商业版本会更强大,滴滴�止有�维平�的商业化解决方案,还有DevOps�IaaS�PaaS�大数��安全等�类商业化产�,如有兴趣欢迎�系我们,微信�:UlricQin,注明商业版。

You can’t perform that action at this time.