官网,它不香么?
不香的话,听听 秦大讲讲
一、特点及适用场景
- 对象 == 机器
- 服务树 灵活定制 对机器的一个分组机制 == 树形管理
- 告警策略直接与服务树节点绑定
告警引擎重构为推拉结合模式 告警引擎judge模块通过心跳机制做到了故障自动摘除
- 客户端中内置了日志匹配指标抽取能力
web页面上支持了日志匹配规则的配置,同时也支持读取目标机器特定目录下的配置文件的方式
让业务指标监控更为易用;更进一步,业务系统自己埋点 插件 日志抽取
- 近期几个小时的数据默认存内存,大幅提升数据查询效率,硬盘存储方式仍然使用rrdtool
支持配置为双写模式提升系统容灾能力,tsdb会把监控数据转发一份给index,在内存里构建索引,便于后续数据检索
- 待补充:
集群维度的监控指标,是需要聚合整个集群的所有模块、机器的指标
接入容器监控
完善更多监控插件
- 多用几台机器提高容灾能力非常有必要
1000台左右设备的场景,最好有至少2台16C/32G/300G SSD以上配置 mysql、redis单独做高可用部署
既然是生产环境,所有模块挂掉都要自动拉起,都要设置开机自启动
二、模块
-
monapi部署打包的时候可以把pub目录一并打包,这是前端资源文件,nginx一般和monapi混部,nginx依赖pub目录。
-
index是索引处理模块,可以部署2~3个实例,会发心跳信息给monapi,不依赖其他组件,可以在monapi部署完成之后来部署
-
index的部署依赖的文件是n9e-index二进制、etc/index.yml、etc/address.yml
-
tsdb的部署依赖的文件是n9e-tsdb二进制、etc/tsdb.yml、etc/address.yml
-
judge的部署依赖的文件是n9e-judge二进制、etc/judge.yml、etc/address.yml
-
transfer的部署依赖的文件是n9e-transfer二进制、etc/transfer.yml、etc/address.yml
-
collector的部署依赖的文件是n9e-collector二进制、etc/collector.yml、etc/address.yml
-
nginx作为反向代理,根据不同location代理了monapi、transfer、index的前端请求
pub目录下的前端资源也是由nginx来serve
三、废话那么多,先告诉我咋用,老铁
- 1、用户管理
- 2、监控对象 - 树节点:
根节点是默认创建好的 一般是单位名字 下面可以是各种组织架构,一般按照不同业务部门
划分 业务部门下面是不同的团队
团队下面是不同的项目
项目下面是不同的模块
模块下面是机房,叶子节点
将不同对象挂载到节点上
- 3、查看全部对象 给对象起别名,其实是要起个有意义的名字,供运维一眼识别
- 4、监控看图 选择节点,展示节点及其子节点下包含的所有机器
- 5、大盘 为了巡检 对比方便
- 6、策略的复杂 其实是自由、灵活 为上层的多姿多彩提供服务
– 每条策略都可以单独配置告警接收人并且可以直接绑定到服务树节点
- 选择服务树后,排除树下特殊节点 或者直接包含某个子节点
- 报警级别的作用是通过多少条渠道发送
- 有tag过滤,这个就很好了 精细化很多,所以想要做细还不累赘,采用tag管理是最好的方式
- 有hook,与自动化打通
- 留观 很贴近生活,有病住院 治疗结束后需要留院观察 一周么有异样的话,办理出院
- 有静默恢复 只发送告警消息,不发送恢复通知
- 生效时间 用周一到周五(永恒)去灵活配置,而不用去修改日期这么沉重的标识
- 7、端口、 进程 监控配置
– 元文件:collector 中提供了portPath 格式看文档吧 很详细
- 页面配置: service = 元文件的内容
- 8、日志监控配置 读取进程打印的日志
– 元文件: log..json
- 页面配置: 看文档
- 9、插件
社区发展很快,现在主要是custom 和exporter plugin,这个很重要
– 配置了plugin的目录,我们只需把插件脚本放到这个目录下
- 可以把采集脚本放到业务程序发布包中 这样它就业务的声明周期一样了 多好
- 插件执行之后要在stdout输出一个json array,collector会截获这个输出,解析为监控指标上报
- 报错消息要打印到stderr,不要打印到stdout
- 10、sdk 直接推到 collector 也行
四、安装
n9e安装脚本:
#!/bin/bash
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=5800/tcp --permanent
yum install -y mariadb mariadb-server redis nginx ack tree curl git
systemctl enable nginx && systemctl start nginx
mysql_secure_installation