如何在CentOS 7上使用Zabbix安全地监视远程服务器

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

先决条件

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

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

安装Apache和PHP

安装Zabbix Web后,它将自动为Apache创建配置。

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

sudo yum -y install httpd

启动Apache并启用它以在启动时自动启动。

sudo systemctl start httpd
sudo systemctl enable httpd

添加并启用Remi存储库,因为默认YUM存储库包含旧版本的PHP。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

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

sudo yum -y install php php-cli php-gd php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-sockets php-mbstring php-gettext php-ldap php-pgsql php-pear-Net-Socket

安装和配置PostgreSQL

PostgreSQL是一个对象关系数据库系统。您将需要在系统中添加PostgreSQL存储库,因为默认的YUM存储库包含旧版本的PostgreSQL。

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

安装PostgreSQL数据库服务器。

sudo yum -y install postgresql96-server postgresql96-contrib

初始化数据库。

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

initdb 创建一个新的数据库集群,该集群是由单个服务器管理的一组数据库。

编辑pg_hba.conf以启用基于MD5的身份验证。

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

找到以下行,并改变peertrustidnetmd5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            idnet
# IPv6 local connections:
host    all             all             ::1/128                 idnet

更新后,配置应如下所示。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

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

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

将更password改为默认的PostgreSQL用户。

sudo passwd postgres

以PostgreSQL用户身份登录。

sudo su - postgres

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

createuser zabbix

切换到PostgreSQL shell。

psql

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

ALTER USER zabbix WITH ENCRYPTED password 'StrongPassword';

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

CREATE DATABASE zabbix OWNER zabbix;

psql外壳退出。

\q

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

exit

安装Zabbix

Zabbix提供了用于CentOS的二进制文件,可以直接从Zabbix存储库安装。将Zabbix存储库添加到您的系统。

sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

安装Zabbix serverZabbix web

sudo yum -y install zabbix-server-pgsql zabbix-web-pgsql 

导入PostgreSQL数据库。

zcat /usr/share/doc/zabbix-server-pgsql-3.4.*/create.sql.gz | 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安装虚拟主机文件。我们将需要配置虚拟主机以更新时区和PHP版本。

sudo nano /etc/httpd/conf.d/zabbix.conf

找到以下几行。

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

由于我们使用的是PHP版本7,因此您还需要更新mod_php版本。如下所示根据您的时区更新行。

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

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

sudo systemctl restart httpd

启动Zabbix服务器,并使它能够在启动时自动启动。

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

您应该现在正在运行Zabbix服务器。您可以通过运行此命令来检查进程的状态。

sudo systemctl status zabbix-server

修改防火墙以允许使用标准HTTPHTTPS端口。您还需要允许端口10051通过防火墙,Zabbix将使用该端口从远程计算机上运行的Zabbix代理获取事件。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --zone=public --permanent --add-port=10051/tcp
sudo firewall-cmd --reload

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

在服务器上设置Zabbix代理

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

安装Zabbix代理。

sudo yum -y install zabbix-agent

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

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

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

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

在远程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 passphrase 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) [XX]:IN
State or Province Name (full name) []:My State
Locality Name (eg, city) [Default City]:My City
Organization Name (eg, company) [Default Company Ltd]:My Organization
Organizational Unit Name (eg, section) []:My Unit
Common Name (eg, your name or your server's hostname) []:Zabbix CA
Email Address []:[email protected]

我们已经成功生成了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.* [email protected]:~

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

安装Zabbix主机

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

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

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

sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

将Zabbix代理安装到系统中。

sudo yum -y install zabbix-agent

将密钥和证书移动到Zabbix配置目录。

sudo mkdir /etc/zabbix/keys
sudo mv ~/zabbix-ca.crt ~/zabbix-host1.* /etc/zabbix/keys/

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

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

打开Zabbix代理的配置文件以更新服务器IP地址以及密钥和证书的路径。

sudo nano /etc/zabbix/zabbix_agentd.conf

找到以下行并进行必要的更改,以使它们看起来如下图所示。

Server=192.0.2.1                    # Replace with actual Zabbix server IP
ServerActive=192.0.2.1              # Replace with actual Zabbix server IP
Hostname=Zabbix host1               # Provide a appropriate name or hostname

主机名必须是未为任何其他主机系统指定的唯一字符串。请记下主机名,因为我们需要在Zabbix服务器中设置确切的主机名。

进一步,更新这些参数的值。

TLSConnect=cert
TLSAccept=cert
TLSCAFile=/etc/zabbix/keys/zabbix-ca.crt
TLSCertFile=/etc/zabbix/keys/zabbix-host1.crt
TLSKeyFile=/etc/zabbix/keys/zabbix-host1.key

现在,重新启动Zabbix代理并使它能够在启动时自动启动。

sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent

您已经在主机系统上成功配置了Zabbix代理。浏览Zabbix管理仪表板,https://192.0.2.1/zabbix以添加新配置的主机。

转到Configuration >> Hosts并单击右上角的Create Host按钮。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

create host接口上,提供主机名,该主机名必须与主机系统的Zabbix代理配置文件中配置的主机名完全相似。对于显示名称,您可以随意选择任何内容。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

选择要在其中添加系统的组。由于我们正在运行Zabbix代理来监视基本的Linux服务器,因此我们可以选择Linux服务器组。如果需要,还可以创建一个新组。

提供运行Zabbix代理的主机的IP地址。您可以提供主机的可选描述。

现在,转到Template新主机界面的选项卡,然后根据应用程序搜索模板。在我们的情况下,我们需要找到Template OS Linux。单击Add链接将模板分配给主机。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

最后,转到Encryption选项卡,Certificate为主机连接和主机连接选择。这样,将使用RSA证书对来自双方的通信进行加密。在IssuerSubject领域都是可选的。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

完成后,您可以单击Add按钮以将新主机添加到Zabbix服务器。几分钟后,ZBX可用性将变为绿色。这表示可以使用Zabbix代理并将主机上的事件主动从主机发送到Zabbix服务器,从而使主机可用。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

如果ZBX可用性变为red绿色而不是绿色,则表示出现了一些错误,主机无法将数据发送到服务器。在这种情况下,请在日志文件中查找错误,并相应地对错误进行故障排除。Zabbix服务器日志和Zabbix代理日志的路径为/var/log/zabbix/zabbix_server.log/var/log/zabbix/zabbix_agentd.log

您现在可以通过转到monitoring选项卡来监视主机。您可以在监视页面上查看问题,接收到的事件,实时图形以及更多信息。

如何在CentOS 7上使用Zabbix安全地监视远程服务器

结论

恭喜,您已经成功部署了Zabbix服务器实例并在远程主机上启用了监视。

您可以使用单个Zabbix实例监视中小型公司的整个基础架构。



Leave a Comment

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

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 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。