# 6. Zabbix应用

#### 简介

除了手动安装或者重新使用现有的服务器来运行Zabbix外，用户可通过[download](http://www.zabbix.com/download.php#appliance)下载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特性进行构建。

#### - Ubuntu配置的更改

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

##### - 仓库

在*/etc/apt/sources.list*中添加了官方Zabbix
[仓库](/manual/installation/install_from_packages#debianubuntu) :

    ## 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

##### - 防火墙

此应用使用了预定义规则的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）连接。

##### - 额外的包

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

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

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

##### - 使用静态ip地址

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

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

::: noteclassic
有关其他可行选项的相关信息，参见官方Ubuntu
[文档](https://help.ubuntu.com/lts/serverguide/network-configuration.html).
:::

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

##### - 更改时区

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

    cp /usr/share/zoneinfo/Europe/Riga /etc/localtime

##### - 语言环境更改

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

-   包含语言: *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界面。

##### - 其他更改

-   网络被配置为使用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守护进程。

#### - Zabbix配置

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

##### - 凭证 (登陆名:密码)

系统:

-   appliance:zabbix

数据库:

-   root:<random>
-   zabbix:<random>

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

Zabbix前端:

-   Admin:zabbix

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

-   MySQL;
-   /etc/zabbix/zabbix\_server.conf;
-   /etc/zabbix/web/zabbix.conf.php.

##### - 文件位置

-   配置文件存放在 in **/etc/zabbix**.
-   Zabbix server, proxy 和 agent 日志文件存放在**/var/log/zabbix**.
-   Zabbix 前端存放在**/usr/share/zabbix**.
-   用户**zabbix**的Home目录是**/var/lib/zabbix**.

##### - Zabbix配置更改

-   Zabbix前端的服务器名称被设置为"Zabbix Appliance";
-   前端时区设置为：Europe/Riga
    (可在**/etc/apache2/conf-available/zabbix.conf**中修改);

##### - 配置保护

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

要创建备份，则运行：

    sudo mysqldump zabbix | bzip2 -9 > dbdump.bz2

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

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

    bzcat dbdump.bz2 | sudo mysql zabbix

::: noteimportant
在恢复时，确保Zabbix
server处于停止状态。
:::

#### - 前端访问

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

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

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

    service apache2 restart

#### - 防火墙

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

    service iptables-persistent reload

#### - 监控能力

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

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

#### - SNMP traps

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

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

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

#### - 升级

Zabbix应用包可以进行升级。如要升级，则运行：

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

#### - 命名, 初始化和其他脚本

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

    service zabbix-server status

如需要控制Zabbix agent守护进程，将 **server** 替换为
**agent**；如需要控制Zabbix proxy守护进程，则替换为 **proxy**。

##### - 增加可用磁盘空间

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

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

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

    fdisk /dev/sda

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

    u

::: noteimportant
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

#### - 特定格式说明

##### - Xen

**为XenServer转换镜像**

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

-   创建一个虚拟磁盘，磁盘大小至少要和镜像一样大。
-   查找这块磁盘的UUID

```{=html}
<!-- -->
```
    xe vdi-list params=all

-   如果有许多磁盘，在创建磁盘时分配的那样，他们可以通过名称参数*name-label*进行过滤
-   导入镜像

```{=html}
<!-- -->
```
    xe vdi-import filename="image.raw" uuid="<UUID>"

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

##### - VMware

*vmdk*格式的镜像可以直接被VMware
Player，Server和Workstation等产品使用。如需要在ESX，ESXi，vSphere中使用，必须使用
[VMware converter](http://www.vmware.com/products/converter/)进行转换。

##### - 硬盘/闪存镜像 (raw)

    dd if=./zabbix_appliance_3.4.0_x86_64.raw of=/dev/sdc bs=4k conv=fdatasync

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

#### - 已知问题
