什么是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 | wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb |
安装 Zabbix服务器、前端和 代理
1 | apt -y install zabbix-server-pgsql zabbix-frontend-php zabbix-apache-conf php-pgsql zabbix-agent |
初始化数据库
1 | sudo -u postgres createuser --pwprompt 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 | systemctl restart zabbix-server zabbix-agent apache2 |
替换Web服务器为Nginx
官方默认的Web服务器是Apache,但是很多时候我们服务器上使用的是Nginx,下面我们就来将Apache服务器替换为Nginx。
安装php-fpm
首先,我们要安装php-fpm来配合Nignx的使用:
1 | sudo apt-get install php7.2-fpm |
然后我们需要再像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 | ;listen = /run/php/php7.2-fpm.sock |
将端口由unix domain sock替换为 tcp socket
然后重启php-fpm:
1 | sudo service php7.2-fpm restart |
配置Nginx 代理
1 | server |
然后重载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 |
- 首先配置服务器IP
1 | ... |
将Server值替换为你的Zabbix服务器地址.
2 . 接下来,找到配置与Zabbix服务器的安全连接的部分,并启用预共享密钥支持。 找到TLSConnect部分,如下所示:
1 | ### Option: TLSConnect |
将TLSConnect的值改为psk
同上面的步骤,给TLSPSKIdentity添加一个名称PSK 001
同上步骤,设置TLSAccept=psk
同上,将TLSPSKFile的值指向PSK文件地址:/etc/zabbix/zabbix_agentd.psk
保存并关闭文件。 现在,您可以重新启动Zabbix代理并将其设置为在引导时启动:
1 | sudo systemctl restart zabbix-agent |
将客户机添加到Zabbix服务器
登陆后,点击host,然后创建主机:
然后填写主机配置:
添加模板:
模板是一些预置的监控模板,根据自己的需要进行选择。
最后,是启用加密: