Nightingale滴滴夜莺监控系统入门(二)--单机部署测试环境
夜莺系统组成
系统模块
3.3.0版本以后,夜莺支持m3db的后端储存,替换掉了后端的index和tsdb模块,这部分以后再聊
模块名称 | 功能说明 | 占用端口 | 下游模块 | 是否Agent连接使用 |
---|---|---|---|---|
Transfer | Agent上传采集数据经过的网关,主要用于分发数据到后端存储模块tsdb(当) | 8008,8009 | TSDB, Judge,Nginx | 是 |
TSDB | 夜莺的监控数据存储引擎,是利用RDDTool来实现的图形时序数据库,最大的好处是不用担心数据增多爆表,会以.rrd文件格式落盘,降维归档 | 8010,8011 | Index | 否 |
Index | 索引模块,夜莺会将采集的监控指标名,按endpoint维度来进行归类,TSDB会将Transfer上传的指标索引传过来生成index,为保障查询效率,index会存在内存中,然后再定期归档生成索引文件 | 8012,8013 | Nginx | 否 |
Judge | 告警模块,夜莺的告警策略实现模块,触发的告警事件会由Judge传到Redis中给Monapi进行消费,并将记录保存到mysql中提供查询 | 8014,8015 | Monapi | 否 |
RDB | 运维平台用户资源模块,并在3.0版本后集成了原来在Openfalcon需要独立部署的Sender,目前告警通知支持钉钉,企微机器人,企微应用,邮件,短信,电话等,基本上可以满足企业需求 | 8000 | Nginx | 否 |
Job | 任务执行中心,支持按服务树各节点执行各类脚本,并且支持告警回调,可在告警触发后,执行脚本恢复服务;也可以执行一些日常批量脚本执行,还是挺方便的 | 8004,8005 | Nginx | 是 |
AMS | 资产管理模块,目前功能还是比较简单,也是各类endpoint资源的一个管理中心 | 8002 | Nginx | 是 |
Monapi | 这个模块其实是有两个部分功能,一个是集成了原来多个模块的功能,提供接口给js调用,api前缀为/api/portal,数据查询走transfer,干掉了原来的query组件,api前缀为/api/transfer,索引查询的api前缀/api/index,于是,前面搭建nginx,即可通过不同location将请求转发到不同后端;另一个就是从redis读取judge生成的事件,进行二次处理,补充一些元信息,生成告警消息,重新推回redis,用于给rdb模块的sender进行消费 | 8006 | Redis,Nginx,Mysql | 否 |
Agent | 夜莺的客户端,用于部署在各终端进行数据采集传输,除了默认的服务器CPU、内存、磁盘、网络等数据采集外,还支持端口、进程、日志采集,也支持执行自定义脚本来实现数据采集,这部分采集的实现后续会单独一篇来进行说明 | 2008(主要是用于自定义采集上报) | - | - |
夜莺源码编译部署 V 3.3.0版本
如果小伙伴着急体验,社区也有docker-compose.yml文件支持快速部署,过程我就不在这里赘述,生产不建议使用docker;
想要对夜莺各组件模块加深印象的请看下文:
安装中间件Mysql,Redis,Nginx
#yum安装mysql,redis,nginx
[root@n9e nightingale]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@n9e nightingale]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@n9e nightingale]# yum install -y mariadb* redis nginx
[root@n9e nightingale]# systemctl start mariadb
[root@n9e nightingale]# systemctl status mariadb
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since 一 2020-12-14 11:52:26 CST; 6s ago
Process: 39852 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 39739 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 39851 (mysqld_safe)
Tasks: 20
Memory: 106.2M
CGroup: /system.slice/mariadb.service
├─39851 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─40016 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-...
12月 14 11:52:24 n9e mariadb-prepare-db-dir[39739]: MySQL manual for more instructions.
12月 14 11:52:24 n9e mariadb-prepare-db-dir[39739]: Please report any problems at http...a
12月 14 11:52:24 n9e mariadb-prepare-db-dir[39739]: The latest information about Maria....
12月 14 11:52:24 n9e mariadb-prepare-db-dir[39739]: You can find additional informatio...:
12月 14 11:52:24 n9e mariadb-prepare-db-dir[39739]: http://dev.mysql.com
12月 14 11:52:24 n9e mariadb-prep