Zabbix的详细安装部署
1.架构
Zabbix 由几个主要的功能组件组成,其职责如下所示。
SERVER
Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
WEB 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
PROXY
Zabbix proxy可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。
AGENT
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
————————————————
2.安装
记得先安装vim编辑器、wget下载工具、:
yum -y install vim
yum -y install wget
yum -y install net-tools
netstat -tunpl 端口查看必备工具:安装net-tools
了解了架构,我们开始进行安装,首先安装zabbix的存储库:
1.所有机器关闭防火墙和selinux
setenforing 0 (修改配置文件关闭)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl stop firewalld.service
2.准备两台机器,一台用做server,一台用做agent,mysql部署在server端的机器上。
server ip:192.168.8.139 host:zabbix-server
node ip:192.168.8.140 host:zabbix-agent (使用agent2客户端和snmp2 协议链接)
3.在192.168.8.139 安装zabbix的存储库
[root@zabbix-server ~]#rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-server ~]# yum clean all #清除YUM缓存
如果出现下载失败,或者没有反应,可用手动下载下来后在安装
4.安装 Zabbix 服务器和代理
[root@zabbix-server ~]# yum install zabbix-server-mysql zabbix-agent -y
5.安装 Zabbix 前端
[root@zabbix-server ~]# yum install centos-release-scl -y
编辑文件 /etc/yum.repos.d/zabbix.repo 并启用 zabbix-frontend 存储库。
[zabbix-frontend]
...
enabled=1
...
6.安装 Zabbix 前端包
[root@zabbix-server ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
7. 创建初始数据库
[root@zabbix-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
上面的地址如果不行,可用使用下面的地址,注意版本
wget http://repo.mysql.com/mysql80-community-release-el7-5.noarch.rpm
[root@zabbix-server ~]#yum -y install mysql80-community-release-el7-3.noarch.rpm
centos彻底卸载mysql(不保留数据)
centos彻底卸载mysql(不保留数据) 1、 rpm -qa | grep -i mysql 查找已经安装的mysql. MySQL-server-5.6.43-1.el6.x86_64 MySQL-client-5.6.43-1.el6.x86_64 MySQL-devel-5.6.43-1.el6.x86_64 以上三个就是我安装的mysql. 2、 yum -y remove MySQL-* 网上的一般用rpm -e 的命令删除mysql,这样表面上删除了mysql,可是mysql的一些残余程序仍然存在,并且通过第一步的方式也查找不到残余,而yum命令比较强大,可以完全删除mysql.(ps:用rpm删除后再次安装的时候会提示已经安装了,这就是rpm没删除干净的原因) 3、 find / -name mysql 查找mysql的一些目录,把所有出现的目录统统删除.可以使用rm -rf 路径,删除时请注意,一旦删除无法恢复。 4、rm -rf /etc/my.cnf 这个是删除配置文件 5、 rm -rf /root/.mysql_sercret 删除mysql的默认密码,如果不删除,以后安装mysql这个sercret中的默认密码不会变,使用其中的默认密码就可能会报类似Access denied for user ‘root@localhost’ (using password:yes)的错误. 五步完成之后,这样mysql就全部删除干净了.
vim mysql-community.repo 时,出现空白页面时,主要是数据库未安装,删除已经安装的数据库,再重新安装即可
[root@zabbix-server ~]#vim /etc/yum.repos.d/mysql-community.repo
打开5.7源地址,关闭8.0源地址,确保下载的数据库是mysql5.7;这里换mariadb也可以
[root@zabbix-server ~]# yum -y install mysql-community-server
mysql在安装后,会初始化生成一个随机密码,我们可以去日志里过滤出来
[root@zabbix-server ~]# systemctl start mysqld
启动mysql服务时出现报错: systemctl start mysql.service
错误提示如下: Failed to start mysqld.service: Unit not found
解决方法如下: 首先需要安装mariadb和mariadb-server yum -y install mariadb mariadb-devel mariadb-server
#以下内容视情况输入:如果mysql启动正常则不用输入。 启动服务 systemctl start mariadb.service 添加到开机启动 systemctl enable mariadb.service 进行一些安全设置,以及修改数据库管理员密码 mysql_secure_installation
yum -y install mariadb mariadb-devel mariadb-server 运行安装完成后如果有以下提示,解决办法如下:
执行以下命令
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
原因:可能是MySQL GPG 密钥已过期导致,改一下密钥。
mysql在安装后,会初始化生成一个随机密码,我们可以去日志里过滤出来
[root@zabbix-server ~]# systemctl start mysqld #现在运行mysql服务就成功了。
[root@zabbix-server ~]# grep 'password' /var/log/mysqld.log
修改mysql密码:
登录mysql后,进行修改密码
mysql -uroot -ps0bsq6lIay:h
mysql执行语句报错,错误代码:1820
mysql执行语句报错 mysql> use mysql; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> show databases; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 提示要用ALTER USER修改密码才可以 但是如果想要设置非常简单的密码,比如123456会提示密码不符合要求 mysql> alter user 'root'@'localhost' identified by '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements / / 但是修改这个参数会报错,没有这个系统变量 mysql> set global validate_password_policy=0; ERROR 1193 (HY000): Unknown system variable 'validate_password_policy' 添加参数 这个时候就得去修改一下mysql的配置文件 [root@zheng ~]# vi /etc/my.cnf [mysqld] ## 在mysqld文本段里添加这两行 #添加密码验证插件 plugin-load-add=validate_password.so #服务器在启动时加载插件,并防止在服务器运行时删除插件 validate-password=FORCE_PLUS_PERMANENT "/etc/my.cnf" 34L, 1167C written [root@zheng ~]# systemctl restart mysqld / / 修改完重启mysql [root@zheng ~]# mysql -uroot -p Enter password: 密码123 修改参数值 修改validate_password_policy参数的值 validate_password_length(密码长度)参数默认为8,我们修改为1 mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec) mysql> alter user 'root'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.00 sec) mysql安装成功 mysql> show databases; / / 这里就可以正常使用了 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) 这里说一下,我这用的是5.7版本的,mysql8.0是不支持这么修改的 mysql> status -------------- mysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper Connection id: 5 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.30 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 1 hour 58 min 34 sec Threads: 1 Questions: 26 Slow queries: 0 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.00 8.0mysql版本修改参数设置 mysql> set global validate_password.policy=0; mysql> set global validate_password.length=1;
mysql给root开启远程访问权限
注意以下命令是再mysql命令下输入:
use mysql; select User,authentication_string,Host from user; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; flush privileges;
创建zabbix数据库,并创建数据库用户zabbix和密码Zabbix@2021 刷新权限 退出 mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all on zabbix.* to zabbix@localhost identified by 'Zabbix@2021'; mysql> flush privileges; mysql> quit;
在 Zabbix 服务器主机上导入初始模式和数据。系统将提示您输入新创建的密码。 [root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix Enter password: //此处输入上面创建用户时,设置的密码,回车导入数据; 可再次进去到数据库,确认zabbix库中有数据生成;
等待数据库初始化导入。
mysql> show databases; #查询mysql中有那些数据库。 +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | zabbix | +--------------------+ 5 rows in set (0.01 sec) mysql> use zabbix #进入zabbix数据库 mysql> show tables;#查询zabbix数据库中有那些表。
quit; #退出数据库
8.为 Zabbix 服务器配置数据库 编辑文件 /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Zabbix@2021
可用使用命令查看有用的内容,可用直接排除掉#注释文件和空格
grep -Ev '^#|^$' /需要查询文件的路径,例如
grep -Ev '^#|^$' /etc/zabbix/zabbix_server.conf
这样就只会显示有用的信息
9.为 Zabbix 前端配置 PHP 编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并为您设置正确的时区。 php_value[date.timezone] = Asia/Shanghai
10.启动 Zabbix 服务器和代理进程 [root@zabbix-server ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm [root@zabbix-server ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm 访问http://192.168.8.139/zabbix
出现以下登录界面, Zabbix监控平台有默认管理员用户; 默认用户名Admin,密码为zabbix;
解决报错zabbix service is not running:the information displayed may not be current
1、进入服务器,先看一下zabbix server的状态,嘿呀哈,还确实没运行,状态显示为FAILED
systemctl status zabbix-server
2、原因分析:可能是SELinux安全子系统拦截了。
3、解决方法:
①将zabbix-server加入到SELinux的规则内;
②关闭SELinux安全子系统;
以我性子,万事不求人,我喜欢主动;直接选择关闭SELinux
4、临时关闭和永久关闭,看需求选择
setenforce 0 //临时关闭
5.永久关闭需要修改配置文件:
vi /etc/selinux/config
将SELINUX=enforcing的值修改为disabled。
修改后按 esc 退出,然后再输 :wq,即保存并退出;然后重启服务器就OK啦
systemctl restart zabbix-server
日志查看
tailf /var/log/zabbix/zabbix_server.log
页面显示为英文,可以设置为中文 Admin用户,可以设置任何用户的语言 设置自己的语言如下图
这样我们的zabbix的一个安装就完成了。下一章介绍客户端使用 agent2 和 snmp v2 协议上线。
标签:解决办法,root,zabbix,server,Zabbix,mysql,password,安装 From: https://www.cnblogs.com/jjsunxing/p/17493545.html