2022 Zabbix中国峰会
2022 Zabbix中国峰会

6. Zabbix应用

简介

除了手动安装或者重新使用现有的服务器来运行Zabbix外,用户可通过download下载Zabbix应用或者包含Zabbix应用的光盘镜像。Zabbix server (MySQL), Zabbix server (PostgreSQL), Zabbix proxy (MySQL) 以及Zabbix proxy (SQLite 3) 可使用Zabbix应用光盘,进行即时部署。

Zabbix应用虚拟机已备好MySQL数据库以支持Zabbix server,且是通过使用Zabbix应用安装光盘构建而成。

|<| |<| |-|

|<| |<| |-|

Zabbix应用和安装CD版本均基于下列Ubuntu版本:

Zabbix应用版本 Ubu tu版本
3.4.0 14.04.3

Zabbix应用以下列格式提供:

  • vmdk (VMware/Virtualbox)
  • OVF (Open Virtualisation Format)
  • KVM
  • HDD/闪存镜像, USE闪存盘
  • Live CD/DVD
  • Xen guest
  • Microsoft VHD (Azure)
  • Microsoft VHD (Hyper-V)

如需运行,启动应用,使用浏览器访问其通过访问动态主机配置协议获得的IP: http://<host_ip>/zabbix

Zabbix server在这个环境下已经配置完成,而且运行在MySQL数据库上。同时也提供了可用的前端。

这个应用使用了名为Preseed文件的标准Ubuntu/Debian特性进行构建。

1 Ubuntu配置的更改

这里更改了一些Ubuntu的基础配置。

1.1 仓库

/etc/apt/sources.list中添加了官方Zabbix 仓库 :

## Zabbix repository
       deb http://repo.zabbix.com/zabbix/3.4/ubuntu trusty main
       deb-src http://repo.zabbix.com/zabbix/3.4/ubuntu trusty main
1.2 防火墙

此应用使用了预定义规则的iptables防火墙:

  • 打开SSH端口(22 TCP);
  • 打开Zabbix agent (10050 TCP) 和 Zabbix trapper (10051 TCP) 端口;
  • 打开HTTP (80 TCP) 和 HTTPS (443 TCP) 端口;
  • 打开SNMP trap 端口 (162 UDP);
  • 打开NTP端口(123 UDP)的出向(outgoing)连接;
  • ICMP pakets限制为每秒5个数据包;
  • 丢弃所有其他入向(incoming)连接。
1.3 额外的包

通常来说,Zabbix已经结合的多种的基础工具使其工作和监控更容易:

  • iptables-persistent
  • mc
  • htop
  • snmptrapfmt
  • snmp-mibs-downloader

Zabbix使用了其中的一些包,另外一些用以帮助用户配置/管理应用设置。

1.4 使用静态ip地址

默认情况下,设备使用DHCP来获取IP地址。静态地址详细说明:

  • 以root用户身份登陆;
  • 在你最擅用的编辑器中打开/etc/network/interfaces 文件;
  • iface eth0 inet dhcpiface eth0 inet static
  • iface eth0 inet static之后添加一下行:
    • address <应用的IP>
    • netmask <网络掩码>
    • gateway <网关地址>
  • 执行命令 sudo ifdown eth0 && sudo ifup eth0.

有关其他可行选项的相关信息,参见官方Ubuntu 文档.

要配置DNS,在/etc/resolv.conf中添加名称服务器条目,在每一行单独指定名称服务器:nameserver 192.168.1.2

1.5 更改时区

应用默认使用UTC作为系统时钟。如需更改时区,那么从/usr/share/zoneinfo中复制合适的文件到 /etc/localtime中,例如:

cp /usr/share/zoneinfo/Europe/Riga /etc/localtime
1.6 语言环境更改

这个应用包含了一些语言环境设置更改:

  • 包含语言: en_US.UTF-8, ru_RU.UTF-8, ja_JP.UTF-8, cs_CZ.UTF-8, ko_KR.UTF-8, it_IT.UTF-8,
    pt_BR.UTF-8, sk_SK.UTF-8, uk_UA.UTF-8, fr_FR.UTF-8, pl.UTF-8;
  • 默认语言环境是en_US.UTF-8.

这些更改都须支持多语种Zabbix WEB界面。

1.7 其他更改
  • 网络被配置为使用DHCP来获取IP地址;
  • fping工具被设置为拥有4710权限,且由zabbix – suid组所有,只允许由Zabbix组使用
  • ntpd 配置为与公有NTP服务器进行同步: ntp.ubuntu.com;
  • LVM逻辑卷管理使用了ext4文件系统;
  • "UseDNS no" 添加到SSH服务配置文件/etc/ssh/sshd_config以避免长时间SSH连接等待;文件系统;
  • /etc/default/snmpd 配置文件中禁用了snmpd守护进程。

2 Zabbix配置

Zabbix应用在安装过程中使用了下列密码和配置:

2.1 凭证 (登陆名:密码)

系统:

  • root:zabbix

数据库:

  • root:<random>
  • zabbix:<random>

数据库密码在安装过程中随机生成。
Root密码存放在/root/.my.cnf文件中,在"root"账户下无需输入密码。

Zabbix前端:

  • Admin:zabbix

要更改数据库用户密码,需在以下位置更改:

  • MySQL;
  • /etc/zabbix/zabbix_server.conf;
  • /etc/zabbix/web/zabbix.conf.php.
2.2 文件位置
  • 配置文件存放在 in /etc/zabbix.
  • Zabbix server, proxy 和 agent 日志文件存放在/var/log/zabbix.
  • Zabbix 前端存放在/usr/share/zabbix.
  • 用户zabbix的Home目录是/var/lib/zabbix.
