1.环境描述本文使用本地VM虚拟机进行部署和测试。OS:CentOS7.8(3.10.0-1160.15.2.el7.x86_64)IP:192.168.168.103虚拟机配置:2核CPU,4G内存注:①系统为最小安装,系统初始化、内核和安全优化;②已启用Iptables防火墙,并在Iptables防火墙的相关规则中添加相应的服务(如Nginx)端口。软件说明:5.2版本安装需要PHP7.2.x以上版本,不支持PHP8.0。官方说明:https://www.zabbix.com/documentation/current/manual/installation/requirements#required_software目录说明:本文省略了NGINX/PHP/MySQL/JDK的安装过程。NGINX/PHP/MySQL的安装过程可以参考我之前的文章。CentOS7下编译安装Nginx-v1.20.0:https://www.toutiao.com/i6961593096903705092/MySQL系列-二进制包安装(v5.7.34):https://www.toutiao.com/i6955761888323961381/CentOS7编译安装安装php-7.4.16:https://www.toutiao.com/i6947278581865366052/特别说明:从源码编译安装PHP7.4.20时,不要在后面加上"--enable-gd-jis-conv"配置配置。经过我自己的测试,这个参数在zabbix服务WEB界面设置为中文时影响乱码。即使按照本文最后一步的设置,也无法正常显示中文。2.配置MySQL##创建Zabbix数据库CREATEDATABASEdb_zabbixdefaultcharsetutf8collat??eutf8_bin;##创建Zabbix用户并授权;3.安装Zabbix1。安装依赖rpm-ivhhttp://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmyum-yinstallgccgcc-c++unixODBC-devel\mysql-devellibcurllibcurl-devel\libeventlibevent-develfpingcurl-devel\libxml2libxml2-develnet-snmp-develnet-snmp2。创建zabbix用户组和用户组addzabbixuseradd-gzabbix-s/sbin/nologin-c"ZabbixMonitoringSystem"zabbix3。下载源码cd/data/toolswgethttps://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.6.tar.gz4。解压编译安装tarxfzabbix-5.2.6.tar.gzcdzabbix-5.2.6./configure--prefix=/usr/local/zabbix--enable-server--enable-agent\--with-mysql--with-net-snmp--with-libcurl--with-libxml2\--with-unixodbc--enable-java--enable-ipv6make&&makeinstall##更改Zabbix安装目录和文件属主组chown-Rzabbix.zabbix/usr/local/咋bbix/##参数说明:--prefix=/usr/local/zabbix:指定zabbix安装路径--enable-server:启动server端--enable-agent:启动agent端--with-mysql:编译并连接mysql依赖包--with-net-snmp:启动snmp相关,用于snmp监控设备--with-libcurl:启动curl相关--with-libxml2:启动xml相关--with-unixodbc:启动odbc相关监控数据库--enable-java:启动java-agent监控java类,需要安装JAVA环境--enable-ipv6:启用IPv65。修改配置文件##创建日志目录mkdir-p/data/logs/zabbix##修改目录权限chown-Rzabbix.zabbix/data/logs/zabbix##修改服务器配置文件,配置数据库连接等cd/usr/local/zabbix/etc/cpzabbix_server.confzabbix_server.conf.bakvizabbix_server.conf//找到对应的属性项如下修改LogFile=/data/logs/zabbix/zabbix_server.logPidFile=/data/logs/zabbix/zabbix_server.pidDBHost=127.0.0.1DBName=db_zabbixDBUser=zabbixDBPassword=123456DBSocket=/usr/local/mysql/mysql.sockDBPort=3306AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts##修改代理配置文件cpzabbix_agentd.confzabbix_agentd.conf.bakvizabbix_agentd。conf//找到下面对应的属性项修改PidFile=/data/logs/zabbix/zabbix_agentd.pidLogFile=/data/logs/zabbix/zabbix_agentd.logServer=127.0.0.1ServerActive=127.0.0.1Hostname=ZabbixServerInclude=/usr/local/zabbix/etc/zabbix_agentd.conf.d/6。配置zabbix服务管理脚本##复制管理脚本cd/data/tools/zabbix-5.2.6/cpmisc/init.d/tru64/{zabbix_agentd,zabbix_server}/etc/init.d/##添加脚本执行权限chmodo+x/etc/init.d/zabbix_*##修改启动脚本中的PID文件路径sed-i"s#PIDFILE=/tmp/zabbix_server.pid#PIDFILE=/data/logs/zabbix/zabbix_server.pid#g"/etc/init.d/zabbix_serversed-i"s#PIDFILE=/tmp/zabbix_agentd.pid#PIDFILE=/data/logs/zabbix/zabbix_agentd.pid#g"/etc/init.d/zabbix_agentd##建立一个软链接ln-s/usr/local/zabbix/sbin/zabbix_*/usr/local/sbin/ln-s/usr/local/zabbix/bin/zabbix_*/usr/local/bin/注意:如果没有创建软链接,需要修改脚本中的DAEMON路径指向zabbix安装目录路径7、导入数据##登录数据库mysql-uroot-p##登录数据库mysql-uroot-p##切换到zabbix库usedb_zabbix;##导入数据(表结构、图片相关数据、模板相关数据)source/data/tools/zabbix-5.2.6/database/mysql/schema.sql;source/data/tools/zabbix-5.2.6/database/mysql/images.sql;source/data/tools/zabbix-5.2.6/database/mysql/data.sql;8.启动zabbix-server和zabbix-agent/etc/init.d/zabbix_serverstart/etc/init.d/zabbix_agentdstart4.配置WEB站点1.复制前端文件mkdir-p/data/www/zabbixcd/data/tools/zabbix-5.2.6/cp-aui/*/data/www/zabbix/chown-Rnginx.nginx/data/www/zabbix2.配置PHP①修改php-fpm.conf配置文件vi/usr/local/php/etc/php-fpm.conf//以下参数仅供参考[global]pid=/usr/local/php/var/run/php-fpm.piderror_log=/usr/local/php/var/log/php-fpm.loglog_level=notice[www]listen=127.0.0.1::9000listen.backlog=-1listen.allowed_clients=127.0.0.1listen.owner=nginxlisten.group=nginxlisten.mode=0666user=nginxgroup=nginxpm=动态pm。max_children=10pm.start_servers=5pm.min_spare_servers=5pm.max_spare_servers=10request_terminate_timeout=300request_slowlog_timeout=15slowlog=var/log/slow.log注:用户组和用户nginx是NGINX服务和PHP服务的运行用户,在安装服务前创建②修改php.ini配置文件sed-i's/post_max_size=8M/post_max_size=20M/g'/etc/php.inised-i's/upload_max_filesize=2M/upload_max_filesize=20M/g'/etc/php.inised-i's/;date.timezone=/date.timezone=Asia\/Shanghai/g'/etc/php.inised-i's/short_open_tag=Off/short_open_tag=On/g'/etc/php.inised-i's/max_execution_time=30/max_execution_time=300/g'/etc/php.inised-i's/max_input_time=60/max_input_time=300/g'/etc/php.inised-i's/disable_functions=.*/disable_functions=passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server/g'/etc/php.ini③启动php-fpmsystemctlstartphp-fpm.service3。添加zabbix虚拟主机配置文件vi/usr/local/nginx/conf/vhost/zabbix.conf//添加以下内容仅供参考server{listen80;server_name192.168.168.103;root/data/www/zabbix;index.phpindex.htmlindex.htm;access_log/data/logs/nginx/zabbix.logjson;location~\.php(.*)${fastcgi_pass127.0.0.1:9000;fastcgi_indexindex.php;fastcgi_paramSCRIPT_FILENAME/data/www/zabbix/$fastcgi_script_name;includefastcgi_params;}location~.*\.(gif|jpg|jpeg|png|bmp|swf)${expires15d;}location~.*\.(js|css)?${expires1d;}}##启动Nginxsystemctlstartnginx.service五、部署WEB站点1、进入欢迎界面,在浏览器中打开:http://IP/setup.php本文中IP为192.168.168.103,选择默认语言,可以选择“Chinese(zh_CN)”,这里保持默认即可。安装完成后,调整为中文界面,点击“下一步”开始安装。2.检查先决条件确保满足所有软件先决条件。如下图,下拉滚动条,查看所有软件是否“OK”。如果没有错误,可以点击“下一步”(“警告”可以忽略或先修复)。具体可以参考官方说明:https://www.zabbix.com/documentation/current/manual/installation/frontend3。配置数据库连接数据库类型:选择数据库类型,本文使用MySQL,保持默认即可。数据库主机:选择数据库的主机,可以指定主机名或IP地址,根据实际情况填写。本文中web服务器和数据库部署在同一个节点上,授权用户只能访问本地127.0.0.1,所以将此项的值改为127.0.0.1。数据库端口:指定数据库的连接端口。默认值为0,表示使用默认值。以MySQL为例,默认值自然是3306。Databasename:指定数据库的名称,默认值为zabbix,根据实际情况填写。本文中的数据库名称为db_zabbix。User:指定连接数据库的用户名,默认为zabbix,根据实际情况填写。本文用户名为zabbix。密码:指定连接数据库的密码。强烈建议不要使用官方默认密码,而是自定义一个安全性比较高的密码。在生产环境中,建议使用密码生成器等工具定期更改用户名和密码。4.ZabbixserverdetailsHost:指定zabbixserver的主机名或IP地址。默认值为本地主机。由于webserver和zabbixserver部署在一起,localhost的默认值可以不用修改。端口:指定zabbixserver的端口,默认值为10051,这个是zabbixserver进程的默认端口,使用默认值即可。Name:这个Name其实就是给zabbixserver起个名字。当然也可以留空。默认值应与主机相同。本文自定义一个名称,命名为“测试监视器”。5.GUI用户界面设置Defaulttimezone:默认时区,根据实际情况选择,本文保持默认。默认主题:默认主题风格,根据实际情况选择,本文保持默认。6.安装前总结检查配置参数。“下一步”如果一切正常,否则“返回”更改配置参数。7、完成安装,如下图所示,前端安装成功。安装成功后会创建一个“/data/www/zabbix/conf/zabbix.conf.php”配置文件,里面记录了刚刚安装zabbix前端时定义的配置信息。有兴趣的可以登录zabbixwebserver查看。8、登录zabbix前端页面如下图所示。默认用户名:admin,密码:zabbix9.zabbix前端首页是登录后默认的首页界面,可以点击右上角的“EditDashboard”对首页进行编辑,调整dashboard的显示位置并删除不需要显示的仪表板。六、简单配置1、修改WEB管理员默认密码##在WEB页面左侧栏,点击“使用设置”##点击“修改密码”修改密码##输入两次新密码,并点击“更新”按钮更新密码##用户信息更新成功,如下图。2、修改界面语言为中文##在WEB页面左侧边栏,点击“使用设置”→“用户”→“语言”,在下拉列表中选择“中文(zh_CN)”##点击“Update”按钮更新设置##更新成功后页面是中文的##但是查看监控数据页面时出现乱码(方框),如下图##原因问题是zabbix默认的字体文件不支持中文,所以汉字显示就变成了乱码。查看zabbixweb目录下include/defines.inc.php文件中字体的定义:##可以看到zabbix使用的是自己定义的字体文件,而不是linux系统字体。路径位于web目录下的assets/fonts目录下。##解决方法:我们可以从windows的字体目录或者网上获取加粗字体文件simhei.ttf。Windows下的字体文件位于:C:\Windows\Fonts。将字体文件通过sftp上传到服务器上zabbix的web目录下的assets/fonts目录下。然后把加粗的字体文件链接到zabbix的默认字体:DejaVuSans.ttfcd/data/www/zabbix/assets/fontsmvDejaVuSans.ttfDejaVuSans.ttf.bakln-sfsimhei.ttfDejaVuSans.ttf##刷新页面后,中文字体显示通常情况下
