openEuler22.03安装zabbix4.0
教程为openEuler22.03安装zabbix4.0,主要原因是openEuler官方和zabbix官方提供的提供的软件源中没有相关软件,因此需要使用zabbix源码进行编译,并且安装过程中会出现一些异常情况,建议先看过整个安装流程再进行
以下教程为openEuler22.03安装zabbix4.0,主要原因是openEuler官方和zabbix官方提供的提供的软件源中没有相关软件,因此需要使用zabbix源码进行编译,并且安装过程中会出现一些异常情况,建议先看过整个安装流程再进行
1. 安装lamp环境
首先需要安装lamp环境作为zabbix运行的基础,即Linux+Apache+Mysql+PHP,这里我直接使用Mariadb来代替Mysql
[root@openEuler ~]# dnf install -y httpd mariadb-server mariadb php php-mysqlnd php-gd libjpeg* php-ldap php-odbc php-pear php-bcmath php-mbstring php-xml php-mhash libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd libsqlite3x-devel libzip-devel gcc automake autoconf libtool make
修改Apache配置文件/etc/httpd/conf/httpd.conf,添加index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
修改PHP配置文件/etc/php.ini,去掉date.timezone前面的;注释,时区为中国时区
date.timezone = Asia/Shanghai
在/var/www/html/目录下创建index.php文件,写入以下内容
<?php
phpinfo();
?>
重启Apache和PHP服务,并设置为开机自启
[root@openEuler ~]# systemctl restart httpd.service
[root@openEuler ~]# systemctl enable httpd.service
[root@openEuler ~]# systemctl daemon-reload
[root@openEuler ~]# systemctl restart php-fpm.service
[root@openEuler ~]# systemctl enable php-fpm.service
在浏览器中访问http://本机IP地址/index.php,如果出现以下界面则证明Apache和PHP环境已经搭建好了
初始化Mariadb数据库,执行以下命令,根据提示自行操作
[root@openEuler ~]# mysql_secure_installation
2. 安装Zabbix
到官网下载zabbix源码包,并解压
[root@openEuler ~]# tar xf zabbix-4.0.44.tar.gz -C /usr/local/
安装zabbix依赖包
[root@openEuler ~]# dnf install net-snmp-devel libevent-devel
创建zabbix用户,这一步一定要执行,不然无法启动zabbix项目
[root@openEuler ~]# useradd -r -M -s /sbin/nologin zabbix
创建zabbix数据库以及用户
[root@openEuler ~]# mysql -uroot -p
MariaDB [(none)]>create database zabbix character set utf8 collate utf8_bin; #创建zabbix数据库
MariaDB [(none)]>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #创建zabbix数据库用户,并设置密码为zabbix
MariaDB [(none)]>flush privileges; # 刷新授权
导入zabbix数据库数据,sql文件路径为/usr/local/zabbix-4.0.44/database/mysql/
[root@openEuler ~]# cd /usr/local/zabbix-4.0.44/database/mysql/
[root@openEuler mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@openEuler mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@openEuler mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
在导入过程中可能会出现以下问题,原因为导入的数据行太长
ERROR 1118 (42000) at line 1278: Row size too large (> 8126)
在Mariadb的配置文件/etc/my.cnf.d/mariadb-server.cnf中的[mysqld]标签下添加以下内容,再重启数据库
innodb_strict_mode=0
[root@openEuler ~]# systemctl restart mariadb.service
编译安装zabbix
[root@openEuler ~]# cd /usr/local/zabbix-4.0.44
[root@openEuler zabbix-4.0.44]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@openEuler zabbix-4.0.44]# make install
配置zabbix服务端,修改配置文件中的数据库密码,并启动zabbix服务
[root@openEuler ~]# vim /usr/local/etc/zabbix_server.conf
DBPassword=zabbix
[root@openEuler ~]# zabbix_server
[root@openEuler ~]# zabbix_agentd
如果执行以下命令后可以看见10051和10050端口号,则证明启动成功
[root@openEuler ~]# ss -anlt
配置zabbix前端界面,修改PHP配置文件,并重启PHP服务
[root@openEuler ~]# vim /etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
[root@openEuler ~]# systemctl restart php-fpm.service
创建zabbix前端界面
[root@openEuler ~]# cd /var/www/html/
[root@openEuler ~]# mkdir zabbix
[root@openEuler ~]# cp /usr/local/zabbix-4.0.44/frontends/php/* /var/www/html/zabbix/
浏览器访问http://本地IP地址/zabbix/setup.php,在界面上根据提示填入相关信息
在最后一步如果出现以下界面,则需要点击界面上的蓝色链接下载配置文件并放到其指定的路径/var/www/html/zabbix/conf/zabbix.conf.php,重新刷新界面
点击Finish后直接跳转到登录界面,默认账号为Admin,默认密码为zabbix
如果在zabbix主页上看到这个以下错误,则需要修改zabbix的php代码/usr/local/zabbix-4.0.44/frontends/php/include/classes/db/DB.php
建议直接搜关键字修改,修改后刷新页面即可
// add output options
$sql_parts = self::applyQueryOutputOptions($table_name, $options, $sql_parts, $table_alias);
// add filter options
$sql_parts = self::applyQueryFilterOptions($table_name, $options, $sql_parts, $table_alias);
// add sort options
$sql_parts = self::applyQuerySortOptions($table_name, $options, $sql_parts, $table_alias);
private static function applyQueryOutputOptions($table_name, array $options, array $sql_parts, $table_alias = null)
private static function applyQueryFilterOptions($table_name, array $options, array $sql_parts, $table_alias = null)
private static function applyQuerySortOptions($table_name, array $options, array $sql_parts, $table_alias = null)
$sql_parts = self::dbFilter($table_name, $options, $sql_parts, $table_alias);
private static function dbFilter($table_name, array $options, array $sql_parts, $table_alias = null)
3. 参考连接
https://www.cnblogs.com/winyhan/p/16648007.html
https://blog.csdn.net/qq_60387497/article/details/121304334
https://blog.csdn.net/weixin_42236288/article/details/105880236
https://blog.csdn.net/qq_29073353/article/details/116592500
https://blog.csdn.net/weixin_40228200/article/details/123716971
更多推荐
所有评论(0)