zabbix简介

Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。并设定自定义脚本,做到一定的自恢复功能

Zabbix 作为企业级分布式监控系统的优点:分布式监控,支持 node 和 proxy 分布式模式;自动化注册,根据规则,自动注册主机到监控平台,自动添加监控模板;支持 agentd、snmp、ipmi 和 jmx 等很多通信方式

服务模块

zabbix-server 提供数据处理

zabbix web GUI 提供web展示

zabbix Database 提供数据存储

zabbix-agent 被监控端安装的模块,上报数据到zabbix-server中

SNMP: 支持各类常见的网络设备

  1. zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
  2. database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
  3. web interface:zabbix的GUI接口;
  4. roxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
  5. agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;

客户端守护进程

此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

zabbix_get zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。

zabbix_sender

zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。

zabbix_server

zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server

备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。

zabbix_proxy

zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。

zabbix_java_gateway

zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。

监控流程

agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。

功能拆解

  1. zabbix服务搭建
  2. 监控告警外发
  3. 自定义监控脚本
  4. 自定义执行触发脚本
  5. 配置Grafana页面显示
  6. 主机批量发现

zabbix用户手册 https://www.zabbix.com/documentation/5.0/zh/manual

安装 zabbix 5.0 LTS

参考官网 zabbix 5.0.12-1.el7

# env --> CentOS Linux release 7.9.2009 (Core) mininal install

