zabbix监控主要安装分为三大块
zabbix-server 服务端 (数据收集展示)
zabbix-agent 客户端 (数据收集上报到服务端)
mysql 存放收集的信息和展示的模板
环境准备::
两台虚拟机:
1台: zabbix-zerver mysql
1台: zabbix-agent
更改主机名称分别是zabbix-server 和zabbix-agent
hostnamectl set-hostname zabbix-server
hostnamectl set-hostname zabbix-agent
一、安装zabbix-server
环境安装
yum -y install vim lsof
yum -y install wget curl
1.导入安装包
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
2.Install Zabbix proxy
yum install zabbix-server-mysql zabbix-agent -y
yum install centos-release-scl -y
修改 zabbix-frontend配置
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
3.创建初始数据库
安装包获取
https://dev.mysql.com/downloads/mysql/
https://dev.mysql.com/downloads/repo/yum/
官方yum源方式安装
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
如果需要升级包可以用下面的命令
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
安装需要的版本
查看所有版本
yum repolist all | grep mysql
这里5.7版本是不可用的 8.0的能用 所以需要先禁用8.0的然后开启5.7版本的
yum-config-manager --disable mysql80-community
#注意#:
如果运行 yum-config-manager命令提示 -bash: yum-config-manager: command not found 命令未找到,因为 yum-config-manager 在 yum-utils包里面。由于系统默认没有这个命令,需要另外进行安装
安装yum-config-manager
yum -y install yum-utils
如果报错如下:
The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package.
Check that the correct key URLs are configured for this repository
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
启用5.7版本
yum-config-manager --enable mysql57-community
安装MySQL
yum install -y mysql-community-server
验证MySQL
mysql --version
启动MySQL
查看启动状态
systemctl status mysqld.service
启动
systemctl start mysqld.service
登录MySQL
MySql服务器初始化会创建 'root@localhost’的一个超级用户账号。设置超级用户的密码并将其存储在错误日志文件中
grep 'temporary password' /var/log/mysqld.log
使用临时密码登录Mysql
mysql -uroot -p'临时密码'
重置密码
set global validate_password_length=0;
set global validate_password_policy=0;
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
开启远程连接
进入mysql库执行命令
use mysql
select host ,user from user;
修改权限
把root用户的host改为%
update user set host = "%" where user = "root";
刷新权限
flush privileges;
测试连接
在Navicat Premium
4、初始化数据库
最好在登录数据库把root密码更改侯测试
登录数据库后操作
mysql> set global validate_password_length=0;
mysql> set global validate_password_policy=0;
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@"%" identified by 'password';
# 创建一个zabbix的用户 密码是password
mysql> grant all privileges on zabbix.* to zabbix@"%";
# 给zabbix授权
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
其中zabbix可以用Navicat Premium创建数据库
5.导入初始架构和数据,系统将提示您输入新创建的密码。
判断这个安装包是否存在
ls /usr/share/doc/zabbix-server-mysql*/create.sql.gz
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
如果数据库和zabbix-server不在一个机器上的用
cat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql --default-character-set=utf8mb4 -h 数据库ip -uzabbix -p zabbix_proxy
验证是打开navicat 查看zabbix库下面有没有表
登录数据库
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
6.配置zabbix-server的数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost #指定数据库的ip
DBUser=zabbix #指定登录的用户
DBPassword=password # 改成自己的密码
DBPort=3306 # 改成数据库的端口
DBName=zabbix # 创建数据库的名称
编辑 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 配置时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
; php_value[date.timezone] = Europe/Riga 改成
php_value[date.timezone] = Asia/Shanghai
注意分号别忘记去掉
7.启动zabbix-server
#systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm # 重启
# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm # 开机自启动
验证是否启动:
验证zabbix-server是否启动
方式一:systemctl status zabbix-server
方式二:lsof -i:10051 (zabbix-server 占用10051端口)
验证zabbix-server是否启动
方式一:systemctl status zabbix-agent
方式二:lsof -i:10050 ( zabbix-agent 占用10050端口)
验证httpd是否启动
方式一:systemctl status httpd
方式二:lsof -i:80 ( httpd 占用80端口)
验证rh-php72-php-fpm是否启动
方式一:systemctl status rh-php72-php-fpm
方式二:lsof -i:9000 ( php-fpm 占用9000端口)
8.访问http://ip/zabbix/
这里的配置和刚刚在第6步 配置zabbix-server的数据库 信息 要一致
默认账号Admin 默认密码为zabbix
登录后修改为中文和密码
报错问题
-
13064:20230613:184006.179 cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)
解决办法:
删除mysql zabbix库重新创建库后进行数据导入
登录mysql后命令删除:
DROP database zabbix;
navicat 可以直接库名点击删除
mysql> set global validate_password_length=0;
mysql> set global validate_password_policy=0;
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@"%" identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@"%";
mysql> set global log_bin_trust_function_creators = 1;
导入库
zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix
2.忘记zabbix密码
a.连接zabbix的mysql
show databases; # 查看数据库
use zabbix; # 使用zabbix 库
select * from users; #查看admin账户名,可能是admin也可能是Admin
UPDATE user SET password=PASSWORD('新密码') WHERE user='用户';
例如: update users set passwd= md5('zabbix') where alias='Admin';
>flush privileges;
然后重新登录就可以了
3.mysql忘记密码
vim /etc/my.cnf
[mysqld]
# 加上
skip-grant-tables
保存并退出后重启mysql
然后登录mysql -u root -p 回车直接登录mysql
更新密码:
update mysql.user set authentication_string=PASSWORD("123456") where user="root";
刷新:
flush privileges;
退出后
vim /etc/my.cnf
把新加的skip-grant-tables 前面增加# 注释掉
保存退出后重启mysqld