使用ARM64架构主机搭建Zabbix运维监视运行环境 郭彬 吴学离 周浩洁Summary:计算机操作系统的确为系统运维人员提供了丰富的指令集,可以监控到系统所有的状态信息;但是这些都是分立的命令,给出的均是命令行输出,不利于分析和发现问题Zabbix是一个基于WEB的分布式监控系统开源软件,可以集中监控各种设备运行状态,保障系统安全运营因此需要为计算机运营系统配置一套Zabbix监控系统运行环境,便于系统运维目前ARM64架构主机已经可以在计算机系统中承担部分轻量级的业务角色,同时具备更低的系统生成和运营成本,因此我们尝试在ARM64主机上搭建Zabbix集中监控系统文中给出系统搭建的过程,明确安装过程中需要注意的配置操作,深化对操作系统、关系数据库等相关软件按的认识;最终我们展示了Zabbix系统发布系统的可视化系统运行数据Key:Linux操作系统;ARM架构;Nginx服务;MySQL数据库;Zabbix集中监控系统:TP311 :A:1009-3044(2020)03-0242-041 概述Zabbix系统由两部分组成,Zabbix_server和Zabbix_agent;Zabbix_server可以通过Agent,SNMP等多种接口方式获取被监控服务器状态;它可以部署在Linux/UNIX等操作系统上;支持Oracle,MySQL和DB2等主流数据库系统;灵活的信息接入方式,支持多种主流操作系统和数据库,兼具易用性和易维护性,这些都是我们选择Zabbix的原因。
配置Zabbix需要事先在相关节点上安装Linux操作系统;运行Zabbix_server的节点需要安装MySQL数据库,毕竟相对于Oracle和DB2而言MySQL是一个轻量级的关系数据库系统,更适用于当前系统应用;Zabbix_server还需要一个web信息发布平台,我们选择Nginx和PHP为其提供web发布功能综上所述,我们要为Zabbix_server搭建一个完整的LMNP(Linux OS,MySQL,Nginx和PHP)运行环境2 系统运行环境描述ARM主机选用天启科技的AI0-3399J高性能主机,主机上搭载RK3399 64位处理器,安装Ubuntu操作系统,通过操作系统命令uname -nmo: lsb release -d[1]可以杏到系统参数如下:解读命令输出信息:主机名firefly,aarch64为ARM64处理器指令集,操作系统版本为Ubuntu16 for ARM;同时我们选取一台X86_64架构主机,通过操作系统命令查看系统参数如下:计划在firefly(ARM64架构)主机上部署Zabbix服务和Agent功能,因此需要在该节点上部署LMNP运行环境;由于本节点具备Agent功能,这样firefly主机提供Zabbix监控服务同时可以监控自身的运行状态;在X86_64主机上仅部署Zabbix的Agent功能,发送主机运行信息到Zabbix服务节点。
3 在系统主机上配置LMNP运行环境Linux操作系统已经在各个节点上安装,略过我们从MySQL数据库安装和配置开始3.1 在ARM64主机上配置MySQL数据库程序官网下载mysql-5.7.26.tar.gz源码包,在预设mysql用户家目录下解压和编译MySQL数据程序;在编译MySQL之前需要准备其它相关软件,如boost_1_59_o和cmake等,具体配置选项和编译参考相关技术网站MySQL程序编译完成之后,配置/etc/my. cnf文件和/etc/init.d/mysqld文件,通过如下命令行程序初始化MySQL数据库./bin/mysqld -initialize -basedir=/media/nvmeOnl/mysql -datadir=/usr/users/mysqldata[2]如上述操作成功完成后在输出信息结尾将给出初始的口令,可以通过mysql -u root -p登陆MySQL数据库,进入mysql程序命令行交互界面,执行SQL命令如下:set password=password(ytdf000)[3];flush privileges;更新MySQL数据库root用戶口令并即时生效,本例设置MySQL数据库root用户口令为ytdf000,实际口令设置复杂度需参考系统需求。
通过操作系统命令systemctl enable mysqld设置MySQL服务自动启动如上述操作完成MySQL数据库软件编译部署和数据库初始化3.2 在MySQL数据库系统中生成Zabbixdb数据库当前步骤需要完成Zabbix应用数据库创建,然后进行Zab-bix应用程序的编译部署在ARM64主机Ubuntu系统中预设zabbix用户,在用户家目录下部署Zabbix软件;官网下载zab-bix-4.0.13rcl.tar.gz代码包并解压,首先执行Zabbix代码包释放路径下的MySQL脚本,创建Zabbix应用数据库,相关脚本如下:sql是数据库记录脚本;在上述脚本路径位置以MySQL的root用户进入mysql交互命令界面,参考如下步骤:1)创建zabbixdb数据库create database zabbixdb character set utf8[3];2)声明zabbixdb数据库下名为zabbix的用户grant all on zabbixdb.半 to zabbix@dbsl identified by'ytdf000[3]本例口令为ytdf000;3)执行Zabbix数据库系统生成脚本通过use zabbixdb;命令切换到zabbix数据库,通过source命令执行Zabbix应用数据库脚本,如下:source schema.sql;sourcelmages.sql;source data.sql;通过终端提示可以验证脚本执行是否正确。
可以通过show tables;等命令检查zabbixdb参数表生成情况3.3 在ARM64主机上配置Nginx信息发布引擎官网下载nginx_1.16.1.orig.tar.gz,在解压释放路径下编译Nginx程序,命令如下:./configure -prefix=/media/nvmeOnl/nginx; make&&makeinstall:编译完成后需要编辑其配置文件/media/nvmeOn l/nginx/conf/nginx.conf以适应Zabbix的php格式信息发布脚本,修改内容如下:①第20行log_format main去掉注釋使生效;②第24行access_log logs/access.log main;去掉注释使生效;③第44行index后添加index.php;④第65-71行取消注释,开放有关location - Vphp$的语句块;在文件安装路径/media/nvmeOnl/nginx/sbin目录下直接执行命令:./nginx—c/media/nvmeOnl/nginx/conf/nginx.conf[4],通过系统命令简单测试,命令和查询结果如下验证Nginx进程已经运行;可以在/lib/systemd/system/目录下编辑nginx.serwce文件,通过systemctl指令配置nglnx自动启动,配置文件内容参考其它Nginx相关资料。
3.4 在ARM64主机上编译安装PHP脚本解释程序官网下载php-7.3.4.tar.gz源码包,并解压编译;编译配置注意结合MySQL并支持php-fpm,具体编译配置选项参考相关技术论坛;编译配置监测过程中可能会提示缺少部分相关程序,可以通过Ubuntu系统的apt-get install联网安装或者通过官网下载代码包编译运行配置脚本之后通过make&&make in-stall命令编译安装;编译安装完成后将代码路径下的init.d.php-fpm文件拷贝到/etc/init.d路径下,如命令:cp./s api/fpm/init.d.php-fpm /etc/init. d/php-fpm通过systemctl enable php-fpm配置服务自动启动,通过systemctl start php-fpm运行php进程管理软件;通过命令netstat -antp I grep php-fpm检查配置运行情况显示说明php-fpm运行且监听于9000端口;在Zabbix配置过程中需要修改php.im部分选项参数,如下表上述操作基本完成LNMP的配置4 在ARM64主机上编译安装Zabbix软件并配置Zab-bix-server和Zabbix-agent运行4.1 Zabbix程序的编译生成在ARM64主机Ubuntu系统中预设zabbix用户,在用户家目录下部署Zabbix软件;官网下载zabbix-4.0.13rcl.tar.gz代码包并解压,在ARM64上Zabbix程序编译需要明确使用zabbix-server和zabbix-agent功能,结合MySQL,net-snmp等系统功能,详细配置参考Zabbix官网和相关论坛;配置完成之后生成编译脚本文件,通过make&&make install编译并且安装。
编译安装之后首先编辑$HOME/etc下的zabbix_agentd.conf和zabbix_ server.conf文件4.2 Zabbix编辑Zabbix_server运行配置文件1)在zbbbix用户家目录下设置tmp目录,设置项LogFile=/media/nvmeOnl/z abbix/tmp/zabbix_server.log保存程序运行日志信息;文中设置PID文件生成路径PidFile=/media/nvmeOnl/zab-bix/tmp/zabbix_server.pid;设置Socket文件生成路径SocketDir=/media/nvmeOnl/zabbix/tmp;2)已经在MySQL配置过程中于/etc[hosts设置dbsl网络主机名;设置DBHost=dbsl;设置Zabbix数据库名DBName=zab-bixdb,设置访问Zabbixdb数据库用户DBUser=zabbix,访问口令设置DBPassword=ytdf000;3)设置子配置文件路径项Include=/media/nvmeOnl/z abbix/etc/zabbix_server.conf.d/*.conf4.3 编辑Zabbix_agent运行配置文件1)设置日志文件保存路径项为LogFile=/media/nvmeOnl/zabbix/tmp/zabbix_agentd.log;设置PID文件生成路径为PidFile=/media/nvmeOnl/zabbix/tmp/z abbix_agentd.pid;2)设置提供Zabbix服务节点Server=172.20.82.41,当前为本机IP;若设置Agent为主动工作方式,ServerActive=172.20.82.41,当前对应本机IP;设置Agent主机Hostname=fire-fly,为本机节点名称;与Zabbix信息发布系统配置的host主机列表一致,见下文。
3)设置子配置文件路径项为Include=/media/nvmeOnl/zab-bix/etc/zabbix_agentd.conf. d/*.conf;4.4 配置Zabbix程序自动运行完成进程配置文件修改后配置Zabbix服务和Agent进程自动运行,切换到非HO ME/zabbix-4.0.1 3rc l/misc/init.d/deb。