Zabbix是用于网络和应用的开源监控软件。 它提供从服务器,虚拟机和任何其余类型的网络设备收集的数千个度量的实时监控。 这些指标能够帮助您肯定IT基础架构的当前运行情况,并在客户投诉以前检测硬件或软件组件的问题。 有用的信息存储在数据库中,您能够随着时间的推移分析数据,提升所提供服务的质量,或计划升级您的设备。php
Zabbix使用客户端 - 服务器架构,并在受监视客户端上使用一个小代理来收集数据并将其发送到Zabbix服务器。 Zabbix版本3支持服务器和链接的客户端之间的加密通讯,所以您的数据在不安全的网络上传输时受到保护。前端
Zabbix服务器将其数据存储在由MySQL,PostgreSQL或Oracle支持的关系数据库中。 它还提供了一个Web界面,您能够查看数据并配置系统设置。 在本教程中,咱们将配置两台机器。 一个将被配置为服务器,另外一个将做为您要监视的客户端。 服务器将使用MySQL数据库记录监控数据,并使用Apache来提供Web界面。mysql
要遵循本教程,您将须要:linux
首先,咱们须要在安装MySQL,Apache和PHP的服务器上安装Zabbix Server。 本教程中咱们将本机称为“Zabbix服务器”。 以非root用户身份登陆本机:web
ssh sammy@your_zabbix_server_ip_address
在安装Zabbix以前,咱们须要安装Zabbix须要的几个PHP模块。 首先,更新系统的可用软件包列表:
而后安装Zabbix须要的PHP模块:sudo apt-get update
sudo apt-get install php7.0-xml php7.0-bcmath php7.0-mbstring
如今咱们能够安装Zabbix。sql
Zabbix在Ubuntu的软件包管理器中可用,但它已通过时了,因此咱们将使用官方的Zabbix存储库来安装最新的稳定版本。 下载并安装存储库配置包:数据库
wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
您将看到如下输出:
更新包索引,以便包含新的存储库:
而后安装Zabbix服务器和Web前端与MySQL数据库支持:
Selecting previously unselected package zabbix-release. (Reading database ... 55276 files and directories currently installed.) Preparing to unpack zabbix-release_3.2-1+xenial_all.deb ... Unpacking zabbix-release (3.2-1+xenial) ... Setting up zabbix-release (3.2-1+xenial) ...sudo apt-get updatesudo apt-get install zabbix-server-mysql zabbix-frontend-php
咱们还要安装Zabbix代理,这样咱们就能够收集有关Zabbix服务器状态的数据。
sudo apt-get install zabbix-agent
在咱们可使用Zabbix以前,咱们必须设置一个数据库来保存Zabbix服务器从其代理收集的数据。
咱们须要建立一个新的MySQL数据库并填充一些基本信息,以使其适合Zabbix。 咱们还将为此数据库建立一个特定用户,所以Zabbix没有使用root
账户登陆到MySQL。apache
使用您在MySQL服务器安装期间设置的root密码做为root用户登陆MySQL:ubuntu
建立支持UTF-8字符的Zabbix数据库:mysql -uroot -p
而后建立一个Zabbix服务器将使用的用户,让它访问新的数据库,并为用户设置密码:create database zabbix character set utf8 collate utf8_bin;
而后应用这些新权限:
grant all privileges on zabbix.* to zabbix@localhost identified by 'your_password';flush privileges;
退出数据库控制台。
quit
接下来,咱们必须导入初始模式和数据。 Zabbix安装为咱们提供了一个为咱们设置的文件。vim
运行如下命令设置模式并将数据导入zabbix
数据库。 咱们将使用zcat
由于文件中的数据被压缩。
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
输入您提示时配置的zabbix MySQL用户的密码。
若是成功,此命令将不会输出任何错误。 若是您看到错误ERROR 1045 (28000): Access denied for user 'zabbix'@'localhost' (using password: YES)
那么请确保使用zabbix
用户的密码而不是root
用户。
为了使Zabbix服务器使用此数据库,您须要在Zabbix服务器配置文件中设置数据库密码。 在编辑器中打开配置文件:
sudo vim /etc/zabbix/zabbix_server.conf
文件中的这些注释说明了如何链接到数据库。 咱们须要将文件中的DBPassword
值设置为数据库用户的密码。 在这些注释下方添加一行以配置数据库:
DBPassword
这须要照顾Zabbix服务器配置,可是咱们必须对咱们的PHP设置进行一些修改,以使Zabbix Web界面正常工做。
DBPassword=your_zabbix_mysql_password
Zabbix Web界面是用PHP编写的,须要一些特殊的PHP服务器设置。 Zabbix安装过程建立了一个包含这些设置的Apache配置文件。 它位于目录/etc/zabbix
,由Apache自动加载。 咱们须要对这个文件作一个小的改动,因此打开它。
该文件包含知足Zabbix Web界面所须要的PHP设置。 您惟一须要作的更改是设置适当的时区,默认状况下会被注释掉。sudo nano /etc/zabbix/apache.conf
... <IfModule mod_php7.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga </IfModule>
取消注释上面突出显示的时区行,并将其更改成您的时区。 您可使用支持的时区列表为您找到正确的时区 。 而后保存并关闭文件。
如今从新启动Apache以应用这些新设置。
sudo systemctl restart apache2
而后检查Zabbix服务器是否正常运行:sudo systemctl start zabbix-server
您将看到如下状态:sudo systemctl status zabbix-server
最后,启动服务器启动时:● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: :active (running) since Thu 2017-06-08 06:40:43 UTC; 6s ago Process: 15201 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...
服务器已设置并链接到数据库。 如今咱们来设置web前端。
sudo systemctl enable zabbix-server
Web界面可以让咱们查看报告并添加要监视的主机,但须要一些初始设置才能使用。 启动浏览器并转到http://your_zabbix_server_ip_address /zabbix/
。 在第一个屏幕上,您将看到一个欢迎信息。 单击下一步继续。
在下一个屏幕上,您将看到列出运行Zabbix的全部先决条件的表。
此表中的全部值必须为OK ,所以请验证它们。 确保向下滚动并查看全部先决条件。 验证一切便可完成后,点击下一步继续。
下一个屏幕要求数据库链接信息
咱们向Zabbix服务器通报了咱们的数据库,但Zabbix Web界面也须要访问数据库来管理主机和读取数据。 所以,输入您在第2步中配置的MySQL凭据,而后单击下一步继续。
在下一个屏幕上,您能够将选项保留为默认值。
名称是可选的; 若是您有多个监控服务器,则它将在Web界面中用于区分一个服务器。 单击下一步继续。
下一个屏幕将显示预安装摘要,以便您能够确认一切正确。
单击下一步继续到最后的屏幕。
Web界面设置完成! 此过程建立配置文件/usr/share/zabbix/conf/zabbix.conf.php
,您能够在未来备份和使用。 单击完成以进入登陆屏幕。 默认用户为Admin ,密码为zabbix 。
在咱们登陆以前,让咱们在其余服务器上设置Zabbix代理。
如今咱们须要配置将监控数据发送到Zabbix服务器的代理软件。
登陆到第二台服务器,咱们称之为“受监视的服务器”。
而后,就像在Zabbix服务器上同样,运行如下命令来安装存储库配置包:ssh sammy@your_monitored_server_ip_address
接下来,更新包索引:wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
sudo apt-get update
而后安装Zabbix代理:
sudo apt-get install zabbix-agent
sudo nano /etc/zabbix/zabbix_agentd.conf
该文件中的每一个设置都经过整个文件中的资料性注释进行记录,但您只需编辑其中的一些。
首先你必须编辑Zabbix服务器的IP地址。 查找如下部分:
将默认值更改成Zabbix服务器的IP:
### 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
保存并关闭文件。 如今,您能够启动Zabbix代理并将其设置为在启动时启动:Server=your_zabbix_server_ip_address
为了很好的措施,请检查Zabbix代理是否正常运行:
sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent
您将看到如下状态,指示代理正在运行:
sudo systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2017-06-08 08:33:52 UTC; 4s ago Process: 18185 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) ...
咱们的代理如今能够将数据发送到Zabbix服务器。 可是为了使用它,咱们必须从服务器的Web控制台连接到它。
注意:若是使用UFW,请将其配置为容许链接到端口10050
:
您能够在Ubuntu 16.04中了解如何使用UFW设置防火墙的UFW 。
sudo ufw allow 10050/tcp
在咱们要监控的服务器上安装代理只是一半的过程。 咱们要监控的每一个主机须要在Zabbix服务器上注册,咱们能够经过Web界面进行操做。
经过导航到地址http:// your_zabbix_server_ip_address /zabbix/
登陆到Zabbix Server Web界面。
当您登陆后,单击配置 ,而后单击顶部导航栏中的主机 。 而后点击屏幕右上角的建立主机按钮。 这将打开主机配置页面。
调整主机名和IP地址以反映客户机的主机名和IP地址。 而后经过从列表中选择一个组或经过建立本身的组来将主机添加到组中。 主机能够在多个组中。 Linux服务器组是一个很好的默认选择。 添加该组后,单击“ 模板 ”选项卡。