一、Zabbix的组件组成

1.服务端和agent

zabbix-server:Zabbix server 是整个 Zabbix 软件的核心程序。

Zabbix Server 负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是 Zabbix Agent 和 Proxy 报告系统可用性和完整性数据的核心组件。Server 自身可以通过简单服务远程检查网络服务(如Web服务器和邮件服务器)。
Zabbix Server是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将被发出通知给管理员。
基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。
Zabbix 的所有配置信息都存储在 Server 和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix 前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。

zabbix-agent:Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。

Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。

2.前端组件

zabbix-web-mysql-scl或者zabbix-web-pgsql-scl,取决于使用什么数据库。

zabbix-apache-conf-scl或者zabbix-nginx-conf-scl,取决于使用什么web服务器。

二、必要条件

MySQL版本5.7以上

yum groupinstall mariadb mariadb-client
#可用maraiadb代替mysql
#或正常安装mysql均可

关闭SELinux

vim /etc/selinux/config
SELINUX=disable
#配置文件禁用SELinux

setenforce 0
#临时禁用
getenforce
#查看selinux是否运行

配置防火墙

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10050/udp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=10051/udp
firewall-cmd --reload
#添加http服务以及监听端口

systemctl stop firewalld
systemctl disable firewalld
#停止firewall服务
#取消开机启动

三、设置阿里云镜像源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#国内阿里云源

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#Zabbix官方源,使用官方源由于网络问题会导致安装失败。


sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#将repo文件中的官方地址换成阿里云地址

vim  /etc/yum.repos.d/zabbix.repo
#编辑repo文件,将前端源开启
[zabbix-frontend]
enabled=1
#开启前端源

yum clean all
#清除yum缓存

我们查看一下zabbix.repo文件的内容

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

四、安装步骤

1.安装zabbix_server和agent

yum install zabbix-server-mysql zabbix-agent -y
#安装server和agent
#如需Agent2则使用zabbix-agent2安装

2.安装前端组件

#安装CentOS软件选集(SCL)
yum install -y centos-release-scl
#SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。SCL的创建就是为了给RHEL/CentOS用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。与之相对的是第三方源,它们可能会在已安装的包之间引起冲突。(更多详细信息请自行搜索)

yum install -y zabbix-web-mysql-scl zabbix-nginx-conf-scl
#在安装前,需要启动zabbix的前端源。这需要设置/etc/yum.repos.d/zabbix.repo中的[zabbix-frontend]下的Enabled=1。
#
#可以看到,这里使用MySQL作为数据库、使用Nginx作为Web服务器。

3.创建初始数据库

mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '12345';
mysql> flush privileges;
mysql> quit;

#创建一个zabbix库。
#创建一个zabbix用户。
#赋予所有权限。

4.导入初始架构和数据,系统将提示您输入新创建的密码。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#这里使用了zcat命令,其作用是不真正解压缩文件,就能显示压缩包中文件。

#导入问题
create.sql.gz这个库文件导入时,由于缺少USE zabbix,即未选择zabbix库,因此会报错。
yum install -y nano
#安装nano
gunzip create.sql.gz
#解压缩
nano create.sql
#使用nano编辑sql文件
USE zabbix;
#在第一行添加选择数据库的命令;
Ctrl+X键进入保存,输入y回车,再次回车即可保存退出。

cat create.sql |mysql -u zabbix -p 输入密码
#即可成功导入

5.配置Zabbix与数据库的连接

为Zabbix server配置数据库,编辑配置文件 /etc/zabbix/zabbix_server.conf

vim /etc/zabbix/zabbix_server.conf
DBPassword=password

DBSocker=/tmp/mysql.sock
#注意点:这里的mysql.sock路径需要与MySQL的my.cnf中的socket路径一致。
#否则会造成zabbix-server开启后虽然不报错,但是也不监听10051端口的问题。

#查看zabbix-server.log
vim /var/log/zabbix/zabbix_server.log

6.为Zabbix前端配置PHP

编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

取消注释,并配置listenserver_name

vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

# listen 80;
# server_name example.com;

#取消注释,使此配置生效。需要注意的是,这里需要配置域名,如果没有域名,会打开默认站点。
#可以将nginx的默认站点server端删除或注释掉。

vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf
#默认站点配置文件

并设置时区。

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
; php_value[date.timezone] = Asia/Shanghai

继续编辑配置文件

listen.acl_users = apache,nginx
#增加nginx用户

7.启动Zabbix

启动各项zabbix组件,并为它们设置开机自启:

systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

8.初始化

登陆到Zabbix前端界面,根据提示进行zabbix的初始化

五、添加一个Agent设备

1.安装Agent端

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#在客户端添加yum源

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#将服务器地址修改为阿里云地址

yum clean all && yum install -y zabbix-agent zabbix-sender
#清除yum缓存,安装agent端

2.修改配置文件

vim /etc/zabbix/zabbix_agentd.conf 
#注意:如果安装的agent2,则这里的配置文件名称为zabbix_agent2.conf

Server=<zabbix-server的ip地址>
ListenPort=10050
StartAgents=0 
ServerActive=<zabbix-server的ip地址>
Hostname=<自定义的主机名称>

#Server: 被动模式访问的zabbix-server的ip
#ServerActive: 主动模式访问的zabbix-server的ip
#StartAgents :zabbix_agentd用来处理被动检查的实例数量,如果设置为0,则禁用被动模式检查而且agent不再监听任何tcp端口

3.启动Agent服务

systemctl start zabbix-agent
#启动服务

systemctl enable zabbix-agent
#开机启动

4.在server端添加主机

菜单->配置->主机->创建主机

主机名:<必须与agent端配置文件中hostname一致>
客户端:<Agent端IP地址>
端口: 默认10050

模板选择:
template os linux by zabbix agent active

六、注意事项

图形显示页面,出现方格乱码的处理方法。

#字体获取方法
C:\Windows\Fonts目录下将宋体字体拷贝出来,并将后缀名修改为ttf。

#字体文件到zabbix的web端的fonts目录下
/usr/share/zabbix/assets/fonts

#修改zabbix配置文件
vim /usr/share/zabbix/include/defines.inc.php

#原内容如下:
define(‘ZBX_GRAPH_FONT_NAME’,        ‘graphfont’);
define(‘ZBX_FONT_NAME’, ‘graphfont’);

#修改成以下内容:
define(‘ZBX_GRAPH_FONT_NAME’,        ‘simsun’);
define(‘ZBX_FONT_NAME’, ‘simsun’);

#刷新图形显示页面
#即可正常显示文字

Zabbix数据库编码格式错误导致无法连接数据库。

首先修改数据库默认字符集及字符校验集

ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

然后修改表
找出字符检验集不对的表

SELECT CONCAT("ALTER TABLE ", TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;") AS ExecuteTheString
FROM information_schema.`COLUMNS`
WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_ci";

复制输出结果,并执行。例如以下两张表,一般会有很多。

ALTER TABLE acknowledges CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
ALTER TABLE actions CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;

标签: Zabbix, Monitor

添加新评论