zabbix 源码安装

1. 下载地址
https://www.zabbix.com/download?zabbix=4.4&os_distribution=centos&os_version=7&db=mysql&ws=nginx

2.无法安装的yum
安装的时候带上-y 不然我去喝杯水回来,服务器都断开了

yum install zabbix-server-mysql zabbix-agent -y
  zabbix-server-mysql-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try.
  zabbix-agent-4.4.6-1.el7.x86_64: [Errno 256] No more mirrors to try.

好好的官方软件步骤,安装出个这个问题,又是我们神奇的网络,无法连接。

第一步就走不走了,发现安装不下去。报错

试图修改,步骤 更换官方的源, 无效

 cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) 
 
 
cd /etc/yum.repos.d
 
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
 
yum clean all
 
yum makecache

无效

网上有说更换DNS能解决的,DNS换成4.4.4.4 因为我的服务器是阿里云的看了半天不敢乱动,怕重启动网络,连不上就麻烦了。

3. 源码安装
以我之前对其他软件的理解,linux其实都有源码安装的办法,只要能yum

3.1 选择zabbix Sources 2020年3月7日版本为4.4.6

https://www.zabbix.com/documentation/3.4/zh/manual/installation/install

tar -zxvf zabbix-4.4.6.tar.gz

3.2 创建用户和组zabbix
提示:使用root,bin或其他特殊权限的账户运行Zabbix是一个安全风险,这句话来自官方文档

groupadd zabbix
useradd -g zabbix zabbix

3.3 创建Zabbix数据库

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbi111!';

如果mysql出现
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
说明密码强度不够,包含大写字母,数字,特殊字符就好了

3.4. 编译
官方文档有点啰嗦,直接这句话就好了

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

踩坑1:mysql库的问题

configure: error: MySQL library not found

这里的关键不是去找Mysql的事儿,是要看mysql_config

我找了mysql的事儿

which mysql
 
mysqladmin -u root -p variables

找到类似日志的地方,就能判断mysql到底安装在哪里了。

| slow_query_log_file                                      | /var/lib/mysql/rh64-slow.log                                                                                                                                                                                                                                                                                                                                                                                     |
| socket                                                   | /var/lib/mysql/mysql.sock                                                                                                                                                                                                                                                                                                                                                                                        |
 
mysql

结果

yum install mysql-devel
whereis mysql_config

就好了

踩坑2.libxml2

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

报错

configure: error: Not found libxml2 library

这个页面下载
http://www.xmlsoft.org/downloads.html

wget ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz
 
/configure
make
make install

踩坑3.Curl (注意不是curl)

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

configure: error: Curl library not found

yum install curl
yum install curl-devel

踩坑4. libxml无法执行
./configure 成功运行,到了make的时候

# make && make install
 
expression.c:31:28: fatal error: libxml/parser.h: No such file or directory
 
 
# find / -name parser.h
 
/usr/local/include/libxml2/libxml/parser.h

发现安装到了/usr/local/include/下了

一般情况下都是查找 /usr/lib在这个下面的库

所以在/usr/include下建一个软连接libxml

# ln -s /usr/local/include/libxml2/libxml   /usr/include/libxml
# make && make install

服务器成功安装

3.5 启动服务端和客户端
在 Zabbix server 端运行 zabbix_server:

# zabbix_server

在此编辑 Zabbix server 的配置文件 /usr/local/etc/zabbix_server.conf

# zabbix_agentd

在此编辑 Zabbix agent 的配置文件 /usr/local/etc/zabbix_agentd.conf

如果您安装了 Zabbix proxy,请运行 zabbix_proxy:(月小升手工编译的文件,并没有这个玩意)

# zabbix_proxy

3.6 配置php

前端文件路径

cd /backup/soft/zabbix-4.4.6/frontends/php
 
cp -a . /var/www/zabbix

配置自己的nginx 这里不多说 路径/var/www/zabbix即可。

在您的浏览器打开 Zabbix 链接:http:///zabbix

https://java-er.com/zabbix/setup.php

踩坑1.修改php.ini半天无效,最终修改了php-fpm的www.conf

安装的时候出错,php的选项都在php.ini里改一遍然后重启php-fpm

whereis php.ini
 
 whereis php-fpm.conf

部分属性在php-fpm配置里,这个文件比php.ini优先级别高。

php -i | grep php.ini
 
php-fpm -i | grep php.ini

反复修改/etc/php.ini 重启php-fpm 无效

修改
/etc/php-fpm.d/www.conf 立即生效了

php_value[post_max_size] = 16M
 
php_value[max_execution_time] = 300
 
php_value[date.timezone] = Asia/Shanghai
 
php_value[always_populate_raw_post_data] = -1

php_value[always_populate_raw_post_data] = -1 #提示里把off 改成on,我写了on没用,查了下,写-1 有效

bcmath 我开始以为是个变量,查了一下才知道是个插件

安装bcmath

yum install php-bcmath
 
yum provides php-bcmath

php56w-bcmath-5.6.40-1.w7.x86_64 找到我的版本

yum install php56w-bcmath-5.6.40-1.w7.x86_64

重启php-fpm 就都显示OK了

踩坑2.说前端数据库不匹配
下一步出来(月小升有时候觉得能遇到的问题都被我撞上了)
The frontend does not match Zabbix database

我最终去下载的源代码的包里,找到了mysql文件

ls /backup/soft/zabbix-4.4.6/database/mysql
 
data.sql  images.sql  Makefile  Makefile.am  Makefile.in  schema.sql

一共三个
1. /backup/soft/zabbix-4.4.6/database/mysql/schema.sql

2. /backup/soft/zabbix-4.4.6/database/mysql/data.sql

3. /backup/soft/zabbix-4.4.6/database/mysql/images.sql

最原始的办法导入数据库

mysql -u zabbix -p

source /backup/soft/zabbix-4.4.6/database/mysql/schema.sql
相继倒入文件刷新直接过去了

默认账号Admin

默认密码为zabbix

踩坑3.说时区设置不对

DateTime::__construct(): Invalid date.timezone value 'Asia/Shaihang', we selected the timezone 'UTC' for now.
 
 
DateTime::__construct(): Invalid date.timezone value 'Asia/Shaihang', we selected the timezone 'UTC' for now.
vi /etc/php-fpm.d/www.conf

修改为UTC

php_value[date.timezone] = UTC


结束

安装参考文档
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install


This entry was posted in Linux and tagged . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/zabbix-source-install/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.
2020.03.24 评论已经全局关闭,有事加QQ聊天