如何在Ubuntu 16.04上使用Zabbix监视远程服务器

Zabbix是一种免费的开放源代码的企业级软件,用于监视系统和网络组件的可用性。Zabbix可以同时监视数千个服务器,虚拟机或网络组件。Zabbix可以监视与系统相关的几乎所有内容,例如CPU,内存,磁盘空间和IO,进程,网络,数据库,虚拟机和Web服务。如果向Zabbix提供了IPMI访问,则它还可以监视硬件,例如温度,电压等。

先决条件

在本教程中,我们将使用192.0.2.1Zabbix服务器的192.0.2.2公共IP地址和将要远程监视的Zabbix主机的公共IP地址。请确保将所有出现的示例IP地址替换为实际的公共IP地址。

使用指南如何更新Ubuntu 16.04更新基本系统。系统更新后,继续安装依赖项。

安装Apache和PHP

安装Zabbix Web时,它将自动为Apache Web服务器创建配置。

安装Apache Web服务器以服务Zabbix前端或Web UI。

sudo apt -y install apache2

启动Apache Web服务器,并使其在启动时自动启动。

sudo systemctl start apache2
sudo systemctl enable apache2

安装最新版本的PHP以及Zabbix所需的模块。

sudo apt -y install php php7.0 libapache2-mod-php7.0 php7.0-cli php7.0-gd php7.0-bcmath php7.0-ctype php7.0-xml php7.0-sockets php7.0-mbstring php7.0-gettext php7.0-ldap php7.0-pgsql

安装和配置PostgreSQL

PostgreSQL是一个对象关系数据库系统。在系统中添加PostgreSQL存储库。

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

导入存储库签名密钥,然后更新软件包列表。

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

安装PostgreSQL数据库服务器。

sudo apt -y install postgresql postgresql-contrib

启动PostgreSQL服务器,并使其在启动时自动启动。

sudo systemctl start postgresql
sudo systemctl enable postgresql

更改默认PostgreSQL用户的密码。

sudo passwd postgres

以PostgreSQL用户身份登录。

sudo su - postgres

为Zabbix创建一个新的PostgreSQL用户。

createuser zabbix

PostgreSQL提供了psql在数据库上运行查询的外壳。通过运行切换到PostgreSQL Shell。

psql

为Zabbix数据库的新创建的数据库用户设置密码。

ALTER USER zabbix WITH ENCRYPTED password 'StrongPassword';

为Zabbix创建一个新的数据库。

CREATE DATABASE zabbix OWNER zabbix;

psql外壳退出。

\q

sudo从当前postgres用户切换到该用户。

exit

安装Zabbix

Zabbix提供了Ubuntu的安装二进制文件,可以直接从Zabbix存储库安装。在系统中添加Zabbix存储库。

wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update

安装Zabbix serverZabbix web

sudo apt -y install zabbix-server-pgsql zabbix-frontend-php

导入随应用程序一起提供的PostgreSQL数据库。

zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | sudo -H -u zabbix bash -c 'psql -U zabbix zabbix'

您应该在输出末尾看到类似于以下内容的内容。

...
INSERT 0 1
INSERT 0 1
COMMIT

打开Zabbix配置文件以更新数据库详细信息。

sudo nano /etc/zabbix/zabbix_server.conf

查找以下行并根据您的数据库配置更新值。您将需要取消注释DBHostDBPort行。

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=StrongPassword
DBPort=5432

Zabbix自动为Apache安装虚拟主机文件。我们将需要配置虚拟主机以更新时区。

sudo nano /etc/apache2/conf-available/zabbix.conf

找到以下几行。

<IfModule mod_php7.c>
...
#php_value date.timezone Europe/Riga

根据您的时区更新行,如下所示。

<IfModule mod_php7.c>
...
php_value date.timezone Asia/Kolkata

现在重新启动Apache,以应用配置中的这些更改。

sudo systemctl restart apache2

另外,启动Zabbix服务器,并使其在引导时自动启动。

sudo systemctl start zabbix-server
sudo systemctl enable zabbix-server

您应该已经启动Zabbix服务器并运行它。您可以检查过程的状态。

sudo systemctl status zabbix-server

要访问管理仪表板,您可以http://192.0.2.1/zabbix使用自己喜欢的浏览器打开。您将看到欢迎消息。您应该在下一个界面上满足所有先决条件。请按照安装程序页面上的说明安装软件。安装软件后,请使用用户名Admin和密码登录zabbix。现在已安装Zabbix,并准备从Zabbix代理收集数据。

