记录:艰难的安装 zabbix4.0LTS 及踩坑爬坑过程

记录:艰难的安装 zabbix4.0LTS 及踩坑爬坑过程

1. 官方文档:

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


2.安装环境:

阿里云centos/wsl,debian,已安装mysql5.6权限已允许远程连接,

3. 详细步骤:

3.1. 下载:

wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.2.6/zabbix-4.2.6.tar.gz

3.2. 解压:

tar -zxvf zabbix-4.2.6.tar.gz

3.3. 创建用户账户:

groupadd zabbix

useradd -g zabbix zabbix

3.4. 创建数据库

若未安装 mysql5.*以上版本需要安装,且开启远程连接

参考官网的数据库创建脚本,进行创建:

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

若出现:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

则应在
grant all privileges on zabbix.* to zabbix_user@‘192.168.10.197’ identified by ‘password’;
中把密码设置得复杂一点就好了或者修改相关规则。

3.5. 配置源代码

配置 Zabbix server 和 Zabbix proxy 的源代码:

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

3.5 报错 1:

checking size of void *… 8
checking for mysql_config… no
checking for mariadb_config… no
configure: error: MySQL library not found

分析:
由于我的 mysq 是自动安装的。编译选项路径不对或者错误,默认是这条选项
–with-mysql,使用

which mysql #查找到 mysql 的目录

–with-mysql=/usr/bin/mysql #修改配置

但其实仍是无法解决,且会引发下面的报错 3

3.5 报错 2:

checking for xml2-config… no
configure: error: LIBXML2 library not found

解决方案:
推测是 libxml2 未安装导致运行 yum install libxml2,提示已安装,猜测可能是相关的 libxml2-dev 未安装导致,运行如下命令解决:

yum install libxml2-devel

3.5 报错 3:

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

解决办法是安装 net-snmp-devel

yum install -y net-snmp-devel

但实际执行该命令出现了新的错误:

错误:软件包:1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 (base)
需要:libmysqlclient.so.18(libmysqlclient_18)(64bit)
错误:软件包:1:net-snmp-agent-libs-5.7.2-43.el7.x86_64 (base)
需要:libmysqlclient.so.18()(64bit)
错误:软件包:1:net-snmp-5.7.2-43.el7.x86_64 (base)
需要:libmysqlclient.so.18()(64bit)
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest

综上 3.5 配置源码实际解决过程:

首先,查看安装了哪些 mysql 包

root@iZ81rhbgjpsqlhZ ~/zabbix-4.2.6# rpm -qa|grep mysql

mysql-community-libs-5.7.16-1.el7.x86_64
mysql-community-common-5.7.16-1.el7.x86_64
mysql-community-client-5.7.16-1.el7.x86_64
mysql-community-server-5.7.16-1.el7.x86_64

缺少了 mysql-community-devel-5.7.16-1.el7.x86_64 包,安装即可:

yum install mysql-devel -y

此时仍会报错:

—> 软件包 mariadb-libs.x86_64.1.5.5.64-1.el7 将被 安装
–> 正在处理依赖关系 mariadb-libs(x86-64) = 1:5.5.64-1.el7,它被软件包 1:mariadb-devel-5.5.64-1.el7.x86_64 需要
–> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 1:mariadb-devel-5.5.64-1.el7.x86_64 需要
–> 解决依赖关系完成
错误:软件包:1:mariadb-devel-5.5.64-1.el7.x86_64 (base)
需要:libmysqlclient.so.18()(64bit)
错误:软件包:1:mariadb-devel-5.5.64-1.el7.x86_64 (base)
需要:mariadb-libs(x86-64) = 1:5.5.64-1.el7
您可以尝试添加 --skip-broken 选项来解决该问题
您可以尝试执行:rpm -Va --nofiles --nodigest

错误提示安装依赖的库文件没有找到: libmysqlclient.so.18()(64bit)
需要下载安装 :mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
之前查看 mysql 安装了哪些版本库,需要下载其对应的版本,
下载:

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm

安装:

rpm -ivh mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm

./configure --enable-server --enable-agent --with-mysql==/usr/bin/mysql_config_editor --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

至此,从源码安装太麻烦了!因为自带的 mysql 安装有问题,需要卸载太麻烦了!,换成从二进制包安装!!!

1. 官方文档:

https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos

发现其实是 mysql 安装有问题需要卸载了重新安装!换成本地 wsl(Debian)!!!

2. 安装过程

Ubuntu/Debian 上安装 MySQL 非常简单只需要几条命令就可以完成。

sudo apt-get install mysql-server

apt-get isntall mysql-client

sudo apt-get install libmysqlclient-dev

  • 报错 1:

    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Package mysql-server is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    E: Package ‘mysql-server’ has no installation candidate

  • 原因:没更新 apt-get 库

  • 解决方法如下:

    sudo apt-get update

    sudo apt-get upgrade

    sudo apt-get install

    或更换 apt 源毕竟是辣鸡 wsl

