【30天精通Zabbix:从入门到实战的全方位监控之旅】第1天:初探Zabbix:开源监控系统的王者

在这里插入图片描述

🌟 热烈欢迎 踏上这30天Zabbix学习之旅的每一位朋友!能在这里和大家相聚,我真的感到非常开心与期待!🎉

🎈 今天,我们将共同启程,去探寻在开源监控领域中独领风骚的王者——Zabbix。不论您是维护系统稳定的管理员、还是日夜兼程保障运行的运维工程师,又或是对监控技术有着浓厚兴趣的开发者,Zabbix都将成为您最坚实、最得力的助手。

🚀 在这段精彩的旅程中,我们将深入Zabbix的世界,探索它的每一个细节,共同开启智能监控的全新篇章!希望在这里,您不仅能感受到知识带来的满足,更能体验到一份轻松、愉悦的学习氛围。

💬 请您随时分享您的想法和见解,我们期待着与您一同成长,共同留下这段美好的学习回忆!

👀Zabbix初印象

  🌟Zabbix是一款基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位并解决存在的各种问题。Zabbix由两部分构成,Zabbix server与可选组件Zabbix agent。Zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

🚀Zabbix特点和优势

  1. 🎉 开源免费:Zabbix是一款开源软件,用户可以免费获取并使用,同时可以根据需求进行定制和二次开发。
  2. 📈 强大的监控功能:Zabbix支持对各种网络参数、服务器健康状态、应用性能等进行实时监控,并提供丰富的可视化展示。
  3. 🌐 灵活的扩展性:Zabbix支持分布式监控,可以轻松扩展监控规模,同时提供API接口,方便与其他系统集成。
  4. 🚀 易于部署和管理:Zabbix提供详细的安装部署文档和友好的Web界面,使得部署和管理过程变得简单易行。
  5. 📊 丰富的可视化:提供多种图表和报表,方便数据分析。
  6. 🔒 安全性:支持多种认证方式,保障数据安全。
  7. 💬 社区支持:拥有庞大的用户社区,方便交流和求助。

🔍Zabbix各组件作用详解

  1. zabbix-server:
      zabbix的核心组件,负责接收客户端(如Zabbix Agent、Zabbix Proxy)发送的报告和信息。它是所有配置信息、统计信息和操作数据的中央存储库,负责组织所有的配置、统计数据及配置操作数据。
  2. zabbix-proxy:
      zabbix的可选组件,常用于分布式监控环境中。它可以代替Zabbix server收集性能和可用性数据,并在本地处理这些数据后将其发送到Zabbix Server。这有助于减少Zabbix Server的负载,实现分布式监控,并增强安全性(通过在代理服务器和Zabbix Server之间建立安全通信)。
  3. zabbix-agent:
      zabbix-agent部署在被监控的主机上,用于收集系统信息(如CPU、内存、磁盘、网络使用情况等)并将其发送给Zabbix Server或Zabbix Proxy。它可以通过主动模式(主动发送数据给Zabbix服务器)或被动模式(等待Zabbix服务器请求数据)来工作。Zabbix Agent是一个轻量级的程序,对系统资源的消耗相对较低。
  4. zabbix-agent2:
      zabbix-agent2是zabbix-agent的第二个版本,功能更加强大,采用Go语言编写。它支持Zabbix Agent的所有功能,并可以监控更多的内容,如Docker容器、Ceph、MySQL、Oracle、Redis等。与Zabbix Agent相比,Zabbix Agent2可能提供更高效、更灵活的数据收集和处理能力。
  5. zabbix-java-gateway:
      zabbix-java-gateway是一个可选组件,用于监控Java应用程序。它通过Java Native Interface (JNI)与Java应用程序进行通信,并将监控数据发送到Zabbix服务器。使用Zabbix Java Gateway,可以监控Java应用程序的性能指标,如内存使用量、线程数量等。
  6. zabbix-server-mysql和zabbix-server-pgsql:
      这些组件指的是Zabbix Server使用MySQL或PostgreSQL作为其后端数据库来存储监控数据和配置信息。Zabbix支持多种数据库作为其后端存储,包括MySQL、PostgreSQL等。
  7. zabbix-web-mysql-scl和zabbix-web-pgsql-scl:
      这些组件指的是Zabbix Web界面使用MySQL或PostgreSQL作为其数据库,并且可能与Software Collections(SCL)一起使用。SCL是一种在Red Hat系Linux发行版中提供额外软件包集合的方法,这些软件包可能与系统默认的软件包版本不同。通过使用SCL,可以在同一系统上安装和运行多个版本的软件。
  8. zabbix-apache-conf-scl和zabbix-nginx-conf-scl:
      这些组件指的是为Zabbix Web界面配置的Apache或Nginx的Web服务器配置文件,并且可能与Software Collections(SCL)一起使用。这些配置文件用于定义如何访问Zabbix Web界面以及如何处理传入的Web请求。

🌐Zabbix监控拓扑及原理 📈💡

在这里插入图片描述


Zabbix监控原理:

  1. 部署一个Zabbix监控服务器, 用于存储和处理监控数据;
  2. 如果被监控的是Linux或Windows主机,需要安装客户端程序agent来采集监控数据;
  3. 如果被监控的是网络设备(交换机,路由器等),通过SNMP协议进行监控;
  4. 最后Zabbix监控服务器,将客户端收集来的数据存储到数据库中,通过web页面来管理

