服务器数量一多,靠人工登录查看CPU、内存、磁盘就变得不现实了,这时候一套集中式监控平台就成了刚需。Checkmk正是为此而生,它提供了主机监控、服务状态检查、告警通知、性能图表等完整能力,而且Raw版本完全免费开源,部署门槛也不高。本文以Ubuntu 22.04为例,手把手演示从下载安装包到添加第一台被监控主机的全过程。

一、安装前的系统准备
在动手安装之前,先确认系统环境是否满足要求。Checkmk官方支持Ubuntu 20.04和22.04 LTS版本,建议使用全新安装的系统,避免与其他Web服务产生端口冲突。Checkmk默认会占用80和443端口,如果机器上已经跑了Nginx或Apache,需要提前规划端口。
首先更新软件源并安装基础依赖:
sudo apt update && sudo apt upgrade -y sudo apt install -y wget gnupg
接着确认主机名设置正确。Checkmk对主机名比较敏感,建议配置一个规范的主机名:
sudo hostnamectl set-hostname checkmk-server
同时编辑/etc/hosts文件,把主机名映射到本机IP,否则后续创建站点时可能出现解析告警。内存方面,监控500台以下主机建议至少4GB内存加20GB磁盘空间,规模更大时按比例增加。
二、下载并安装Checkmk软件包
Checkmk采用deb包分发,需要先去官方网站下载对应Ubuntu版本的安装包。以2.1.0版本为例,文件名类似check-mk-raw-2.1.0p1_22.04.amd64.deb。可以使用wget直接下载:
wget https://download.checkmk.com/checkmk/2.1.0p1/check-mk-raw-2.1.0p1_22.04.amd64.deb
下载完成后执行安装命令。安装过程会自动处理依赖关系,包括Python、Apache、PostgreSQL等组件,耐心等待即可:
sudo apt install -y ./check-mk-raw-2.1.0p1_22.04.amd64.deb
安装完成后可以运行omd versions命令验证,能正常输出版本号说明安装成功。如果安装过程中提示缺少依赖,多半是软件源没有更新到最新状态,重新执行apt update再试一次通常就能解决。
三、创建监控站点
Checkmk的架构是以站点为单位运行的,每个站点拥有独立的进程、端口和配置目录。创建站点的命令如下:
sudo omd create monitoring
这里的monitoring是站点名,可以自定义。命令执行后会自动创建名为monitoring的系统用户,并输出一个随机生成的管理员初始密码,务必记录下来。首次登录后可以在右上角的用户菜单里修改密码。
站点创建完成后,启动它:
sudo omd start monitoring
所有服务正常启动后,用浏览器访问 http://服务器IP/monitoring,用户名cmkadmin,密码就是刚才记录的那串字符。常用站点管理命令汇总如下:
omd status monitoring:查看站点各服务运行状态omd stop monitoring:停止站点omd su monitoring:切换到站点用户环境omd rm monitoring:删除站点(谨慎操作)
如果80端口被其他程序占用,可以使用omd config monitoring进入交互式配置界面,修改Apache监听端口,或者干脆停掉冲突的服务。
四、添加被监控主机
Checkmk通过在被监控端安装代理程序来采集数据,Linux系统使用check-mk-agent。在监控服务器的Web界面中,进入Setup菜单,选择Hosts,点击Add host,填写主机名和IP地址。
关键一步是下载代理程序并分发到目标主机。在Setup界面左侧找到Agents菜单,可以选择直接下载deb包,也可以复制wget命令到目标主机上执行:
# 在被监控的Ubuntu主机上执行 wget http://监控服务器IP/monitoring/check_mk/agents/check-mk-agent_2.1.0p1-1_all.deb sudo apt install -y ./check-mk-agent_2.1.0p1-1_all.deb
代理程序依赖xinetd来监听6556端口,安装完代理后确认服务正常运行:
sudo systemctl status xinetd # 本地测试代理是否响应 telnet 127.0.0.1 6556
如果能输出一大段文本数据,说明代理工作正常。回到Web界面,在主机编辑页面点击Save并执行服务发现,Checkmk会自动识别出CPU负载、内存、磁盘、网络接口等监控项,确认激活后这些服务就进入正式监控状态。
五、告警配置与常见问题
监控的价值在于出问题能及时通知。进入Setup菜单的Users页面,编辑cmkadmin用户,在Notification rules相关设置中绑定邮箱。之后在Setup的Notification rules里创建规则,指定触发条件和通知方式,邮件通知需要确保服务器上已配置好邮件转发功能。
部署过程中有几个高频问题值得注意。第一是防火墙,被监控端的6556端口必须对监控服务器开放,否则服务发现会失败,执行sudo ufw allow from 监控服务器IP to any port 6556即可。第二是主机名解析,如果被监控端反向解析不正常,可以在主机设置里手动指定IP地址并勾选相关选项绕过。第三是时间同步,监控端与被监控端时间不一致会导致图表数据错乱,建议所有机器统一配置NTP服务。
完成这些配置后,一套可用的监控体系就搭建起来了。Checkmk还支持SNMP监控网络设备、Docker容器监控、集群分布式监控等进阶功能,等基础环境稳定运行后可以逐步探索。日常运维中记得关注站点的备份,使用omd backup monitoring命令定期导出站点配置,避免单点故障导致监控数据丢失。