发现辣鸡微软的 wsl 的 apt 源没有 mysql!!!而且更换源需要知道内核版本但是辣鸡微软屏蔽了!!!!!!

换个纯净的 centos 安装,安装 mysql,使用二进制包安装,直接跟着官方教程走!

  • 报错 1:
    在 localhost/zabbix 配置数据库时提示

    Error connecting to database: Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

  • 解决:

    find / -name mysql.sock
    /tmp/mysql.sock

    vim /etc/zabbix/zabbix_server.conf
    插入:
    DBSocket=/tmp/mysql.sock
    实际未解决!

换了也不是纯净的 centos,以前安装过 zabbix3.4 老是卡在 mysql 配置这!

至此前面的所有都作废,从零开始的 zabbix4 的安装配置流程!

现在重新用 vmware 装个虚拟机再安装 centos 再来配置

先说一下整体的流程:

1.先下载安装vmware、centos,正常安装启动虚拟机;
2.配置虚拟机,解决虚拟机初始化的一系列问题(网卡、yum、NAT配置、黑屏等问题)
3.依照官方文档,二进制安装zabbix4,解决记录相关的坑
4.解决zabbix前端的问题
5.尝试使用ruby/python调用zabbix4 api编写linux/windows自动化创建脚本。
  1. vmware 下载地址:

    win: http://soft.down3.xyz/VF_30553.zip

    mac: https://dl-sh-ctc-2.pchome.net/0k/1z/VMware-Fusion-10.1.2-8502123.dmg?key=5b0f59645f46001ea92b4ca3b0fa6990&tmp=1569375635832

  2. centos7 镜像:

    http://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-Minimal-1908.iso

  3. 问题 :虚拟机无法联网?

解决:是因为网卡未开。
cd /etc/sysconfig/network-scripts/
ls ifcfg-ens33
vi cfg-ens33
先找到 ONBOOT=no ,需要修改为 ONBOOT=yes 然后保存退出。
service network restart #重启网络服务

  1. 问题 :yum 源如何更新?

解决:
yum update #更新 yum 的包源
yum upgrade #升级 yum 版本

  1. 问题 :使用 yum 出现 Loaded plugins: fastestmirror

解决:
1.修改插件配置文件
vim /etc/yum/pluginconf.d/fastestmirror.conf
enabled=0 //由 1 改成 0 ,禁用该插件
2.修改 yum 配置文件
vim /etc/yum.conf
plugins=0 //不使用插件
3.清除缓存并重新构建 yum 源
yum clean all
yum makecache

  1. 问题:yum 安装时提示 No package xxx available

解决:
sudo yum install epel-release
(使用 yum 搜索某些 rpm 包,找不到包是因为 CentOS 是 RedHat 企业版编译过来的,去掉了所有关于版权问题的东西。安装 EPEL 后可以很好的解决这个问题。EPEL(Extra Packages for Enterprise Linux )即企业版 Linux 的扩展包,提供了很多可共 Centos 使用的组件,安装完这个以后基本常用的 rpm 都可以找到。)

  1. 问题:centos7 没有安装 ifconfig

    解决:yum install net-tools.x86_64

  2. 问题:yum-config-manager --enable rhel-7-server-optional-rpms 时 发生错误 yum-config-manager: command not found

    解决:yum -y install yum-utils

  3. 问题 :虚拟机无法从外部访问 80 端口(防火墙限制)

安装 firewall 插件:
yum install firewalld firewalld-config
在指定区域开启某个范围的端口号(如 18881~65534,命令方式):
firewall-cmd --zone=public --add-port=18881:65534/tcp --permanent
重新启动防火墙:
firewall-cmd --reload

  1. 问题:CentOS7 安装 mysql 后无法启动服务,提示 Unit not found
> 原因:  
> 在 CentOS7 中已经不在支持 mysql,就算你已经安装了,CentOS7 还是表示很嫌弃。  
> 1.安装:yum install -y mariadb-server  
> 2.启动 maria DB 服务:systemctl start mariadb.service  
> 3.将 mariadb 服务添加至开机自启动:  
> systemctl enable mariadb.service
  1. 问题:虚拟机在 vmware 无法复制粘贴、想从 ssh 来连接虚拟机
> 解决:使用 NAT 设置,映射端口。  
> 步骤:vmware--编辑--虚拟网络编辑器-更改设置--NAT 模式--添加
> 可以把虚拟机的 ip 和端口映射成主机的 ip 和端口,访问主机的 ip 和端口其实访问的就是虚拟机的(注意开放防火墙)

12 问题: win 下虚拟机黑屏
> 解决:管理员身份 cmd,
> netsh winsock reset

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值