# 1  Install Zabbix repository
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all # 2 Install Zabbix server and agent
yum -y install zabbix-server-mysql zabbix-agent # 3 Install Zabbix frontend (5.0版本要求高版本的php)
## 3.1 enable zabbix-frontend repository
yum install centos-release-scl -y
sed -i 11cenabled=1 /etc/yum.repos.d/zabbix.repo
## 3.2 Install Zabbix frontend packages
yum -y install zabbix-web-mysql-scl zabbix-nginx-conf-scl
# 4 初始化数据库
# docker run -d --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql:/var/lib/mysql --restart=always mysql:5.7.34
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@'192.168.1.%' identified by '123456';
grant all privileges on zabbix.* to zabbix@'192.168.1.%'; zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -h192.168.1.113 -p zabbix # 5 为Zabbix server配置数据库
# sed -i.bak /\#\ DBPassword=/aDBPassword=123456 /etc/zabbix/zabbix_server.conf
cat > /etc/zabbix/zabbix_server.conf << eof
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.1.113
DBName=zabbix
DBUser=zabbix
DBPassword=123456
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
eof # 6 为Zabbix前端配置PHP
sed -i.bak /\;date.timezone\ =/adate.timezone=Asia/Shanghai /etc/opt/rh/rh-php72/php.ini
## 6.1配置nginx server
sed -n 1,3p /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
server {
listen 80;
server_name 192.168.1.113;
# 6.2 配置php用户与时区
sed -i.bak /listen.acl_users/c'listen.acl_users = apache,nginx' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
echo 'php_value[date.timezone] = Asia/Shanghai' >> /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
## cat /etc/zabbix/web/zabbix.conf.php # 7 启动Zabbix server和agent进程
systemctl enable --now zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm # 8 连接Zabbix前端 Admin@zabbix
http://192.168.1.113

zabbix-server相关优化

1. 字体汉化

对于以上环境和场景的安装,zabbix的汉化仍然会有乱码现象,重新载入自定义字体

#1. 上传字体
Windows控制面板 -- 字体 -- simkai.ttf字体 -- 上simkai.ttf传字体到 /usr/share/fonts/dejavu/目录中
cat /var/lib/alternatives/zabbix-web-font
#2. 重新连接字体
ln -sf /usr/share/fonts/dejavu/simkai.ttf /etc/alternatives/zabbix-web-font
#3. 验证

安装zabbix agent

使用二进制包安装

# 下载与解压包
wget https://www.zabbix.com/cn/download_agents?version=5.0+LTS&release=5.0.12&os=Linux&os_version=3.0&hardware=amd64&encryption=No+encryption&packaging=Archive&show_legacy=0 -P /tmp
mkdir /usr/local/zabbix-agent
tar -xf zabbix_agent-5.0.12-linux-3.0-amd64-static.tar.gz -C /usr/local/zabbix-agent
useradd zabbix -s /sbin/nologin # 配置
cat > /usr/local/zabbix-agent/conf/zabbix_agentd.conf << eof
# Passive checks related #被动检查相关配置
Server=192.168.1.113 #指向当前zabbix server
# Option: ListenPort
#ListenPort=10050 #监听端口
# Option: StartAgents
StartAgents=3 #被动状态时默认启动的实例数(进程数),为0不监听任何端口
# Option: Hostname
Hostname=192.168.1.103 #区分大小写且在zabbix server唯一的值
LogFile=/tmp/zabbix_agentd.log
# PidFile=/tmp/zabbix_agentd.pid
eof # 启动
echo '/usr/local/zabbix-agent/sbin/zabbix_agentd -c /usr/local/zabbix-agent/conf/zabbix_agentd.conf' >> /etc/rc.local
. /etc/rc.local # server添加主机
配置 -- 主机 -- 添加主机 -- 模板关联

使用包安装

https://repo.zabbix.com/zabbix/

yum -y install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.12-1.el7.x86_64.rpm

cat > /etc/zabbix/zabbix_agentd.conf << eof
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.1.113
ServerActive=192.168.1.113
Hostname=192.168.1.107
Include=/etc/zabbix/zabbix_agentd.d/*.conf
eof systemctl enable --now zabbix-agent

PS

zabbix企业级的分布式开源监控解决方案 v5.0 LTS的更多相关文章

  1. Zabbix企业级开源监控解决方案

    Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...

  2. 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-上

    @ 目录 概述 定义 监控作用 使用理解 监控对象和指标 架构组成 常用监控软件分析 版本选型 俗语 安装 部署方式 部署 zabbix-agent 概述 定义 Zabbix 官网地址 https:/ ...

  3. 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下

    @ 目录 实战 Zabbix server源码安装使用示例 部署 配置 Zabbix agent2使用示例 部署 配置 Zabbix proxy使用示例 部署 配置 自定义监控使用示例 触发器使用示例 ...

  4. zabbix、Cacti、Nagios、open-falcon、Ganglia、Prometheus开源监控比较

    Zabbix 一个基与WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案(普遍) 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...

  5. 初识Opserver,StackExchange的监控解决方案

    Opserver是闻名遐迩的网站Stack Overflow的开源监控解决方案,由Stack Exchange发布.它基于.NET框架构建,这在监控工具领域有些与众不同. 旨在为每个受监控系统的健康状 ...

  6. 【开源监控】Prometheus+Node Exporter+Grafana监控linux服务器

    Prometheus Prometheus介绍 Prometheus新一代开源监控解决方案.github地址 Prometheus主要功能 多维 数据模型(时序由 metric 名字和 k/v 的 l ...

  7. Zabbix监控解决方案

    思通运维监控主要用来监控IT 基础设施组件的可用性和性能.监控项目是不受限制的,并且可以对IT 基础设施健康状态进行复杂分析.通过确定IT 系统问题的“来源”,使用户快速响应故障来降低宕机成本. 网络 ...

  8. 使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统

    使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblo ...

  9. 开源监控系统中 Zabbix 和 Nagios 哪个更好?

    监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k ...

随机推荐

  1. 8.switch语句

    switch语句语法 switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //你可以有任意数 ...

  2. Java并发-同步容器篇

    作者:汤圆 个人博客:javalover.cc 前言 官人们好啊,我是汤圆,今天给大家带来的是<Java并发-同步容器篇>,希望有所帮助,谢谢 文章如果有问题,欢迎大家批评指正,在此谢过啦 ...

  3. Vulkan移植GpuImage(四)从D到O的滤镜

    现把D到O的大部分滤镜用vulkan的ComputeShader实现了,列举其中一些有点特殊的说明. GaussianBlurPosition 指定区域高斯模糊 没有按照GPUImage里的方式实现, ...

  4. php讲转义符号与json文件的趣事情

    php中屡试不爽的数组和json json_encode与json_decode urlencode与urldecode addslashes与stripslashes addcslashes与str ...

  5. POJ1698 最大流或者匈牙利

    题意:       一个人他有n个任务,每个任务都有一些限制:  (1)只能在一个星期中指定的日子去做,比如周1 2 6啥的  (2)总工作量有几天,就是一共要工作几天  (3)必须在几周之内完成,就 ...

  6. 前端基础问题:CSS居中的几种方式

    水平居中 (1)内联元素: text-align: center; 利用 text-align: center :可以实现在块级元素内部的内联元素水平居中. 如果一行中有多个块级元素,可以通过设置块级 ...

  7. 在Visual Studio 中使用git——文件管理-上(四)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...

  8. Redis数据持久化—RDB持久化与AOF持久化

    目录 Redis数据持久化-RDB持久化与AOF持久化 RDB持久化 RDB文件的创建 RDB文件的载入 自动间隔性保存 检查保存条件是否满足 AOF持久化 AOF持久化的实现 AOF文件的载入与数据 ...

  9. 通过CRM系统实现工作流程自动化

    灵活运用CRM系统所拥有的自动化功能模块,是公司在快速发展和降低成本的关键保障.不管您的公司规模的大小,您企业的工作流程都必须遵照相同的流程反复操作.这种反复的工作是一个效率黑洞,长久以往会导致人力资 ...

  10. golang:三次握手四次挥手总结

    TCP的三次握手 所谓三次握手 Three-Way Handshake 是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立.好比两个人在打电话: 当连接被建立或被终止,交换的报 ...