在服务器上设置代理

要监视安装了Zabbix的服务器,可以在服务器上设置代理。Zabbix代理将从Linux服务器收集事件数据,然后将其发送到Zabbix服务器。默认情况下,端口号10050用于将事件和数据发送到服务器。

安装Zabbix代理。

sudo apt -y install zabbix-agent

启动代理,并使其能够在引导时自动启动。

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

由于Zabbix代理和Zabbix服务器之间的通信是在本地完成的,因此无需设置任何加密。

在Zabbix服务器可以接收任何数据之前,您需要启用主机。登录到Zabbix服务器的Web管理仪表板,然后转到Configuration >> Host。您将看到Zabbix服务器主机的禁用条目。选择条目并单击Enable按钮以启用对Zabbix服务器应用程序和安装Zabbix服务器的基本系统的监视。

如何在Ubuntu 16.04上使用Zabbix监视远程服务器

远程Linux机器上的安装代理

远程Zabbix代理可以通过三种方法将事件发送到Zabbix服务器。第一种方法是使用未加密的连接,第二种方法是使用安全的预共享密钥。第三种也是最安全的方法是使用RSA证书对传输进行加密。

在继续在远程计算机上安装和配置Zabbix代理之前,我们需要在Zabbix服务器系统上生成证书。在本教程中,我们将使用自签名证书。

sudo用户身份在Zabbix服务器上运行以下命令

创建一个新目录来存储Zabbix密钥并生成CA的私钥。

mkdir ~/zabbix-keys && cd ~/zabbix-keys
openssl genrsa -aes256 -out zabbix-ca.key 4096

它将要求您输入密码保护私钥。生成私钥后,继续为CA生成证书。

openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt

提供私钥的密码。它将要求您提供有关您的国家,州,组织的一些详细信息。相应地提供详细信息。

user@vultr:~/zabbix-keys$ openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt
Enter pass phrase for zabbix-ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:My State
Locality Name (eg, city) []:My City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:My Unit
Common Name (e.g. server FQDN or YOUR name) []:Zabbix CA
Email Address []:mail@example.com

我们已经成功生成了CA证书。为Zabbix服务器生成私钥和CSR。

openssl genrsa -out zabbix-server.key 2048
openssl req -new -key zabbix-server.key -out zabbix-server.csr

运行以上命令时,请勿提供密码来加密私钥。使用CSR生成Zabbix服务器的证书。

openssl x509 -req -in zabbix-server.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-server.crt -days 1825 -sha256

同样,为Zabbix主机或代理生成私钥和CSR。

openssl genrsa -out zabbix-host1.key 2048
openssl req -new -key zabbix-host1.key -out zabbix-host1.csr

现在生成证书。

openssl x509 -req -in zabbix-host1.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-host1.crt -days 1460 -sha256

将证书复制到Zabbix配置目录中。

sudo mkdir /etc/zabbix/keys
sudo cp zabbix-ca.* zabbix-server.* /etc/zabbix/keys

向Zabbix用户提供证书的所有权。

sudo chown -R zabbix: /etc/zabbix/keys

打开Zabbix服务器的配置文件以更新证书的路径。

sudo nano /etc/zabbix/zabbix_server.conf

在配置文件中找到这些行,并进行如下所示的更改。

TLSCAFile=/etc/zabbix/keys/zabbix-ca.crt
TLSCertFile=/etc/zabbix/keys/zabbix-server.crt
TLSKeyFile=/etc/zabbix/keys/zabbix-server.key

保存文件并退出编辑器。重新启动Zabbix服务器,以使配置更改生效。

sudo systemctl restart zabbix-server

使用scp命令将证书复制到要监视的主机。

cd ~/zabbix-keys
scp zabbix-ca.crt zabbix-host1.* user@192.0.2.2:~

确保192.0.2.2用要在其上安装Zabbix代理的远程主机的实际IP地址替换。

安装Zabbix主机

现在,我们已将证书复制到主机系统,我们准备安装Zabbix代理。

从现在开始,所有命令都需要在您要监视的主机上执行

将Zabbix存储库添加到系统中。

wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.4-1+xenial_all.deb
sudo apt update

将Zabbix代理安装到系统中。

sudo apt -y install zabbix-agent

有关Zabbix的配置和设置,请转到CentOS 7的Zabbix指南的“ 安装Zabbix主机”步骤。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息