目录
背景:
问题1描述:
原因:
解决:
问题2描述:
原因:
解决:
问题3描述:
原因:
解决:
问题4描述:
原因:
解决:
问题5描述:
原因:
解决:
问题6描述:
原因:
解决:
问题7描述:
原因:
解决:
问题8描述:
原因:
解决:
问题9描述:
原因:
解决:
参考:
写在前面:不建议使用官网教程在Centos6 安装Zabbix4.2
在以下环境安装 zabbix 4.2(参考官网教程)
OS:CentOS release 6.10 (Final) ;
httpd :Server version: Apache/2.2.15 (Unix)
PHP:5.3 (由于不支持zabbix4.2 ,将PHP5.4以上版本)
启动 zabbix-server zabbix-agent httpd 三个服务后 访问 http://ip:port/zabbix/
页面提示如下错误 (500)
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.15 (CentOS) Server at 172.16.18.36 Port 8080
error_log日志显示:
[crit] [client 172.16.10.193] configuration error: couldn't perform authentication. AuthType not set!: /zabbix/
Apache httpd 服务器不同版本的权限设置问题
打开配置文件,
# vim /etc/zabbix/zabbix_server.conf
注释掉第三行(以标红)
7
8 Options FollowSymLinks
9 AllowOverride None
10 #Require all granted
因为该环境的httpd版本是 2.2 小于2.4 ,大于等于2.4的版本使用上述语句。
重启服务器 :
#service httpd restart
Forbidden
You don't have permission to access /zabbix/ on this server.
Apache/2.2.15 (CentOS) Server at 172.16.18.36 Port 8080
[error] [client 172.16.10.193] Directory index forbidden by Options directive: /usr/share/zabbix/
/etc/httpd/conf.d 目录下缺少 php.conf 文件
在/etc/httpd/conf.d 目录下 添加
php.conf 文件,内容为
#
# Cause the PHP interpreter to handle files with a .php extension.
#
SetHandler application/x-httpd-php
#
# Allow php to handle Multiviews
#
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following lines to allow PHP to pretty-print .phps
# files as PHP source code:
#
#
# SetHandler application/x-httpd-php-source
#
#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
打开网页无法正常显示
httpd日志显示:Parse error: syntax error, unexpected '[' **** in /usr/share/zabbix/index.php on line 29
php版不支持,Zabbix 3.0 以上的版本需要 PHP 5.4.0以上版本支持
PHP | 5.4.0 or later |
卸载原装php安装新的php,具体安装方法参考下面的问题3参考。
运行#service httpd restart
出现:
Starting httpd: Syntax error on line 31 of /etc/httpd/conf.d/php.conf:
Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration
[FAILED]
php 版本不匹配
修改 /etc/httpd/conf/httpd.conf 文件 ;
添加 LoadModule php5_module modules/libphp5.so
运行网页无法打开,
打开httpd日志 (# tail /var/log/httpd/error_log) 显示如下错误
PHP Fatal error: Call to undefined function bccomp() in /usr/share/zabbix/include/classes/setup/CFrontendSetup.php on line 122
php 不支持,需安装更新包
安装 php-bcmath 、 php-mbstring, 重启 httpd 服务
# yum -y install php-bcmath
# yum -y install php-mbstring
# service httpd restart
Not Found
The requested URL /zabbix/ was not found on this server.
Apache/2.2.15 (CentOS) Server at 172.16.18.36 Port 80
[error] [client 172.16.10.193] File does not exist: /var/www/html/zabbix
/etc/httpd/conf.d 目录下缺少 zabbix.conf (zabbix的配置)文件
从/usr/share/doc/zabbix-web-4.2.1/ 目标下复制 httpd22-example.conf (因为环境的httpd的版本是2.2 ,如果是2.4 复制httpd24-example.conf)文件到 /etc/httpd/conf.d ;
修改 时区:php_value date.timezone Asia/ShangHai
重启httpd服务;
#cp /usr/share/doc/zabbix-web-4.2.1/httpd22-example.conf /etc/httpd/conf.d/
#vim /etc/httpd/conf.d/httpd22-example.conf
#service httpd restart
如果没有找到httpd22-example.conf文件,在/etc/httpd/conf.d/ 目录建立 zabbix.conf (适用于httpd2.2版本) 文件 内容如下:
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/ShangHai
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
Order deny,allow
Deny from all
这里附录httpd 2.4需要的zabbix.conf 文件内容。
#
# Zabbix monitoring system php web frontend
#
Alias /zabbix /usr/share/zabbix
Options FollowSymLinks
AllowOverride None
Require all granted
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/ShangHai
Require all denied
Require all denied
Require all denied
Require all denied
打开网页无法正常显示,乱码如下:
[T_ZBX_STR, O_NO, null, null, 'isset({enter}) && {enter} != "'.ZBX_GUEST_USER.'"', _('Username')], 'password' => [T_ZBX_STR, O_OPT, null, null, 'isset({enter}) && {enter} != "'.ZBX_GUEST_USER.'"'], 'sessionid' => [T_ZBX_STR, O_OPT, null, null, null], 'reconnect' => [T_ZBX_INT, O_OPT, P_SYS, null, null], 'enter' => [T_ZBX_STR, O_OPT, P_SYS, null, null], 'autologin' => [T_ZBX_INT, O_OPT, null, null, null], 'request' => [T_ZBX_STR, O_OPT, null, null, null], 'form' => [T_ZBX_STR, O_OPT, null, null, null] ]; check_fields($fields); if (hasRequest('reconnect') && CWebUser::isLoggedIn()) { CWebUser::logout(); } $config = select_config(); $autologin = hasRequest('enter') ? getRequest('autologin', 0) : getRequest('autologin', 1); $request = getRequest('request', ''); if ($request) { $test_request = []; preg_match('/^\/?(?[a-z0-9\_\.]+\.php)(?\?.*)?$/i', $request, $test_request); $request = (array_key_exists('filename', $test_request) && file_exists('./'.$test_request['filename'])) ? $test_request['filename'].(array_key_exists('request', $test_request) ? $test_request['request'] : '') : ''; } if (!hasRequest('form') && $config['http_auth_enabled'] == ZBX_AUTH_HTTP_ENABLED && $config['http_login_form'] == ZBX_AUTH_FORM_HTTP && !hasRequest('enter')) { redirect('index_http.php'); exit; } // login via form if (hasRequest('enter') && CWebUser::login(getRequest('name', ZBX_GUEST_USER), getRequest('password', ''))) { if (CWebUser::$data['autologin'] != $autologin) { API::User()->update([ 'userid' => CWebUser::$data['userid'], 'autologin' => $autologin ]); } $redirect = array_filter([CWebUser::isGuest() ? '' : $request, CWebUser::$data['url'], ZBX_DEFAULT_URL]); redirect(reset($redirect)); exit; } if (CWebUser::isLoggedIn() && !CWebUser::isGuest()) { redirect(CWebUser::$data['url'] ? CWebUser::$data['url'] : ZBX_DEFAULT_URL); } $messages = clear_messages(); (new CView('general.login', [ 'http_login_url' => $config['http_auth_enabled'] == ZBX_AUTH_HTTP_ENABLED ? (new CUrl('index_http.php'))->setArgument('request', getRequest('request')) : '', 'guest_login_url' => CWebUser::isGuestAllowed() ? (new CUrl())->setArgument('enter', ZBX_GUEST_USER) : '', 'autologin' => $autologin == 1, 'error' => hasRequest('enter') && $messages ? array_pop($messages) : null ])) ->disableJsLoader() ->render();
查看/etc/httpd/conf.d 目录下的 php.conf 文件 的如下两项是否被注释掉,如果没有则添加
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
将/etc/httpd/conf.d 目录下的 php.conf 文件 的 最后两行的注释去掉,如果没有则添加如下两项。
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
也可能是缺少php 组件,安装 php-bcmath 、 php-mbstring
打开网页,设置过程显示:
Check of pre-requisites
php 组件不支持需安装
安装 php-xmlwriter
#yum install php-xmlwriter
配置zabbix Web界面的Mysql端口和密码,页面出现如下错误提示:
Error connecting to database: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
安装的Mysql 是8.0以上版本,使用的新的鉴权插件‘caching_sha2_password’与zabbix的mysql客户端程序的鉴权插件不一样。
使用 mysql_native_password
鉴权插件,用root用户登录mysql,执行如下命令:
ALTER USER 'zabbix_username’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘zabbix_password’;
问题1参考:
https://stackoverflow.com/questions/21265191/apache-authtype-not-set-500-error
https://boinc.berkeley.edu/dev/forum_thread.php?id=8603
问题3参考:
https://support.zabbix.com/browse/ZBX-11009
centos6升级php5.4以上版本:
卸载原版本: https://blog.csdn.net/dc_726/article/details/9519293
升级新版本:https://www.tecmint.com/install-php-5-4-php-5-5-or-php-5-6-on-centos-6/
问题4参考:
https://talk.plesk.com/threads/solved-latest-php-5-3-26-yum-update-from-art-breaks-apache.287767/
问题5参考:
https://bugs.launchpad.net/ubuntu/+source/zabbix/+bug/1673462
问题8参考:
https://stackoverflow.com/questions/6384979/how-to-enable-xmlwriter-after-php-having-been-compiled
问题9参考:
https://tableplus.io/blog/2018/07/failed-to-load-caching-sha2-password-authentication-plugin-solved.html