主机名 | IP地址 | 系统 | 说明 |
---|---|---|---|
zabbix01 | 192.168.11.51 | Ubuntu20.04 | zabbix server主节点 |
zabbix02 | 192.168.11.52 | Ubuntu20.04 | zabbix server备用节点 |
zabbix03 | 192.168.11.53 | Ubuntu20.04 | zabbix server备用节点 |
db01 | 192.168.11.50 | Ubuntu20.04 | MySQL8.0或mariadb10.5数据 |
说明:zabbix HA最少需要2个zabbix server节点即可实现HA集群高可用及故障转移,如果没有那么多服务器,可以把Mysql安装在其中一台zabbix-server上,只开2个zabbix server节点。
分别在4台服务器上执行
sudo hostnamectl set-hostname db01
sudo hostnamectl set-hostname zabbix01
sudo hostnamectl set-hostname zabbix02
sudo hostnamectl set-hostname zabbix03
ubuntu自带的源只能安装mysql5.7,使用清华源安装Mysql8.0
sudo bash -c "cat > /etc/apt/soures.list.d/mysql-community.list" <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/mysql/apt/ubuntu bionic mysql-5.7 mysql-8.0 mysql-tools
EOF
然后导入GPG密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3A79BD29
**注意MySQL8.0.28及更商版 本包的keyid为3A79BD29,如上所示。对于早期的MySQL版本,KeyID是5072EF5。使用不正确的密钥可能会导致密钥验证错误。
安装MySQL
sudo apt update
sudo apt install -y mysql-server
输入mysql的超级管理员root用户密码,输入完后按tab键–选择ok–然后回车
#查看mysql启动状态
sudo systemctl status mysql
Ubutun20.04自带源默认安装的mariadb版本为10.3不符合安装zabbix6.0的要求
#安装组件及设置key
sudo apt -y install software-properties-common dirmngr apt-transport-https
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
#添加阿里云的mariadb源
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el,s390x] https://mirrors.aliyun.com/mariadb/repo/10.5/ubuntu focal main'
安装mariadb
#更新软件源
sudo apt update
#安装mariadb server
sudo apt install -y mariadb-server
确认安装的版本 是mariadb-server-10.5后,输入Y,回车
查看启动状态
sudo systemctl status mariadb
查看mariadb版本号
chen@chen:~$ mysql -V
mysql Ver 15.1 Distrib 10.5.16-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
初始化数据库
#提高数据库服务器安全
chen@chen:~$ sudo mysql_secure_installation
Enter current password for root (enter for none): #输入当前root密码,因为当前没有密码直接按回车
Switch to unix_socket authentication [Y/n] y #是否使用unix_socket身份验证
Change the root password? [Y/n] n #因为我们使用了unix_socket身份验证就不用改变root密码了
Remove anonymous users? [Y/n] y #删除匿名用户?
Disallow root login remotely? [Y/n] y #不允许root用户远程登录?
Remove test database and access to it? [Y/n] y #删除测试数据库并访问它?
Reload privilege tables now? [Y/n] y #现在重新加载权限表?
配置远程访问
修改mariadb配置文件
grep "bind-address" /etc/mysql/mariadb.conf.d/50-server.cnf #127.0.0.1只能本机访问
sudo sed -i 's#bind-address\(.*\)#bind-address = 0.0.0.0#g' /etc/mysql/mariadb.conf.d/50-server.cnf
重启mariadb
sudo systemctl restart mariadb
sudo systemctl status mariadb
auth_socket插件将会通过Unix socket文件验证用户来连接localhost.意味着你不需要通过提供密码来验证root。
sudo mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; #创建zabbix这个库
mysql> create user zabbix@'%' identified by 'password'; #创建zabbxi用户和密码。
mysql> grant all privileges on zabbix.* to zabbix@'%'; #授权zabbix用户所有权限
mysql > quit
#验证,zabbix用户能登录成功,show database能看到zabbix库,说明没有问题
sudo mysql -uzabbix -p -h 192.168.11.50 #50是本机IP
输入password
mysql> show databases;
mysql> quit;
在zabbix01、02、03这三台主机上同时安装Zabbix server,Web前端,agent
1、在xshell上点选项卡--排列--垂直排列。
2、点查看--撰写--撰写栏--点左下角图标--全部xshell,就可以完成同时在三台主机上操作了。
#添加zabbix仓库
wget https://mirrors.aliyun.com/zabbix/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo apt update
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
参数解释
名称 | 概述 | 必须安装 | 备注 |
---|---|---|---|
zabbix-server-mysql | zabbix-server的mysql版本,整个zabbix软件的核心程序 | 是 | |
zabbix-frontend-php | php环境+前端代码 | 是 | |
zabbix-apache-conf | apache | 是 | 和nginx二选 一 |
zabbix-sqlscripts | 数据库sql脚本,初始化zabbix数据库 | 是 | |
zabbix-agent2 | zabbix-agent的替代品,它支持zabbix-agent所有功能 | 是 |
sudo apt -y install language-pack-zh-hans
只在其中一台zabbix-server服务器上执行操作
说明:只初始化一次,不需要重复执行,192.168.11.50是数据库的IP
安装mysql-client
#该命令我选择在zabbix01上执行
sudo apt install -y mariadb-client
导入初始架构和数据,系统将提示输入新创建的密码,等待完成。
sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p -h 192.168.11.50 zabbix
#或下面的路径
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p -h 192.168.11.50 zabbix
#输入zabbix用户的password等待完成。过程可能需要一到几分钟,根据机器性能决定。
验证一下
mysql -uzabbix -p -h 192.168.11.50
use zabbix;
show tables;
在三台zabbix-server服务器上执行以下操作
方法一:
使用vim编辑配置文件,注意,192.168.11.50是数据库的IP,password是密码
sudo vim /etc/zabbix/zabbix_server.conf
#数据库配置,3台zabbix server一致,
DBHost=192.168.11.50
DBName=zabbix
DBUser=zabbix
DBPassword=password
#HA配置,3台zabbix server不一致
#HANodeName设置为当前节点主机名或者IP地址,需保证同一集群中唯一
HANodeName=zabbix01
#NodeAddress设置为本机IP:10051
NodeAddress=IP:10051
方法二:
通过sed命令修改配置文件
#在三台上执行如下命令:
sudo egrep "DBHost=|DBPassword=|HANodeName=|NodeAddress=" /etc/zabbix/zabbix_server.conf
sudo sed -i 's#\# DBHost=localhost#DBHost=192.168.11.50#g' /etc/zabbix/zabbix_server.conf
sudo sed -i 's#\# DBPassword=#DBPassword=password#g' /etc/zabbix/zabbix_server.conf
zabbix01上执行
sudo sed -i 's#\# HANodeName=#HANodeName=zabbix01#g' /etc/zabbix/zabbix_server.conf
sudo sed -i 's#\# NodeAddress=localhost:10051#NodeAddress=192.168.11.51:10051#g' /etc/zabbix/zabbix_server.conf
zabbix02上执行
sudo sed -i 's#\# HANodeName=#HANodeName=zabbix02#g' /etc/zabbix/zabbix_server.conf
sudo sed -i 's#\# NodeAddress=localhost:10051#NodeAddress=192.168.11.52:10051#g' /etc/zabbix/zabbix_server.conf
zabbix03上执行
sudo sed -i 's#\# HANodeName=#HANodeName=zabbix03#g' /etc/zabbix/zabbix_server.conf
sudo sed -i 's#\# NodeAddress=localhost:10051#NodeAddress=192.168.11.53:10051#g' /etc/zabbix/zabbix_server.conf
**检查是否在三台zabbix上修改正确
sudo egrep "DBHost=|DBPassword=|HANodeName=|NodeAddress=" /etc/zabbix/zabbix_server.conf
#先在zabbix01上执行
sudo systemctl start zabbix-server zabbix-agent2 apache2
sudo systemctl enable zabbix-server zabbix-agent2 apache2
sudo systemctl status zabbix-server zabbix-agent2 apache2
ss -lntp #查看一下端口是否已启动 80(apache),10051(zabbix-server),10050(zabbix-agent2)
检查zabbix-server日志
sudo tail -f /var/log/zabbix/zabbix_server.log
conf/zabbix.conf.php
三台都需要配置
#前端登录地址
http://192.168.11.51/zabbix
http://192.168.11.52/zabbix
http://192.168.11.53/zabbix
sudo vim /usr/share/zabbix/conf/zabbix.conf.php
用户名:Admin
密码:zabbix
检查
1、在“最新数据 ”显示有数据就正常了
2、在监测–主机–图形,有数据就就正常了
3、报表–系统信息,能看到三台主机是一主二从节点就正常了
1、修改时区
sudo cp /usr/share/zoninfo/Asia/shanghai /etc/localtime
date -R
2、安装中文字体
解决Web图形中的中文字乱码
sudo apt -y install ttf-wqy-microhei
sudo cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
1、修改配置文件
在三台zabbix-server上操作
sudo grep "^Server=" /etc/zabbix/zabbix_agent2.conf
sudo sed -i 's#Server=127.0.0.1#Server=192.168.11.51,192.168.11.52,192.168.11.53#g' /etc/zabbix/zabbix_agent2.conf
重启zabbix-agent
sudo systemctl restart zabbix-agent2
检查:
sudo systemctl status zabbix-agent2
1、点配置–主机–zabbix-server–主机名称输入zabbix01–客户端IP–192.168.11.51–更新
2、点配置–主机–zabbix-server–全克隆–主机名称输入zabbix02–客户端IP–192.168.11.52–添加
3、点配置–主机–zabbix-server–全克隆–主机名称输入zabbix03–客户端IP–192.168.11.53–添加
sudo systemctl stop zabbix-server
#停止其中一台,查看一下采集数据是否常