前言

监控平台的安装教程满大街,但是大部分教程仅仅是安装,完全就只是安装,极少有添加节点,设定表格之类的教程。实际上开头之后,后面怎么用的逐步摸索仍然需要不少时间打磨。希望分享具体场景,减少读者的折腾。

做一系列的文章,分享个人实际运行的一些案例。开坑,这是一个大坑。主要负载生产环境部署于 2015 - 2017年,因此不建议实际部署下方文章内容对应版本,可以作为参考然后部署对应的升级版本。仅作为Infrado维护阶段顺手记录分享供参考,系列结束后提供ESXi 7u3g虚拟机镜像文件,导入后直接运行完整demo供参考学习使用,不得用于线上环境,如出现安全事故一切后果自负。模拟实际线上环境,共45个虚拟机镜像,约200GB,运行总内存需求128GB,最小化需求32GB,演示状态CPU资源需求不大,双核处理器,机械硬盘在演示环境下流畅没有太大的问题。

篇幅应该有四五十篇,这篇文章就作为目录,后续编辑内容,增加对应文章的链接。完全成文之后合成一个PDF供离线参考。已经写了一些了,不算代码本身,过程、思路、想法之类的文字内容估计有15万字左右。作为我拥有人生第一台计算机的第一个10年总结。


场景

系列文章infrado开荒运维原创,禁止转载。如需转发请留言申请。欢迎分享本文地址。由于开发、使用、管理日常、性能、优化、驱动、软件各方面优势考虑,管理员计算机使用Windows系统。

  1. 传统IDC场景,服务器托管租赁机柜大带宽业务的计费,固定证据等用途。
  2. IAAS类,例如云服务器提供商。Hyper-V/CentOS KVM/CentOS VMware workstation场景。
  3. SAAS类,例如提供CDN服务、MineCraft及steam等各类社区服务器运行平台等大量使用openvz或者容器的场景监控管理
  4. 中小企业IT人员精简。只有1-2个全权限管理员,若干低权限管理员,访客。


运行环境

软件发展更新较快,因此安装类教程仅供参考。大多数案例中的系统即将结束支持。不建议在线上系统使用已结束支持的旧版系统、软件,哪怕是隔离无公网的内网环境。

软件更新周期:选用稳定版,延迟 4 ~ 6 周。紧急补丁、缓解措施在验证后立刻部署并维持关注3个月。

操作系统更新周期:尽量选用 10 年长支持生命周期的产品。在结束支持的 18 个月前开始实验性迁移部分不重要业务,在结束支持的 6 个月前完成全部业务迁移,或者下线无法迁移的服务。

硬件更新周期:长期基础硬件,硬件上线后,空转或者运行非持续性需要数据可靠性保障的业务不低于2000小时,即 3 个月。设备存在影响数据安全、可用性漏洞的情况下,尽快使用修补程序。6个月内下线有隐患的设备。不再提供紧急安全更新支持的硬件以官方公告日期记,在公示期前完成全部关键性负载的迁移,只允许无需数据运行的非关键性应用在无维保,无官方支持的硬件运行。

应用大多数运行在下列操作系统、硬件平台上。下列操作系统基本上于2025年前结束支持,infrado开荒运维提醒,此系列文章仅供思路参考。具体安装等流程仅用于测试、学习环境,尤其是有等保信安需求的环境请慎重。

  1. H3C、Cisco交换机
  2. CentOS 6/7
  3. ESXi 6/7
  4. Windows Server 2012R2

少量嵌入式、特殊依赖等环境也使用了OpenWRT, Debian 9/10, Ubuntu 16/18/20 LTS等替代。例如某外购信安平台靶机要求部署在Ubuntu 18 LTS,以及小规模使用了Ros部分官方硬件产品。

为考虑信息安全,不使用三方提供的例如CactiEZ等“一键包”性质的产品,线上环境安全。“对得起良心”,实际实施要求不低于三级等保安全强化的要求。软件安装源可信来路,可信权威发行者产品,具有广泛使用量,尽可能避免链式投那个啥。更不会使用一些非开源、来路不明的管理软件操作服务器。管理员计算机安全性是整个线上系统的安全性的基石。


Cacti

  1. CentOS7安装Cacti(LAMP,手工部署)
  2. 版权狗之RRDtool编译与使用(静态编译、修改版权信息)右侧字符,Cacti可以关闭
  3. 增加中文字体。解决Cacti图片中文部分方块问题
  4. iKuai H3C Cisco SNMP
  1. 监控数据增加 95带宽 CPU 内存 连接数
  2. 图形输出 95端口聚合图形 10分钟峰值图形
  1. 双机共担 采集分离 静态分离
  2. 权限分离(角色:主运维、副运维、普通网维、访客、网安、展台)
  3. 周期保存图表静态存储。事件触发保存(断网、L4/7异常流量)
  4. 微信公众号(对外服务号)企业微信(对内)对接
  5. Weather Map插件实现大屏。
  6. SmokePing功能直达集成
  7. OS Harden。安全加固。

