nightngale,即夜莺,是由滴滴开源的监控系统,github地址为https://github.com/ccfos/nightingale。
nightngale有一套很方便的监控告警系统可供使用,本身也有多项监控指标分析视图。本篇以下内容主要介绍夜莺系统的搭建、指标收集和监控告警等内容。
一、部署
1、服务端部署
服务端部署为了方便,采用docker-compose的方式一键部署,这样比较方便重启等。
- 从远程服务端拉取项目,方便后面的部署打包
mkdir /home/nightingale-master cd /home/nightingale-master ##远程地址为:https://github.com/didi/nightingale.git git clone https://github.com/didi/nightingale.git
- 安装docker-compose,如果存在略过
curl -L https://github.com/docker/compose/releases/download/1.25.0-rc4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose # 添加读写权限 chmod +x /usr/local/bin/docker-compose
- 执行docker-compose
cd /home/nightingale-master/nightingale/dockerfiles docker-compose up -d;
这里服务端就搭建完成。 初始账号密码为 root root.2020
有几点注意:
1.需要开放端口,比较多,具体需要查看dockerfiles/docker-compose.yaml,nginx 默认是80端口,需要修改的话,执行
docker exec -it nginx-n9e /bin/sh # 进入容器 vi /etc/nginx/nginx.conf # 修改默认端口
同时修改docker-compose.yaml 的中nginx-n9e对应的端口。
2.重启n9e的时候会重置数据库,所以在重启该服务的时候,需要进入容器修改 entrpoint.sh,注释到数据库重置的那几句脚本。
3.docker-compose.yaml中数据库没有映射到宿主机,需要自己修改 。
2、客户端部署
使用方式如下安装
- 修改主机名,如已修改,跳过
hostnamectl set-hostname 主机名
- 下载n9e安装包
链接:https://pan.baidu.com/s/16u6u6TH51CH8_UM0OpDl4Q
提取码:4eZW
- 上传至客户端服务器并解压
mkdir /home/n9e cd /home/n9e tar -xzvf n9e.tar.gz chmod 777 /home/n9e/n9e-agentx
- 修改解压文件/n9e/etc/address.yml之中,夜莺服务端地址
- 设置开机启动
mv /home/n9e/etc/agent.service /usr/lib/systemd/system/ systemctl daemon-reload systemctl start agent systemctl status agent
至此,客户端就算安装完成。可以登录夜莺管理web页面,将游离客户端挂载至组织资源树。
二、业务指标监控方案
根据自身业务监控需求,自定义指标收集方案,定期上传指标数据至服务端。
业务指标通过http接口方式上报数据。
private void pushDataToFalcon(String metric, int count, Integer step){ MetricVo vo = new MetricVo(); vo.setCounterType("GAUGE"); // 策略名称 vo.setMetric(metric); // 监控间隔 秒 vo.setStep(step); // 客户端ip vo.setEndpoint(endPoint); vo.setTimestamp(System.currentTimeMillis()/1000); vo.setValue((double) count); HttpHeaders header = new HttpHeaders(); header.setContentType(MediaType.APPLICATION_JSON); // 服务端秘钥,可在夜莺web页面查看 header.add("X-User-Token",token); HttpEntity<List<MetricVo>> entity = new HttpEntity<>(Lists.newArrayList(vo), header); try { String ret = httpTemplate.postForObject(agentUrl, entity, String.class); FalconResult result = JSONObject.parseObject(ret, FalconResult.class); if (!Constants.SUCCESS.equals(result.getDat())){ log.error("指标{}推送数据失败,参数{},返回信息{}", metric, vo, ret); } } catch (Exception e) { log.error("指标{}推送接口访问失败", metric, e); } }
告警策略在夜莺web监控告警系统模块创建
数据推送,满足监控指标时,即可推送告警信息至报警接收人。
信息接收可使用企业微信
标签:compose,home,vo,监控,nightngale,nightingale,docker,n9e,搭建 From: https://www.cnblogs.com/sunshine-ground-poems/p/17147365.html