Zabbix的安装部署,说难也难,部署说简单也简单。教程难的安装是你一旦生产环境跑起来,那些报警策略、部署模板调优、教程数据库瓶颈,安装每一个都能让你加班到深夜。部署简单的教程是,从零到能监控一台Linux服务器,安装其实半小时就够了。部署
我见过太多人一上来就折腾源码编译,教程结果依赖包装到怀疑人生。安装别这样干。部署用官方仓库的教程rpm包,干净利落。以CentOS 7为例,先装repo:
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all 然后一条命令装服务端加前端加agent:
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get -y 数据库这块,Zabbix官方推荐MySQL。我习惯用MariaDB,CentOS 7自带的就是它。启动数据库,创建库和用户,注意字符集必须设utf8,否则后面web界面中文全是乱码,别问我怎么知道的。
mysql -uroot -p CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; quit 导入初始表结构。这一步很多人卡住,因为文件路径容易记混。在CentOS 7上,schema文件在/usr/share/doc/zabbix-server-mysql-5.0.x/目录下。注意,导入顺序不能乱:schema.sql → images.sql → data.sql。用zcat直接解压导入:
zcat /usr/share/doc/zabbix-server-mysql-5.0.x/create.sql.gz | mysql -uzabbix -p zabbix 接下来改server配置。编辑/etc/zabbix/zabbix_server.conf,找到DBPassword那行,去掉注释填上密码。同时建议把CacheSize调大点,默认8M太抠门,生产环境至少给128M。改完启动:
systemctl start zabbix-server systemctl enable zabbix-server PHP配置也是个坑。Zabbix前端对PHP时区要求严格,编辑/etc/httpd/conf.d/zabbix.conf,找到php_value date.timezone,改成Asia/Shanghai。然后重启httpd和php-fpm。如果你用的是Apache+mod_php,重启httpd就行。
打开浏览器,输入http://你的IP/zabbix。第一次访问会进安装向导。一路下一步,到数据库连接那步填你刚才设置的账号密码。有个细节:向导会检查PHP前置条件,如果某项不通过,别慌,大多是时区或内存限制问题,按提示改/etc/php.ini里的memory_limit和date.timezone。
安装完默认账号是Admin,密码zabbix。进去第一件事,改密码。然后去“配置” → “主机” → 找到“Zabbix server”那台,把状态改成“已监控”。等个30秒,回到“监测” → “最新数据”,如果能看到系统CPU、内存、磁盘的数值,恭喜你,通了。
说个我踩过的坑:agent端配置文件里Server和ServerActive两个参数,前者是允许谁查询你,后者是主动上报给谁。很多新手只填了Server,结果主动监控项全没数据。两个都填上Zabbix server的IP。
最后啰嗦一句,Zabbix 5.0以后默认用前端是Nginx+PHP-FPM的也不少,但CentOS 7官方repo给的还是Apache方案。你要是非用Nginx,记得自己装php-fpm并配置socket通信,别偷懒用默认的127.0.0.1:9000,除非你确认php-fpm监听的就是这个端口。
监控这事,部署只是开始。后面调告警阈值、画聚合图形、搞自动发现,每一个都是坑。但先把这套跑起来,至少半夜服务器挂了你能第一时间知道,而不是等用户投诉才发现。