跟SmokePing一样其实都可用rpm源一键安装。为了用上最新版本、安装位置明确,主程序包手动下载,部署专门的virtualhost、msyql数据库。

需要编译RRDtools(想改版权的话)以及Spine(采集性能相对于php cli更好)。可以在相同的操作系统安装编译依赖,例如CI或者专门的容器编译,自行分发编译完成的二进制,手工分发或者制作成rpm源,就可以yum安装了。


SmokePing

  1. CentOS安装SmokePing(LAMP,手工部署)
  2. 增加中文字体,RRDtool引入(编译参考前文)
  3. 分离集群监控对接 双机共担
  4. 添加监控及树状结构
  5. 基于延迟变化、超时的告警。自动存储路由追踪结果。traceroute/mtr的ICMP及TCP路由追踪
  6. OS Harden。安全加固。


Zabbix

  1. CentOS7安装Zabbix LTS 5.0(6.0无法安装主控、前端)
  2. 额外中文字体支持(zabbix图形中文乱码)字体转换为ttf
  1. 思源
  2. 文泉驿
  3. 微软雅黑及其他商用字体不建议
  1. 分离部署结构
  2. 参与官方翻译的方式/经历分享
  3. DELL HP服务器监控模板CPU温度、利用率 风扇 存储、网络IO与带宽、电源、环境温度。电源控制,启动项。
  4. 三方IPMI监控,内容类似。以DELL C6320刀片机代替,非iDrac的IPMI
  5. CentOS7系统内agent监控添加及常用监控项模板
  6. H3C Cisco iKuai等SNMP采集及模板。端口带宽 连接数 CPU。
  7. 控制功能。开关机执行命令等。便捷操作、功能预定义
  8. 告警、事件、报表的定义方法、本人的一些规划原则。自动化逻辑
  9. 周期性任务。与ansible的配合。软件包更新维护。
  10. ESPHome作为对接Bridge,Zabbix负责逻辑、记录。纯离线仍可用的智能家居。
  1. 美的系。以华凌空调为例。内外机传感器读,温度风速模式读写。替换网络模块法。github有使用原始模块直接局域网直连协议控制的。esp32+网线。
  2. i2c温湿度 颗粒物 二氧化碳 气压。I2C传感器多传感器。esp32poe,同房间内i2c单总线多地址。
  3. SSD1306 LCD1602/2004,按钮控制,显示Zabbix部分信息。同上。修改不同屏幕地址电阻。
  4. PWM RGBWW灯带,普通灯、DIY电启动油机、DIY新风、机械电热水器等控制。同上。TTL16路继电器增加控制能力。
  5. 松下洗碗机硬改6套台上式。esp32+网线。操作事件记录与提醒。任务下发。常闭电磁阀在有任务时上电,避免洗碗机电磁阀损坏意外。后续考虑对接华凌洗衣机。
  6. 杂牌智能半自动门锁联网。开门事件记录。控制开门。禁止开门。为镍氢电池周期充电。门开闭事件。门铃按钮事件。
  7. 485电表电压、总表电能、电网频率记录,各路电流互感器。
  8. 光线传感器识别过欠压保护器、防浪涌保护器指示灯。红外传感器只触发重置计时器,自动开灯等判断,实现有人一直点亮,而不会灭灯再亮起。
  9. DIY推拉门、窗帘开合度,锁定状态判断、控制。
  1. APC小型UPS对接。
  2. 大华录像机对接。画面插入。触发事件视频前后自动单独保存。
  3. 联想USB MODEM、ZTE ME3630对接。告警信息发送。
  4. 首页大屏与展台账号。带宽、uptime、SLA、负载之类的信息。
  5. 主控、前端、数据库、proxy的安全加固。
  6. 监测项目的移除与临时停用。导出、备份、迁移。

Zabbix作为长期基建,因此有导出备份迁移之类的过程。Cacti、SmokePing就几个配置文件做好了之后备份下就行了,历史数据什么都是rrd文件,没有什么迁移的必要。

选用一个LTS大版本作为主版本,尽量所有的受控均为相同版本同时迁移版本。只走内网。Cacti配置在MYSql,SmokePing就几个配置文件,小版本升级参考官方说明,一般直接覆盖就行了。配置文件功能可能会多一些新的可配置选项。


OpenFalcon

受限于zabbix的性能,以及考虑过于复杂等原因引入的。监控节点生命周期短、数量众多,不考虑硬件,自定义配置项多之类的应用场景用OpenFalcon。可能有更好优势更多的,但是当时,我选择了这个。

  1. CentOS7 部署OpenFalcon
  2. 为Zabbix提供接口供查询,执行功能。
  3. CentOS等虚拟机、容器镜像内置OpenFalcon适应性改造供自动发现
  4. 对容器本身的运行状态,性能情况,资源情况的收集。