2.3 Zabbix配置更改
  • Zabbix前端的服务器名称被设置为"Zabbix Appliance";
  • 前端时区设置为:Europe/Riga (可在/etc/apache2/conf-available/zabbix.conf中修改);
2.4 配置保护

如果您正在运行该应用的Live CD/DVD版本,或者由于其他原因无法使用持久化存储,你可以备份整个数据库,包括所有配置和收集到的数据。

要创建备份,则运行:

sudo mysqldump zabbix | bzip2 -9 > dbdump.bz2

现在你可以将文件dbdump.bz2传输到另一台机器。

要想从备份中进行恢复,将其传输到应用上并执行

bzcat dbdump.bz2 | sudo mysql zabbix

在恢复时,确保Zabbix server处于停止状态。

3 前端访问

默认前端可以通过任何地方进行访问。

可通过 http://<host>/zabbix访问前端。

可在/etc/apache2/conf-available/zabbix.conf中定制,修改该文件后需要重启web服务器。为此,以root用户通过SSH登陆并执行:

service apache2 restart

4 防火墙

默认情况下,只有更改条目中所列出的端口是打开的。要打开额外端口,只需修改 "/etc/iptables/rules.v4" or "/etc/iptables/rules.v6" 文件,并重新加载防火墙规则:

service iptables-persistent reload

5 监控能力

Zabbix安装程序支持下列功能:

  • SNMP
  • IPMI
  • Web 监控
  • VMware 监控
  • Jabber 通知
  • EZ Texting 通知
  • ODBC
  • SSH2
  • IPv6
  • SNMP Traps
  • Zabbix Java Gateway

6 SNMP traps

Zabbix应用使用snmptrapfmt处理SNMP trap。它被配置为接受来自于所有地方的任何trap。

不要求进行身份认证。如果您希望启用认证,需要更改/etc/snmp/snmptrapd.conf文件并指定所需的认证配置。

所有的trap存放在/var/log/zabbix/snmptrapfmt.log文件中,它由logrotate按2GB的文件大小轮询存放。

7 升级

Zabbix应用包可以进行升级。如要升级,则运行:

sudo apt install --only-upgrade 'zabbix.*'

8 命名, 初始化和其他脚本

已提供适当的初始脚本。要想控制Zabbix server, 运行以下任一程序:

service zabbix-server status

如需要控制Zabbix agent守护进程,将 server 替换为 agent;如需要控制Zabbix proxy守护进程,则替换为 proxy

8.1 增加可用磁盘空间

<note warning>在尝试任何步骤之前,请创建所有数据备份。 :::

设备中可用磁盘空间可能不够,这种情况下,可以扩展磁盘,为此,可首先在虚拟化环境中拓展块设备,然后执行以下步骤:

启动fdisk更改分区大小。以root用户运行:

fdisk /dev/sda

这将在磁盘sda上运行fdisk。然后去使用一下命令切换分区:

u

D不要通过输入 c来禁用DOS兼容模式,否则将破坏分区。

之后删除现有分区,并创建一个合乎需求的新分区。多数情况下,你会接受可用最大值,这会将文件系统扩展到你为虚拟磁盘提供的任一可用大小。为此,在fdisk提示中输入以下序列:

d
       n
       p
       1
       (accept default 63)
       (accept default max)

如果你想为额外分区(swap等)留些空间,你可以在last sector中输入另一个值,完成后,发出以下指令以保存更改:

w

创建分区后(新增磁盘或者扩展现有的磁盘),创建物理卷:

pvcreate /dev/sdb1

<note warning>示例中使用了名为/dev/sdb1的分区,在你的环境下,磁盘名称和分区号可能不同。你可以使用fdisk -l /dev/sdb命令检查分区号。 :::

检查新创建的物理卷:

pvdisplay /dev/sdb1

检查可用的物理卷。这里必须有两个卷:zabbix-vg和新创建的:

pvs

用新创建的物理卷扩展现有的卷组:

vgextend zabbix-vg /dev/sdb1

检查“zabbix-vg”卷组:

vgdisplay

使用空闲的PE空间扩展你的逻辑卷:

lvextend -l +100%FREE /dev/mapper/zabbix--vg-root

重新分配root卷空间(可在系统中实时完成):

resize2fs /dev/mapper/zabbix--vg-root

重新启动虚拟机(因为我们修改的分区目前正在使用)。如此,现在文件系统应扩展到分区大小。检查 "/dev/mapper/zabbix--vg-root" 卷:

df -h

9 特定格式说明

9.1 Xen

为XenServer转换镜像

通过Citrix Xenserver使用Xen镜像,则需要转换磁盘镜像。因此,你需要:

  • 创建一个虚拟磁盘,磁盘大小至少要和镜像一样大。
  • 查找这块磁盘的UUID
xe vdi-list params=all
  • 如果有许多磁盘,在创建磁盘时分配的那样,他们可以通过名称参数name-label进行过滤
  • 导入镜像
xe vdi-import filename="image.raw" uuid="<UUID>"

上述操作步骤引用于Brian Radford的博客

9.2 VMware

vmdk格式的镜像可以直接被VMware Player,Server和Workstation等产品使用。如需要在ESX,ESXi,vSphere中使用,必须使用 VMware converter进行转换。

9.3 硬盘/闪存镜像 (raw)
dd if=./zabbix_appliance_3.4.0_x86_64.raw of=/dev/sdc bs=4k conv=fdatasync

使用闪存/硬盘设备的路径,替换/dev/sdc

10 已知问题