用Ubuntu 20.04来构建Zabbix

首先

设计和构建网络后,长期运营即开始。网络设备由于是机械,自然会出现故障。未预料到的流量导致通信质量下降。需要以某种方式持续观察和监控,并进行必要的维护。

Cisco和其他厂商都提供了自己的监控系统,但是随意使用会造成供应商锁定。

理想情况下,希望有独立于网络设备供应商的、具有开放源代码并由某个实体提供维护的解决方案。因此我们选择了Zabbix。

在構建 Zabbix 伺服器。

基本上按照Zabbix的官方网站即可。然而,要使Zabbix工作,您需要自己准备Web服务器和数据库服务器,但是没有提供相关信息。虽然有文档可用,但日语版仅限Zabbix2.2,对本地化信息无帮助。很难受。

目标环境 (mù

    • Zabbix 5.0 LTS

 

    • Ubuntu 20.04

 

    • PostgreSQL 12.5

 

    Apache HTTP Server 2.4.41

在Ubuntu 20.04中,使用了PostgreSQL/Apache HTTP Server的标准存储库版本。
可以选择使用MariaDB或PostgreSQL作为数据库。虽然大多数示例都使用了MariaDB,但在这里我们选择了PostgreSQL。

由於平時使用 PostgreSQL,所以做出了這個判斷。但是,在進行構建調查時,發現 Zabbix 的數據庫由於有大量的更新處理,與其他主要以查詢為主的數據庫不宜共存。如果是單獨構建的話,也許不應該堅持使用 PostgreSQL。

安装相关的软件是构建所需的。

sudo apt install postgresql postgresql-contrib
sudo apt install apache2 libapache2-mod-php 

安装PostgreSQL/Apache HTTP服务器。具体安装步骤如下。

sudo apt install postgresql postgresql-contrib libpq5 postgresql-12 postgresql-client-12 postgresql-client-common postgresql-common sysstat
sudo apt install apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php libapache2-mod-php7.4 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 php7.4-cli php7.4-json php7.4-opcache php7.4-readline

在运行Zabbix之后,还有其他可以安装的软件包来处理故障和添加功能,但这些会在稍后处理。

Zabbix主体的安装

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
sudo apt update
sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.4-pgsql zabbix-agent zabbix-apache-conf

这是按照官方网站的要求。

在PostgreSQL中创建一个用于Zabbix的数据库。

sudo -u postgres createuser --pwprompt zabbix

创建Zabbix使用的数据库。–pwprompt是一个选项,用于创建密码。执行此命令时,将要求确定使用数据库时的密码。所以,请随便配置。

sudo -u postgres createdb -O zabbix zabbix

使用Zabbix用户权限创建名为zabbix的数据库。

zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

create.sql.gz 是包含在先前安装的zabbix-server-pgsql中的文件。
解压后会显示很长的SQL。将其导入到PostgreSQL的zabbix数据库中。

在Zabbix 6.0中,文件的路径发生了以下变化。

 zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Zabbix 启动所需的设置。

/etc/zabbix/zabbix_server.conf 的中文本地化的寫法:

### Option: DBPassword
#       Database password.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword= ← コメントアウトを解除し、先に設定したZabbix DB の Password を入力。

/etc/zabbix/apache.conf 可以在中文中翻译为「/etc/zabbix/apache.conf」。

<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all

    <IfModule mod_php5.c>
     (snip)
        # php_value date.timezone Europe/Riga ← コメントアウトを解除し、Asia/Tokyoとかにする
    </IfModule>
    <IfModule mod_php7.c>
     (snip)
        # php_value date.timezone Europe/Riga ← コメントアウトを解除し、Asia/Tokyoとかにする
    </IfModule>
</Directory>

在这里编辑的/etc/zabbix/apache.conf文件已经包含在zabbix-apache-conf软件包中。

Zabbix 启动

sudo  systemctl restart zabbix-server zabbix-agent apache2
sudo  systemctl enable zabbix-server zabbix-agent apache2

当以 http://服务器地址/zabbix/ 访问时,将启动Zabbix的安装向导。默认的登录帐户是Admin/zabbix。

Zabbixの起動画面

最初的定制化

【前期准备】针对Linux服务器本身进行日语支持。

要进行Zabbix的日语支持,需要确认Zabbix所运行的服务器本身是否支持日语。

$ locale -a |grep JP
ja_JP.utf8

如果已经注释掉,请编辑/etc/locale.gen,并解除注释。

$ sudo local-gen
Generating locales (this might take a while)...
  en_AG.UTF-8... done
(snip)
  ja_JP.UTF-8... done
Generation complete.

将Zabbix软件汉化为日语。

可以通过左下方的“用户设置”菜单进行更改。

将图表的日文化

存在Graph表示,该表示无法正确显示使用带域部分的问题。问题在于Zabbix的Graph表示的字体不支持日语。

sudo apt install fonts-takao-pgothic
sudo update-alternatives --install /usr/share/zabbix/assets/fonts/graphfont.ttf zabbix-frontend-font /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf 20

在RHEL的例子中,我们看到了使用ln直接修改的方法,但在Ubuntu中,我们更加推荐使用update-alternatives的方式。

SNMP陷阱接收

在Zabbix中,可以接收SNMP陷阱。然而,Zabbix本身无法直接接收,而是通过snmptrapd接收并通过snmptt进行格式化后显示。Zabbix本身作为snmptrapd的包装器而运行。在4.0/5.0版本中也是如此,它被设计为遵循这种策略。

但是,在Zabbix中处理SNMP Trap非常困难,实现方法非常复杂。我已在另一篇文章中整理了。

 

广告
将在 10 秒后关闭
bannerAds