Prometheus与Zabbx的对比
Zabbix | Prometheus |
---|---|
后端用C开发,界面用PHP开发,定制化难度很高。 | 后端用golang开发,前端是Grafana,JSON编辑即可解决定制化难度较低。 |
6.0支持单个Zabbix实例监控超过10万个业务服务 | 支持更大的集群规模,速度也更快。 |
更适合监控物理机环境 | 更适合云环的监控,对Openstack,kubernetes有更好的集成。 |
监控数据存储在关系型数据库内,如MySQL,很难从现有数据中扩展维度 | 监控数据存储在基于时间序列的数据库内,便 于对已有数据进行新的聚合。十万级监控数据,Prometheus数据查询速率比Zabbix更快 |
安装简单,zabbixserver一个软件 包中包括了所有服务端功能 | 安装相对复杂,监控、告警和界面都分属于不同的组件。 |
图形化界面比较成熟,界面上基本上能完成全部的配置操作。 | 界面相对较弱,很多配置需要修改配置文件。 |
发展时间更长,对于很多监控场景,都 有现成的解决方案 | 2015年后开始快速发展,发展时间短,但现在也非常的成熟。 |
总结
实在不知道怎么选?参考如下:
物理机、硬件设备的监控用Zabbix比较多,而docker容器,Kubernetes监控企业用Prometheus多。云服务器厂商自带有监控系统,有的监控不全面,也可以搭配zabbix和Prometheus来一起使用。
1.现有的Zabbix的版本
版本名称 | 发布是期 | 全面支持期限 | 最低限度支持期限 |
---|---|---|---|
Zabbix6.2 | May30.2022 | Nov 30.2022 | Dec31,2022 |
Zabbix6.0LTS | Feb8,2022 | Feb28,2025 | Feb28,2027 |
Zabbix5.4 | May17,2021 | Feb28,2022 | Mar31,2022 |
Zabbix5.0LTS | May12,2020 | May31,2023 | May31,2025 |
Zabbix4.0LTS | October1,2018 | October31,2021 | October31,2023 |
2、关于Zabbix LTS
LTS代表长期支持版 本,Zabbix LTS版本每一年半发布一次,且为Zabbix客户提供五年的支持服务。
3年全面支持-支持修复基础的紧急的以及安全性上的问题
2年最低限度支持-仅限 支持修复紧急的和安全性上的问题
名称 | 平台 | CPU/内存 | 数据库 | 监控主机数 |
---|---|---|---|---|
小 | CentOS | Virtual Appliance | MySQL InnoDB | 100 |
中 | CentOS | 2cpu cores/2GB | MySQL InnoDB | 500 |
大 | RedHat Enterprise Linux | 4CPU cores/8GB | RAID10MySQL InnoDB or PostgreSQL | >1000 |
非常大 | RedHat Enterprise Linux | 8cpu cores/16GB | Fast RAID10MySQL InnoDB or PostgreSQL | >10000 |
注:windows不能安装zabbix-server
数据库软件 | 支持的版本 | 备注 |
---|---|---|
MySQL/Percona | 8.0.X | 如果需要使用MySQL(or Percona)作为Zabbix后端数据库。需要InnoDB engine。我们推荐使用MariaDB Connector/C来构建server/proxy。 |
MariaDB | 10.5.00-10.6.X | 需要InnDB engine。我们推荐使用MariaDB Connector/C来构建server/proxy。 |
Oracle | 19c-21c | 如果需要使用Oracle作为Zabbix后端数据库 |
PostgreSQL | 13.0-14.X | 如查需要使用PostgreSQL作为Zabbix后端数据库 |
TimescaleDB for PostgreSQL | 2.0.1-2.3 | 如果需要使用TimescaleDB作为Zabbix后端数据库。确保安装的TimescaleDB发行版支持压缩。 |
SQLite | 3.3.5-3.34.X | 如果需要使用SQLite作为Zabbix后端数据库。SQLite只支持Zabbix proxy。 |
注:因为Zabbix Web前端是用php语言开发的,所以需要php+nginx或者php+apache环境。
软件 | 版本 | 备注 |
---|---|---|
apache | 1.3.12或更高版本 | |
Nginx | 1.11或更高版本 | |
php | 7.25或更高版本 | 不支持php8.0. |
总结如下:
常用安装环境是:LAMP(linux+apache+mysql+php)或LNMP(linux+nginx+mysql+php)
项目 | Value
项目 | Value | 版本 | 备注 |
---|---|---|---|
linux | CentOS | 8.1|CentOS7只支持5.0 | |
linux | Ubuntu | 18.04-20.04 | |
前端 | nginx | >=1.11 | 建议版本 |
前端 | apache | >=13.12 | |
数据库 | Mysql | 8.0.X | |
数据库 | MariaDB | 10.5.00-10.6.X | |
前端 | php | >=7.25小于8 |
Zabbix server高可用防止硬件故障或计划维护期的停机
原生选择加入HA群集配置
定义一个或多个务用节点
实时监控Zabbix server群集节点的状态
不需要外部工具即可将Zabbix server配置为HA群集模式
Zabbix 6.0LTS新增Kubernetes监控功能,可以在kubernetes系统从多个维度采集指标:
kubernetes节点和pods的自动发现和监控
无代理方式采集kubernetes pods和节点的信息
获取kubernetes节点主机高水平信息
kubernetes监控还能够监控kubernetes组件,例如:
kube-controller-manager
kube-apiserver
kube-scheduler
kubelet
Zabbix 6.0新增的构件提供了展示信息的许多新方法
地理地图构件能在地图上显示主机和问题
主机排序级件可显示按监控项值 排序的前N个或后N个主机的列表
单一监控英构件能展示单个批标的值
SLA构件能显示特定业务服务的当前SLA
Zabbix 6.0为最受欢迎的供应商提供了许多新模板:
Cisco ASAv
Cloudflare
Dell PowerEdge
f5BIG-IP
GridGain
HPE ProLiant servers
InfIuxDB
Kubernetes
Mikrotik
NGINX PIus
pfSense
Systemd
Travis CI
VMWare SD-WAN VloXloud
名称 | 概述 | 必须安装 | 备注 |
---|---|---|---|
zabbix-server | 整个Zabbix软件的核 心程序,过轮询和捕获数据(数据存在数据库里),计算是否满足触发器条件,向用户发送报警通知 | 是 | |
zabbix-agent | 部署在被监控机器上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)、将收集到的数据通过被动模式(或主动模式)给到zabbix-agent。 | 是 | 和zabbix-agent2二选一 |
zabbix-agent2 | zabbxi-agent的替代品,它支持zabbix-agent所有功能。 | 是 | 和zabbix-agent二选一 |
zabbix-proxy | 可以代替zabbix server收集性能和可用性数据。分散单个zabbix server的负载非常有用 | 否 | |
zabbix-java-gateway | 监控JMX应用程序(java应用程序) | 否 | |
zabbix-get | 从zabbix agent那里获取所需的信息,用于对zabbix agent故障排错 | 否 | |
zabbix-js | 用于嵌入脚本测试 | 否 | |
zabbix-sender | 用来推送性能数据给zabbix server处理的命令行应用程序。用在定期推送可用性和性能数据等待长 耗时的用户脚本上。 | 否 | |
zabbix-web-service | 在zabbix5.4版中首次出现,基于Go编写,主要作用是定期发送巡检报告到指定邮件帐户对运维服务台、值班人员有一定帮助。 | 否 |
下载Ubuntu镜像
阿里下载:
https://mirrors.aliyun.com/oldubuntu-releases/releases/20.04.3/ubuntu-20.04.3-live-server-arm64.iso?spm=a2c6h.25603864.0.0.5c8e5a27CeLPI1
Mirror address: http://mirrors.aliyun.com/ubuntu #把源改成阿里源,升级可提速
Ubuntu优化及配置
chen@chen:/$ ip add
chen@chen:/$ sudo vim /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
dhcp4: true
version: 2
进入后按i输入如下内容:
network:
ethernets:
ens33:
addresses: [192.168.11.100/24]
# optional: true
gateway4: 192.168.11.2
nameservers:
addresses:
- 192.168.11.2
#search: []
version: 2
sudo netplan apply
这是22版配置文件
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
dhcp4: true
ens36: #### network card name
dhcp4: false
addresses:
- 192.168.11.100/24 ## set static IP
routes:
- to: default
via: 192.168.11.2 ## gateway
nameservers:
addresses: [8.8.8.8,8.8.4.4,192.168.3.1]
ens37:
dhcp4: true
version: 2
格式的缩进很容易出错, 可以直接复制以上模板
开启 systemd-networkd服务(可选)
sudo systemctl start systemd-networkd
查看systemd-networkd服务状态(可选)
sudo systemctl status systemd-networkd
chen@chen:~$ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[sudo] password for chen:
chen@chen:~$ date -R
Sun, 17 Jul 2022 10:10:14 +080
#修改文件描述符和进程数
sudo sed -i '/^# End of file/.$d' /etc/security/limits.conf
sudo sh -c "cat >> /etc/security/limits.conf <
# 软件源替换成阿里云
sudo sed -i.bak 's/http:\/\/.*.ubuntu.com/http:\/\/mirrors.aliyun.com/g' /etc/apt/soures.list
#更新
sudo apt update && sudo apt upgrade -y
#重启
reboot
准备两台Ubuntu20.04服务器安装zabbix6.0,ip分别为:192.168.11.51,192.168.11.52
部署环境要求:
主机名 | IP地址 | 系统 | 说明 |
---|---|---|---|
zabbix01 | 192.168.11.51 | Ubuntu20.04 | zabbix server,zabbix agent,mysql都安装在同一台上面 |
修改主机名:
sudo hostnamectl set-hostname zabbix01
安装mysql-server8.0
ubuntu自带的源只能安装mysql5.7,使用清华源安装mysql8.0
sudo bash -c "cat > /etc/apt/soures.list.d/mysql-community.list" <<EOF
deb https://mirrors.tuna.tsinghua.edu.cn/mysql/apt/ubuntu bionic msql-7.7 mysql-8.0 mysql-tools
EOF
然后导入GPG密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3A79BD29
**注意MySQL8.0.28及更商版 本包的keyid为3A79BD29,如上所示。对于早期的MySQL版本,KeyID是5072EF5。使用不正确的密钥可能会导致密钥验证错误。
安装MySQL
sudo apt update
sudo apt install -y mysql-server
输入mysql的超级管理员root用户密码,输入完后按tab键–选择ok–然后回车
#查看mysql启动状态
sudo systemctl status mysql
sudo mysql -root -p
输入password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin; #创建zabbix这个库
mysql> create user zabbix@'localhost' identified WITH mysql_native_password by 'password'; #创建zabbxi用户和密码。
mysql> grant all privileges on zabbix.* to zabbix@'localhost'; #授权zabbix用户所有权限
mysql > quit
#验证,zabbix用户能登录成功,show database能看到zabbix库,说明没有问题
sudo mysql -uzabbix -p
输入password
mysql> show databases;
mysql> quit;
wget https://mirrors.aliyun.com/zabbix/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 update
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2
参数解释
名称 | 概述 | 必须安装 | 备注 |
---|---|---|---|
zabbix-server-mysql | zabbix-server的mysql版本,整个zabbix软件的核心程序 | 是 | |
zabbix-frontend-php | php环境+前端代码 | 是 | |
zabbix-apache-conf | apache | 是 | 和nginx二选 一 |
zabbix-sqlscripts | 数据库sql脚本,初始化zabbix数据库 | 是 | |
zabbix-agent2 | zabbix-agent的替代品,它支持zabbix-agent所有功能 | 是 |
sudo apt -y install language-pack-zh-hans
导入初始架构和数据,系统将提示输入杂兵必须用户的密码。localhost表示本机,-h localhost也可以去掉不定。
zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p -hlocalhost zabbix
#或下面的路径
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p -hlocalhost zabbix
#输入zabbix用户的password等待完成。过程可能需要一到几分钟,根据机器性能决定。
验证一下
mysql -uzabbix -p
use zabbix;
show tables;
sudo sed -i 's#\# DBPassword=#DBPassword=password#g' /etc/zabbix/zabbix_server.conf
sudo grep "DBPassword=" /etc/zabbix/zabbix_server.conf
sudo systemctl start zabbix-server zabbix-agent2 apache2
sudo systemctl enable zabbix-server zabbix-agent2 apache2
sudo systemctl status zabbix-server zabbix-agent2 apache2
ss -lntp #查看一下端口是否已启动 80(apache),10051(zabbix-server),10050(zabbix-agent2)
conf/zabbix.conf.php
#前端登录地址
http://192.168.11.51/zabbix
sudo vim /usr/share/zabbix/conf/zabbix.conf.php
用户名:Admin
密码:zabbix
检查
1、在“最新数据 ”显示有数据就正常了
2、在监测–主机–图形,有数据就就正常了
1、修改时区
sudo cp /usr/share/zoninfo/Asia/shanghai /etc/localtime
date -R
2、安装中文字体
解决Web图形中的中文字乱码
sudo apt -y install ttf-wqy-microhei
sudo cp /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf