前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >openEuler-22.03-LTS-SP3 部署 Zabbix 6.0.27

openEuler-22.03-LTS-SP3 部署 Zabbix 6.0.27

作者头像
Kevin song
发布2024-03-12 08:31:47
3460
发布2024-03-12 08:31:47
举报

What is Zabbix?

Zabbix([`zæbiks])是一个基于Web界面的提供分布式系统监控以及网络监控功能的企业级的开源解决方案。用于监控各种网络设备,操作系统、数据库、中间件以及服务器的安全运营;并提供灵活的通知机制以让系统运维人员快速定位/解决存在的异常问题。

Zabbix由3大核心部分构成,Zabbix server 、Zabbix proxy和Zabbix agent。Zabbix Server、Proxy可以通过SNMP,Agent,Ping,SSH, Telnet,IPMI,JMX,简单检查等方式提供对远程服务器/网络状态的监控,数据收集等功能。

Zabbix Proxy 可以替代 Zabbix Server 收集主机设备的性能和可用性数据从而减轻 Zabbix Server 的压力。

Zabbix部署架构方式

All-in-One部署

All-in-One部署适合小型或测试环境简单易行,容易维护,但不适合大规模生产环境,所有的负载都在一台服务器上,这可能会导致性能瓶颈。

  • Zabbix server:Zabbix主服务器负责数据收集、处理、存储、评估触发器以及发送告警。
  • Database server:用于存储所有配置信息、统计数据和操作数据。
  • Zabbix frontend:基于Web的前端界面,用于配置、查看数据报告和管理Zabbix系统。
  • Zabbix agent:部署在需要监控的服务器上,负责收集监控数据并发送回Zabbix server。

分布式部署

分布式部署适合大规模和复杂网络的生产环境。通过将负载分散到多台服务器上,能够提高系统的可伸缩性和可靠性。分布式部署还可以通过添加更多的Zabbix proxy和服务器来轻松扩展。在分布式部署中,Zabbix的不同组件被分散到多台服务器上。

  • 一个或多个Zabbix server:用于处理不同地区或网络段的数据。
  • 单独的数据库服务器:通常采用高性能的数据库集群来提供足够的存储和查询速度。
  • 多个Zabbix proxy:位于远程位置的服务器,用于收集监控数据并将其缓存起来,之后再发送到Zabbix server。这样做可以减少网络流量并提高稳定性。
  • Zabbix frontend:可以单独部署在一台Web服务器上,用于访问Zabbix用户界面。
  • Zabbix agent:部署在每台需要监控的服务器上。

All-in-One部署 Zabbix Server+MySQL+Nginx+PHP

一、MySQL 部署

Zabbix 唯一支持的编码是 UTF-8 。使用此编码没有已知的任何安全漏洞。应注意如果使用其他的编码,则存在已知的安全问题。支持字符集 utf8(又名utf8mb3)和 utf8mb4(分别使用utf8_bin和utf8mb4_bin 排序规则)以便 Zabbix 服务器/代理与 MySQL 数据库正常工作。建议使用 utf8mb4 进行新安装。

1,安装mysql

代码语言:javascript
复制
dnf install mysql mysql-server

2,初始化数据库

代码语言:javascript
复制
mysql_secure_installation

3,登录测试

代码语言:javascript
复制
mysql -uroot  -p

二、创建zabbix数据库,创建用户并授权

zabbix官方文档说明

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

登录数据库

代码语言:javascript
复制
mysql -uroot -p

创建zabbix 数据库

代码语言:javascript
复制
创建zabbix 数据库
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
创建zabbix 用户
mysql> create user 'zabbix'@'%' identified by 'password';
授权远程访问
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
开启log_bin_trust_function_creators
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
刷新策略
mysql> flush privileges;
退出
mysql> quit;

重置root密码

代码语言:javascript
复制
alter user 'root'@'localhost' identified by "password";
flush privileges;

配置数据库用户权限

查看user表中用户远程登录授权,host字段是localhost,说明用户只能本地登录

代码语言:javascript
复制
select host,user,plugin from mysql.user;

设置数据库远程连接

代码语言:javascript
复制
update mysql.user set host='%' where user='root';

刷新权限

代码语言:javascript
复制
FLUSH PRIVILEGES;

三、Zabbix 部署

1,创建zabbix用户组

代码语言:javascript
复制
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

2,创建用户家目录

代码语言:javascript
复制
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

3,安装系统依赖环境

dnf install gcc libxml2 libxml2-devel net-snmp net-snmp-devel OpenIPMI OpenIPMI-devel libevent libevent-devel curl curl-devel libssh2-devel java java-devel mysql-devel unixODBC-devel openldap openldap-devel pcre pcre-devel fping -y

4, 设置fping 执行权限

代码语言:javascript
复制
chmod u+s   /usr/sbin/fping

5,编译安装Zabbix

下载zabbix6.0.27源码包

代码语言:javascript
复制
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.27.tar.gz
tar -zvxf zabbix-6.0.27.tar.gz -C /opt && cd  /opt/zabbix-6.0.27/

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-openipmi --enable-ipv6 --with-openssl --with-ssh2 --with-iconv --with-libpcre --with-iconv-include --with-iconv-lib --with-libevent --with-libevent-include --with-zlib --with-zlib-include --with-zlib-lib --with-libpthread --with-libpthread-include --with-libpthread-lib --with-libevent-lib --with-ldap

make install

四、Zabbix 数据库数据导入

依次导入zabbix数据库

代码语言:javascript
复制
cd /opt/zabbix-6.0.27/database/mysql
mysql -uzabbix -p zabbix < schema.sql
mysql -uzabbix -p zabbix < images.sql
mysql -uzabbix -p zabbix < data.sql

查看数据库用户权限和用户授权

代码语言:javascript
复制
select  host,user,plugin,authentication_string from mysql.user;
SHOW GRANTS FOR 'zabbix'@'%';

五、Nginx 部署

1,安装nginx 软件包

代码语言:javascript
复制
dnf install nginx

2,上传zabbix.conf 文件配置到/etc/nginx/conf.d/

六、PHP 部署

1,安装php软件包

代码语言:javascript
复制
dnf  install php php-fpm php-mysqlnd php-cli  php-gd php-mbstring php-xml php-bcmath php-ldap

2,上传zabbix-php-fpm.conf文件配置到/etc/php-fpm.d目录

Zabbix 组件服务启动

代码语言:javascript
复制
systemctl  start  php-fpm && systemctl  enable   php-fpm
systemctl  start  nginx  &&  systemctl   enable nginx
systemctl  restart  zabbix-server && systemctl    enable   zabbix-server

七、Zabbix Web 前端配置

拷贝zabbix web ui 配置文件到/usr/share/zabbix目录下

代码语言:javascript
复制
cp -rp  /opt/zabbix-6.0.27/ui /usr/share/zabbix
chown -R  nginx:nginx   /usr/share/zabbix/

Zabbix Web 初始化配置

八、Firewall 配置

代码语言:javascript
复制
firewall-cmd  --add-port={8080,10050,10051,3306}/tcp  --permanent
firewall-cmd  --reload

九、Zabbix Web 页面中文显示

代码语言:javascript
复制
Users settings--Profile--Language--Chinese(zh_CN)

十、Zabbix 6.0 Web UI 中文乱码

在Windows 系统中找到 C:\Windows\Fonts 中的楷体(常规)复制到 windows 桌面上,通过lrzsz 上传到 /usr/share/zabbix/assets/fonts 目录下

代码语言:javascript
复制
cd /usr/share/zabbix/assets/fonts
cp DejaVuSans.ttf DejaVuSans.ttf.bak
mv simkai.ttf DejaVuSans.ttf
chmod  755 DejaVuSans.ttf

十一、Chrony 时钟

Chrony是一个开源自由的网络时间协议NTP 的客户端和服务器软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,让计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。

Zabbix 部署对系统时钟有严格要求

1. 在Zabbix 在分布式部署时,Zabbix Server、 Proxy 和数据库节点之前需要保证时间一致,避免出现数据采集和触发器异常告警。

2. Zabbix agent active 主动发送数据给zabbix server/proxy 时使用本地时钟标记数据指标时间戳,当agent与server 时钟不一致时会导致zabbix 最新数据有偏差,还会导致触发器异常告警。

chronyd官方文档

https://chrony.tuxfamily.org/documentation.html

安装chronyd

dnf install chronyd

chronyd配置文件

vim /etc/chrony.conf

代码语言:javascript
复制
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
local stratum 10
logdir /var/log/chrony

启动chronyd服务

代码语言:javascript
复制
systemctl start chronyd && systemctl enable chronyd

查看时间同步状态

代码语言:javascript
复制
timedatectl status

开启网络时间同步

代码语言:javascript
复制
timedatectl set-ntp true

查看 ntp_servers

代码语言:javascript
复制
chronyc sources -v

强制同步下系统时钟

代码语言:javascript
复制
chronyc -a makestep
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • All-in-One部署
  • 分布式部署
  • All-in-One部署 Zabbix Server+MySQL+Nginx+PHP
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档