Zabbix 安装与配置

什么是zabbix?

Zabbix是用于网络和应用程序的开源监控软件。 它提供对从服务器,虚拟机,网络设备和Web应用程序收集的数千个指标的实时监控。 这些指标可以帮助您确定IT基础架构的当前运行状况,并在客户投诉之前检测硬件或软件组件的问题。 有用的信息存储在数据库中,因此您可以随时分析数据并提高所提供服务的质量,或计划设备的升级。

Zabbix使用多种选项来收集指标,包括用户服务的无代理监控和客户端 - 服务器架构。 为了收集服务器度量标准,它使用受监视客户端上的小代理来收集数据并将其发送到Zabbix服务器。 Zabbix支持服务器和连接的客户端之间的加密通信,因此您的数据在不安全的网络上传输时受到保护。

Zabbix服务器将其数据存储在由MySQL , PostgreSQL或Oracle提供支持的关系数据库中。 您还可以将历史数据存储在nosql数据库中,如Elasticsearch和TimescaleDB 。 Zabbix提供Web界面,因此您可以查看数据和配置系统设置。

安装

服务器环境:ubuntu 18.04
数据库: postgresql
zabbix版本: 4.4

Zabbix官方提供了快速安装的脚本,因此我们可以借助官方提供的步骤,快速安装。

官方使用的是Apache Web服务器,由于现在流行的是Nginx作前端代理,后边会使用Nginx来替代Apache

安装zabbix 仓库

1
2
3
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
dpkg -i zabbix-release_4.4-1+bionic_all.deb
apt update

安装 Zabbix服务器、前端和 代理

1
apt -y install zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf php-pgsql zabbix-agent

初始化数据库

1
2
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

初始化数据库架构和数据:

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

配置Zabbix连接数据库

编辑zabbix配置文件: /etc/zabbix/zabbix_server.conf

1
DBPassword=password

配置php前端

编辑apache配置文件/etc/zabbix/apache.conf中的时区:

1
php_value date.timezone Europe/Riga

重启Zabbix Server和代理进程

1
2
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

替换Web服务器为Nginx

官方默认的Web服务器是Apache,但是很多时候我们服务器上使用的是Nginx,下面我们就来将Apache服务器替换为Nginx。

安装php-fpm

首先,我们要安装php-fpm来配合Nignx的使用:

1
2
3
sudo apt-get install php7.2-fpm
sudo apt-get install php7.2-mysql php7.2-mbstring php7.2-xml
sudo apt-get install php7.2-gd php7.2-curl php7.2-bcmath php7.2-ldap

然后我们需要再像Apache配置那样配置一遍php-fpm,编辑/etc/php/7.2/fpm/php.ini:

1
date.timezone = Asia/Shanghai

记住这个配置文件,再初始化frontend时还需要再次使用。

开启fpm的9000端口

编辑配置文件:sudo vim /etc/php/7.2/fpm/pool.d/www.conf:

1
2
;listen = /run/php/php7.2-fpm.sock
listen = 127.0.0.1:9000

将端口由unix domain sock替换为 tcp socket

然后重启php-fpm:

1
sudo service php7.2-fpm restart

配置Nginx 代理

1
2
3
4
5
6
7
8
9
10
11
12
13
server
{
listen 80;
server_name alibaba.com;
index index.html index.php;
root /usr/share/zabbix/;
location ~ .*\.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}

然后重载nginx:

1
nginx -s reload

配置

访问你的域名:http://xxx.com/zabbix 会让你开始配置frontend:

这里根据提示,修改php-fpm的配置文件,使之全部符合建议的要求。

配置完之后就可以登录了,zabbix默认的用户名是 Admin 密码 zabbix

在客户机上安装代理

配置完server,我们开始给需要被监控的客户机安装Agent:

Agent的安装前期和Server的一样,引入源,并更新源,之后,使用命令安装:

1
sudo apt install zabbix-agent

使用加密通信

客户端和服务器端的通讯肯定要使用加密算法,这里使用预共享密钥(PSK)来保护服务器和代理之间的连接。

首先,生成PSK:

1
sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

查看密钥,并复制待用:

1
cat /etc/zabbix/zabbix_agentd.psk

密钥看起来像这样:

1
12eb854dea38ac9ee7d1ded2d74cee6262b0a56710f6946f7913d674ab82cdd4

配置代理

配置代理使用安全连接:

1
sudo vim /etc/zabbix/zabbix_agentd.conf
  1. 首先配置服务器IP
1
2
3
4
5
6
7
8
9
10
11
...
### Option: Server
# List of comma delimited IP addresses (or hostnames) of Zabbix servers.
# Incoming connections will be accepted only from the hosts listed here.
# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=

Server=127.0.0.1

将Server值替换为你的Zabbix服务器地址.

2 . 接下来,找到配置与Zabbix服务器的安全连接的部分,并启用预共享密钥支持。 找到TLSConnect部分,如下所示:

1
2
3
4
5
6
7
8
9
10
11
### Option: TLSConnect
# How the agent should connect to server or proxy. Used for active checks.
# Only one value can be specified:
# unencrypted - connect without encryption
# psk - connect using TLS and a pre-shared key
# cert - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSConnect=unencrypted
...

将TLSConnect的值改为psk

  1. 同上面的步骤,给TLSPSKIdentity添加一个名称PSK 001

  2. 同上,将TLSPSKFile的值指向PSK文件地址:/etc/zabbix/zabbix_agentd.psk

保存并关闭文件。 现在,您可以重新启动Zabbix代理并将其设置为在引导时启动:

1
2
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent

将客户机添加到Zabbix服务器

登陆后,点击host,然后创建主机:

然后填写主机配置:

添加模板:

模板是一些预置的监控模板,根据自己的需要进行选择。

最后,是启用加密:

你的支持我的动力