🛠️Zabbix快速部署安装(公网)📦🚫🐳

1.资源概览

主机名称配置操作系统设备地址
zabbix-server2C 2GCentos7.5172.17.199.35
zabbix-client011C 2GCentos7.5172.17.199.36
zabbix-client021C 2GCentos7.5172.17.199.37

2.服务器基础配置初始化

# 1、所有节点关闭firewalld防火墙
systemctl disable firewalld
systemctl stop firewalld

# 2、关闭selinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/g'  /etc/selinux/config
setenforce 0

# 3、关闭swap
swapoff -a # 临时
sed -i 's/.*swap.*/#&/' /etc/fstab # 永久

# 4、配置时间同步
yum install ntpdate -y
ntpdate time.windows.com

# 5、安装依赖
yum -y install vim bash-completion gcc pcre-devel  openssl-devel mysql-devel libxml2 libxml2-devel net-snmp-devel curl-devel libevent-devel httpd

3.安装配置Mysql(Zabbix依赖数据库,此处使用docker安装Mysql)

3.1 安装docker

# 1、将桥接的ipv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1
EOF

# 生效
sysctl --system

# 2、下载关于docker依赖环境
yum install -y device-mapper-persistent-data lvm2 libcgroup yum-utils 

# 3、设置下载Docker的镜像源,docker官方yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 4、安装docker20.10.12
yum -y install docker-ce-20.10.12* docker-ce-cli-20.10.12*

# 5、启动服务并设置开机自启动
systemctl enable --now docker

3.2 安装docker-compose

# 1、运行以下命令以下载 Docker Compose 的当前稳定版本👇,要安装其他版本的 Compose,请替换 v2.2.2)
# 		如github访问过慢,可从百度网盘下载,地址链接在最下方
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 2、将可执行权限应用于二进制文件
chmod +x /usr/local/bin/docker-compose

# 3、创建软链接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# 4、测试是否安装成功
docker-compose version

3.3 安装启动Mysql

# 1、创建docker-compose目录
mkdir -p /opt/docker-compose/docker-compose-mysql

# 2、创建docker-compose-mysql的docker-compose.yaml文件
# 		将{MYSQL_ROOT_PASSWORD: mysql密码}换成自己要设置的mysql密码
cat > /opt/docker-compose/docker-compose-mysql/docker-compose.yaml <<EOF
version: '3'
services:
  mysql:
    image: registry.cn-hangzhou.aliyuncs.com/yuandiehao/mysql:5.7.42
    restart: always
    container_name: mysql-5.7.42
    environment:
      MYSQL_ROOT_PASSWORD: mysql密码
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M;
    ports:
      - 3307:3306
EOF

# 3、启动容器
docker-compose up -d

mysql -h127.0.0.1 -P3307 -uroot -p"mysql密码"

3.4 创建初始数据库并配置用户访问权限

将”zabbix密码“改为自己要设置的zabbix密码即可
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@'%'identified by 'zabbix密码';
mysql> grant all privileges on zabbix.* to zabbix@'%';
mysql> set global log_bin_trust_function_creators = 1;
mysql> flush privileges;
mysql> quit;

4.安装配置ZABBIX

# 1、安装zabbix.repo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

yum clean all

yum makecache

# 2、安装zabbix-server-mysql、zabbix-agent、centos-release-scl
yum -y install zabbix-server-mysql zabbix-agent centos-release-scl

# 修改第11行frontend的 enabled=0 为 enabled=1
sed -i '11s/^enabled=.*/enabled=1/' /etc/yum.repos.d/zabbix.repo

# 3、安装zabbix的frontend 包
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

sed -i '/timezone/c\php_value[date.timezone] = Asia/Shanghai' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 

# 4、导入初始架构和数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql  -h127.0.0.1 -P3307  -uzabbix -p'zabbix密码' -Dzabbix

# 5、导入数据库架构后禁用log_bin_trust_function_creators
mysql  -h127.0.0.1 -P3307  -uroot -p'root密码' 

mysql> set global log_bin_trust_function_creators = 0;

# 6、编辑zabbix_server.conf(将“zabbix用户密码”换为自己实际的)
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix用户密码
DBPort=3307
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

5.启动zabbix-server、zabbix-agent

# 设置开机自启
systemctl enable --now zabbix-server.service zabbix-agent.service httpd.service rh-php72-php-fpm

# 查看服务状态和端口
systemctl status zabbix-server.service zabbix-agent.service httpd.service rh-php72-php-fpm

ss -ntulp | grep -E '10050|10051|80|9000'

6、重启服务器zabbix-server

💻ZABBIX页面配置

  • 无脑下一步即可,中间会配置zabbix后端数据库信息和zabbix主机信息。

  • 访问URL为:http://ipaddress/zabbix,默认的账号为Admin,密码为zabbix

总结🎉

  通过本文的介绍,相信您对Zabbix有了初步的了解。作为一款开源监控系统的王者,Zabbix凭借其强大的功能、灵活的扩展性和易于部署管理的特点,成为了系统管理员、运维工程师和对监控技术感兴趣的开发者们的首选。希望本文能够帮助您顺利上手Zabbix,为您的监控工作带来便利和高效。💪🎈

相关资料下载地址📚

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强弟儿insights

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值