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

・14 分钟阅读

使用不同的系统?

Zabbix是一个免费的开源企业就绪软件,用于监控系统和网络组件的可用性,Zabbix可以同时监控数千台服务器,虚拟机或网络组件,Zabbix可以监视与系统有关的几乎所有内容,比如,CPU,内存,磁盘空间和IO,进程,网络,数据库,虚拟机和Web服务,如果IPMI访问is Zabbix,那么它还可以监视诸如温度,电压等硬件。

前提条件

  • Ubuntu 16.04服务器实例,
  • 一个sudo用户

本教程将使用192.0.2.1作为Zabbix服务器的公共IP地址和192.0.2.2作为一个Zabbix主机的公共IP地址,我们将远程监控这个地址,请确保将所有实例的IP地址替换为你实际的公共IP地址。

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

安装Apache和PHP

安装Zabbix站点后,它会自动为Apache创建一个配置。

安装Apache服务器来服务Zabbix前端或web UI 。


sudo apt -y install apache2

启动Apache服务器,并且使它在启动时自动启动。


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 shell来在数据库上运行查询,运行时切换到PostgreSQL shell 。

 
psql

 

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


ALTER USER zabbix WITH ENCRYPTED password 'StrongPassword';

为Zabbix创建一个新数据库。


CREATE DATABASE zabbix OWNER zabbix;

psql shell退出。

 
q

 

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

 
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的服务器,可以在服务器上设置代理,代理将收集来自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服务器的基础系统的监视。

远程Linux机器上的安装代理

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

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

在Zabbix服务器上运行以下命令作为sudo用户。

为存储Zabbix密钥创建一个新目录,并为它生成私有密钥。


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

它会要求你输入密码来保护私钥,生成私钥后,继续生成证书的证书。


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

类似地,生成私钥和CSR for Zabbix主机或代理。


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的配置和设置,请前往Zabbix的centOS 7安装指南。

Anne655 profile image