前言
监控平台的安装教程满大街,但是大部分教程仅仅是安装,完全就只是安装,极少有添加节点,设定表格之类的教程。实际上开头之后,后面怎么用的逐步摸索仍然需要不少时间打磨。希望分享具体场景,减少读者的折腾。
做一系列的文章,分享个人实际运行的一些案例。开坑,这是一个大坑。主要负载生产环境部署于 2015 - 2017年,因此不建议实际部署下方文章内容对应版本,可以作为参考然后部署对应的升级版本。仅作为Infrado维护阶段顺手记录分享供参考,系列结束后提供ESXi 7u3g虚拟机镜像文件,导入后直接运行完整demo供参考学习使用,不得用于线上环境,如出现安全事故一切后果自负。模拟实际线上环境,共45个虚拟机镜像,约200GB,运行总内存需求128GB,最小化需求32GB,演示状态CPU资源需求不大,双核处理器,机械硬盘在演示环境下流畅没有太大的问题。
篇幅应该有四五十篇,这篇文章就作为目录,后续编辑内容,增加对应文章的链接。完全成文之后合成一个PDF供离线参考。已经写了一些了,不算代码本身,过程、思路、想法之类的文字内容估计有15万字左右。作为我拥有人生第一台计算机的第一个10年总结。
场景
系列文章infrado开荒运维原创,禁止转载。如需转发请留言申请。欢迎分享本文地址。由于开发、使用、管理日常、性能、优化、驱动、软件各方面优势考虑,管理员计算机使用Windows系统。
- 传统IDC场景,服务器托管租赁机柜大带宽业务的计费,固定证据等用途。
- IAAS类,例如云服务器提供商。Hyper-V/CentOS KVM/CentOS VMware workstation场景。
- SAAS类,例如提供CDN服务、MineCraft及steam等各类社区服务器运行平台等大量使用openvz或者容器的场景监控管理
- 中小企业IT人员精简。只有1-2个全权限管理员,若干低权限管理员,访客。
运行环境
软件发展更新较快,因此安装类教程仅供参考。大多数案例中的系统即将结束支持。不建议在线上系统使用已结束支持的旧版系统、软件,哪怕是隔离无公网的内网环境。
软件更新周期:选用稳定版,延迟 4 ~ 6 周。紧急补丁、缓解措施在验证后立刻部署并维持关注3个月。
操作系统更新周期:尽量选用 10 年长支持生命周期的产品。在结束支持的 18 个月前开始实验性迁移部分不重要业务,在结束支持的 6 个月前完成全部业务迁移,或者下线无法迁移的服务。
硬件更新周期:长期基础硬件,硬件上线后,空转或者运行非持续性需要数据可靠性保障的业务不低于2000小时,即 3 个月。设备存在影响数据安全、可用性漏洞的情况下,尽快使用修补程序。6个月内下线有隐患的设备。不再提供紧急安全更新支持的硬件以官方公告日期记,在公示期前完成全部关键性负载的迁移,只允许无需数据运行的非关键性应用在无维保,无官方支持的硬件运行。
应用大多数运行在下列操作系统、硬件平台上。下列操作系统基本上于2025年前结束支持,infrado开荒运维提醒,此系列文章仅供思路参考。具体安装等流程仅用于测试、学习环境,尤其是有等保信安需求的环境请慎重。
- H3C、Cisco交换机
- CentOS 6/7
- ESXi 6/7
- Windows Server 2012R2
少量嵌入式、特殊依赖等环境也使用了OpenWRT, Debian 9/10, Ubuntu 16/18/20 LTS等替代。例如某外购信安平台靶机要求部署在Ubuntu 18 LTS,以及小规模使用了Ros部分官方硬件产品。
为考虑信息安全,不使用三方提供的例如CactiEZ等“一键包”性质的产品,线上环境安全。“对得起良心”,实际实施要求不低于三级等保安全强化的要求。软件安装源可信来路,可信权威发行者产品,具有广泛使用量,尽可能避免链式投那个啥。更不会使用一些非开源、来路不明的管理软件操作服务器。管理员计算机安全性是整个线上系统的安全性的基石。
Cacti
- CentOS7安装Cacti(LAMP,手工部署)
- 版权狗之RRDtool编译与使用(静态编译、修改版权信息)右侧字符,Cacti可以关闭
- 增加中文字体。解决Cacti图片中文部分方块问题
- iKuai H3C Cisco SNMP
- 监控数据增加 95带宽 CPU 内存 连接数
- 图形输出 95端口聚合图形 10分钟峰值图形
- 双机共担 采集分离 静态分离
- 权限分离(角色:主运维、副运维、普通网维、访客、网安、展台)
- 周期保存图表静态存储。事件触发保存(断网、L4/7异常流量)
- 微信公众号(对外服务号)企业微信(对内)对接
- Weather Map插件实现大屏。
- SmokePing功能直达集成
- OS Harden。安全加固。
跟SmokePing一样其实都可用rpm源一键安装。为了用上最新版本、安装位置明确,主程序包手动下载,部署专门的virtualhost、msyql数据库。
需要编译RRDtools(想改版权的话)以及Spine(采集性能相对于php cli更好)。可以在相同的操作系统安装编译依赖,例如CI或者专门的容器编译,自行分发编译完成的二进制,手工分发或者制作成rpm源,就可以yum安装了。
SmokePing
- CentOS安装SmokePing(LAMP,手工部署)
- 增加中文字体,RRDtool引入(编译参考前文)
- 分离集群监控对接 双机共担
- 添加监控及树状结构
- 基于延迟变化、超时的告警。自动存储路由追踪结果。traceroute/mtr的ICMP及TCP路由追踪
- OS Harden。安全加固。
Zabbix
- CentOS7安装Zabbix LTS 5.0(6.0无法安装主控、前端)
- 额外中文字体支持(zabbix图形中文乱码)字体转换为ttf
- 思源
- 文泉驿
- 微软雅黑及其他商用字体不建议
- 分离部署结构
- 参与官方翻译的方式/经历分享
- DELL HP服务器监控模板CPU温度、利用率 风扇 存储、网络IO与带宽、电源、环境温度。电源控制,启动项。
- 三方IPMI监控,内容类似。以DELL C6320刀片机代替,非iDrac的IPMI
- CentOS7系统内agent监控添加及常用监控项模板
- H3C Cisco iKuai等SNMP采集及模板。端口带宽 连接数 CPU。
- 控制功能。开关机执行命令等。便捷操作、功能预定义
- 告警、事件、报表的定义方法、本人的一些规划原则。自动化逻辑
- 周期性任务。与ansible的配合。软件包更新维护。
- ESPHome作为对接Bridge,Zabbix负责逻辑、记录。纯离线仍可用的智能家居。
- 美的系。以华凌空调为例。内外机传感器读,温度风速模式读写。替换网络模块法。github有使用原始模块直接局域网直连协议控制的。esp32+网线。
- i2c温湿度 颗粒物 二氧化碳 气压。I2C传感器多传感器。esp32poe,同房间内i2c单总线多地址。
- SSD1306 LCD1602/2004,按钮控制,显示Zabbix部分信息。同上。修改不同屏幕地址电阻。
- PWM RGBWW灯带,普通灯、DIY电启动油机、DIY新风、机械电热水器等控制。同上。TTL16路继电器增加控制能力。
- 松下洗碗机硬改6套台上式。esp32+网线。操作事件记录与提醒。任务下发。常闭电磁阀在有任务时上电,避免洗碗机电磁阀损坏意外。后续考虑对接华凌洗衣机。
- 杂牌智能半自动门锁联网。开门事件记录。控制开门。禁止开门。为镍氢电池周期充电。门开闭事件。门铃按钮事件。
- 485电表电压、总表电能、电网频率记录,各路电流互感器。
- 光线传感器识别过欠压保护器、防浪涌保护器指示灯。红外传感器只触发重置计时器,自动开灯等判断,实现有人一直点亮,而不会灭灯再亮起。
- DIY推拉门、窗帘开合度,锁定状态判断、控制。
- APC小型UPS对接。
- 大华录像机对接。画面插入。触发事件视频前后自动单独保存。
- 联想USB MODEM、ZTE ME3630对接。告警信息发送。
- 首页大屏与展台账号。带宽、uptime、SLA、负载之类的信息。
- 主控、前端、数据库、proxy的安全加固。
- 监测项目的移除与临时停用。导出、备份、迁移。
Zabbix作为长期基建,因此有导出备份迁移之类的过程。Cacti、SmokePing就几个配置文件做好了之后备份下就行了,历史数据什么都是rrd文件,没有什么迁移的必要。
选用一个LTS大版本作为主版本,尽量所有的受控均为相同版本同时迁移版本。只走内网。Cacti配置在MYSql,SmokePing就几个配置文件,小版本升级参考官方说明,一般直接覆盖就行了。配置文件功能可能会多一些新的可配置选项。
OpenFalcon
受限于zabbix的性能,以及考虑过于复杂等原因引入的。监控节点生命周期短、数量众多,不考虑硬件,自定义配置项多之类的应用场景用OpenFalcon。可能有更好优势更多的,但是当时,我选择了这个。
- CentOS7 部署OpenFalcon
- 为Zabbix提供接口供查询,执行功能。
- CentOS等虚拟机、容器镜像内置OpenFalcon适应性改造供自动发现
- 对容器本身的运行状态,性能情况,资源情况的收集。