6. Zabbix应用

    简介

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

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

    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:///zabbix

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

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

    1 Ubuntu配置的更改

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

    1.1 仓库

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

    1.2 防火墙

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

    • 打开SSH端口(22 TCP);

    • 打开Zabbix agent (10050 TCP) 和 Zabbix trapper (10051 TCP) 端口;

    • 打开HTTP (80 TCP) 和 HTTPS (443 TCP) 端口;

    • 打开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.

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

    1.5 更改时区

    应用默认使用UTC作为系统时钟。如需更改时区,那么从/usr/share/zoneinfo中复制合适的文件到 /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 凭证 (登陆名:密码)

    系统:

    • appliance:zabbix

    数据库:

    • root:

    • zabbix:

    数据库密码在安装过程中随机生成。
    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”;

    2.4 配置保护

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

    要创建备份,则运行:

    1. sudo mysqldump zabbix | bzip2 -9 > dbdump.bz2

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

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

    1. bzcat dbdump.bz2 | sudo mysql zabbix

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

    3 前端访问

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

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

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

    1. service apache2 restart

    4 防火墙

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

    1. service iptables-persistent reload

    5 监控能力

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

    • SNMP

    • 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应用包可以进行升级。如要升级,则运行:

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

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

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

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

    8.1 增加可用磁盘空间

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

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

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

    1. fdisk /dev/sda

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

    1. u

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

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

    1. n
    2. p
    3. 1
    4. (accept default 63)
    5. (accept default max)

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

    1. w

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

    1. pvcreate /dev/sdb1

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

    检查新创建的物理卷:

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

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

    1. vgextend zabbix-vg /dev/sdb1

    检查“zabbix-vg”卷组:

    1. vgdisplay

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

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

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

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

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

    1. df -h

    9 特定格式说明

    9.1 Xen

    为XenServer转换镜像

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

    • 创建一个虚拟磁盘,磁盘大小至少要和镜像一样大。

    • 查找这块磁盘的UUID

    1. xe vdi-list params=all
    • 如果有许多磁盘,在创建磁盘时分配的那样,他们可以通过名称参数name-label进行过滤

    • 导入镜像

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

    9.2 VMware

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

    9.3 硬盘/闪存镜像 (raw)

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

      10 已知问题