Zabbix、Prometheus和Grafana 是现代IT监控方案中的三款最受欢迎的开源软件。它们是由不同的开发人员团队创建的,但可以集成在一起提供完整的监控解决方案。以下将介绍 Zabbix、Prometheus和Grafana 的主要特点和功能。
- Zabbix
Zabbix 是一种开源的网络监控和报告工具,它非常适用于企业级应用。它有一个强大而灵活的数据收集引擎,可以监控各种不同的服务器、主机和服务。Zabbix 能够监测丰富的指标,包括系统资源消耗、网络流量和性能指标,以及各种应用程序和服务的状态和运行状况。
Zabbix 通过三个主要组件提供其功能:
- Zabbix Server: 提供监控系统及报告生成。
- Zabbix Agent: 在被监测的目标设备上运行,负责向 Zabbix Server 提供监测数据的任务。
- Zabbix GUI: 是一个基于 Web 的控制面板,提供对 Zabbix Server 和 Agent 进行配置的功能。
Zabbix 的主要特点包括:
- 支持高度可定制化的警报、通知和预警操作。
- 支持现代化的 IT 环境,如云基础设施和容器。
- 可扩展性高,可以添加自定义数据监测项和自动发现功能。
- 使用友好且简洁的界面。
- Prometheus
Prometheus 是一种基于度量收集的开源监控系统。它使用时序数据库来存储收集的数据,并提供了一组灵活的查询语言和可视化组件来处理和显示数据。Prometheus 可以监测各种应用程序、网络服务和基础组件,例如数据库、操作系统和云基础设施。
Prometheus 通过以下几个核心组件来提供其功能:
- Prometheus Server: 负责从被监测的目标系统中收集度量数据,并将其存储在时序数据库中。
- Exporters: 用于暴露特定服务的指标数据,包括应用程序、数据库和处理器等。
- Prometheus Query Language: 用于查询和分析存储在时序数据库中的监测数据。
- Grafana: 提供可视化组件,以便用户可以轻松地以图形的方式查看数据。
Prometheus 的主要特点包括:
- 支持广泛的数据集和指标。
- 具有高可扩展性的设计。
- 提供强大的查询语言 PromQL。
- 具有灵活而易于使用的警报和通知功能。
- 可与 Kubernetes 进行语义化集成。
- Grafana
Grafana 是一款用于创建可视化图形和可交互面板的开源工具。Grafana 支持各种不同的数据源,这些数据源包括 Prometheus、Graphite、Elasticsearch、InfluxDB 等。Grafana 可以作为独立的工具使用,也可以与其他监测解决方案进行集成。在与Prometheus和Zabbix 结合使用时,Grafana 通常用于显示监控数据,因为它提供了易于自定义和修改的自适应面板。
Grafana 的主要特点包括:
- 提供丰富的可视化组件和面板,支持图表、计量表和仪表板等不同的数据可视化方式。
- 具有强大的查询编辑器和警报和通知功能。
- 提供轻松的集成和高度可定制化的插件和扩展功能。
- 支持各种不同的数据源,并提供易于使用的数据源管理器。
总结
Zabbix、Prometheus和Grafana分别为 IT 监测工作的不同领域提供了解决方案,提供了强大而灵活的数据显示和分析工具,易于管理和使用。虽然这些软件都有自己的长处和短处,但它们的组合可以提供一个完整的监测解决方案,适用于现代企业级 IT 系统和服务。
本文将提供一份全网最新最完整的 Zabbix 安装教程,供大家参考
一、安装必要软件
在开始安装 Zabbix 之前,您需要保证服务器上安装了以下软件:
- PHP(版本 5.6 及以上)
- Apache 或 Nginx
- MySQL
如果您没有安装上述软件,请在命令行中输入以下命令安装:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install wget nginx curl unzip -y
二、安装 Zabbix 6.0 TLS
- 确保您的系统上已安装 LAMP 或 LEMP 环境和 PHP 扩展。您可以通过以下命令安装这些软件包:
sudo apt-get install apache2 mariadb-server php php-mysql php-fpm php-gd php-ldap php-xml php-mbstring php-bcmath
- 接下来,您可以使用以下命令添加 Zabbix 存储库并安装 Zabbix 6.0 LTS:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
sudo apt-get update
sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
在安装过程中,您需要设置 MariaDB 数据库密码和 Zabbix 管理员密码为 zabbix@cn0827!2023
安装 Grafana
使用以下命令下载和安装 Grafana:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana
接下来,使用以下命令启动 Grafana:
sudo systemctl daemon-reload
sudo systemctl start grafana
sudo systemctl enable grafana
Grafana 默认端口为 3000。您可以在浏览器中访问 http://<服务器IP地址>:3000 登录 Grafana,默认凭据为 admin/admin。
安装 Prometheus
下载和安装 Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64/
在安装 Prometheus 后,您需要为其创建一个 systemd 服务,以便它在系统启动时自动启动。您可以使用以下命令创建一个 systemd 服务:
vim /etc/systemd/system/prometheus.service
将以下内容粘贴到新文件中并保存:
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/usr/local/share/prometheus/consoles \
--web.console.libraries=/usr/local/share/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
接下来,您需要创建一个使用 Prometheus 的用户:
sudo useradd -rs /bin/false prometheus
然后,创建 Prometheus 配置文件和数据存储目录,并设置所需的权限:
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus
然后,创建 Prometheus 配置文件 Prometheus.yml:
vim /etc/prometheus/prometheus.yml
将以下内容粘贴到新文件中并保存:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
- job_name: 'blackbox_exporter'
scrape_interval: 60s
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- http://localhost:8080
- http://localhost:8081
labels:
group: 'example'
上述配置文件将 Prometheus 配置为:
- 监控本身;
- 监控 Node Exporter;
- 监控 Blackbox Exporter;
- 配置 Alertmanager。
完成所有步骤后,使用以下命令启动 Prometheus:
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
安装 nginx。
使用以下命令安装和启动 nginx:
sudo apt-get install nginx
sudo systemctl start nginx
sudo systemctl enable nginx
配置 Location 和密码保护。
在 Nginx 中,您可以使用 Location 块来配置不同的 URL 路径。例如,对于 Zabbix 6.0,在 Nginx 中的 Location 块可以如下所示:
location /zabbix {
alias /usr/share/zabbix;
index index.php;
location ~ ^/zabbix/(.+\.php)$ {
fastcgi_split_path_info ^(/zabbix)(/.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ ^/zabbix/(.+)$ {
alias /usr/share/zabbix/$1;
autoindex on;
}
}
并且对应的密码保护配置可以如下所示:
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd <your_username>
其中,您需要将 <your_username>
替换为您希望用作访问保护的用户名。系统将提示您输入密码。
然后,您可以在 Nginx 配置文件中添加以下内容,以保护特定 URL:
location /zabbix {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
alias /usr/share/zabbix;
index index.php;
# ...
}
在使用 Zabbix 6.0 时,您可以使用相似的位置块和密码保护配置。
完成所有步骤后,您可以在浏览器中访问 http://<服务器IP地址>/zabbix 和 http://<服务器IP地址>:3000 登录 Zabbix 和 Grafana。在 Prometheus 中,您可以在浏览器中访问 http://<服务器IP地址>:9090 来查看 Prometheus 状态和指标。
现在您已经完成 Zabbix 的安装和配置。通过浏览器输入服务器 IP 地址或域名,进入 Zabbix 的登录界面。使用默认的用户名 "Admin" 和密码 "zabbix" 登录,进入 Zabbix 的控制面板。现在,您可以使用 Zabbix 来监控服务器和各种应用程序的性能和可用性。
流程如上,在整个过程中,都是简单的、有序地配置各种必要组件。Zabbix 带来的好处是您可以轻松地监控网络系统,监控任意设备并获得洞察。Zabbix 还能够通过提醒和自动化机制使运维更高效。
当然,对于 Zabbix 的配置来说,这份小教程远不能涵盖所有的情况。不过,我们相信,本文所提供的 Zabbix 安装教程将成为您在日后探索和使用 Zabbix 的好帮手。