zabbix企业级的分布式开源监控解决方案 v5.0 LTS
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: 支持各类常见的网络设备
- zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;
- database storage:专用于存储所有配置信息,以及由zabbix收集的数据;
- web interface:zabbix的GUI接口;
- roxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;
- 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返回数据。
功能拆解
- zabbix服务搭建
- 监控告警外发
- 自定义监控脚本
- 自定义执行触发脚本
- 配置Grafana页面显示
- 主机批量发现
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中文手册
- https://github.com/zabbix/zabbix-docker/tree/5.0
- https://www.zabbix.com/documentation/current/manual/installation/containers
- zabbix忘记密码
update zabbix.users set passwd='5fce1b3e34b520afeffb37ce08c7cd66' where userid='1';
- zabbix企业级的分布式开源监控解决方案 - 文档要点
- open-falcon
- 夜莺Nightingale
zabbix企业级的分布式开源监控解决方案 v5.0 LTS的更多相关文章
- Zabbix企业级开源监控解决方案
Zabbix企业级开源监控解决方案 目录 Zabbix企业级开源监控解决方案 一.Zabbix 1. 监控系统的必要性 2. 监控软件的作用 3. Zabbix的定义 4. Zabbix的监控原理 5 ...
- 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-上
@ 目录 概述 定义 监控作用 使用理解 监控对象和指标 架构组成 常用监控软件分析 版本选型 俗语 安装 部署方式 部署 zabbix-agent 概述 定义 Zabbix 官网地址 https:/ ...
- 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下
@ 目录 实战 Zabbix server源码安装使用示例 部署 配置 Zabbix agent2使用示例 部署 配置 Zabbix proxy使用示例 部署 配置 自定义监控使用示例 触发器使用示例 ...
- zabbix、Cacti、Nagios、open-falcon、Ganglia、Prometheus开源监控比较
Zabbix 一个基与WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案(普遍) 能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的 ...
- 初识Opserver,StackExchange的监控解决方案
Opserver是闻名遐迩的网站Stack Overflow的开源监控解决方案,由Stack Exchange发布.它基于.NET框架构建,这在监控工具领域有些与众不同. 旨在为每个受监控系统的健康状 ...
- 【开源监控】Prometheus+Node Exporter+Grafana监控linux服务器
Prometheus Prometheus介绍 Prometheus新一代开源监控解决方案.github地址 Prometheus主要功能 多维 数据模型(时序由 metric 名字和 k/v 的 l ...
- Zabbix监控解决方案
思通运维监控主要用来监控IT 基础设施组件的可用性和性能.监控项目是不受限制的,并且可以对IT 基础设施健康状态进行复杂分析.通过确定IT 系统问题的“来源”,使用户快速响应故障来降低宕机成本. 网络 ...
- 使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统
使用Ubuntu系统管理包工具(apt)部署Zabbix企业级监控系统 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Ubuntu系统部署笔记:https://www.cnblo ...
- 开源监控系统中 Zabbix 和 Nagios 哪个更好?
监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k ...
随机推荐
- 通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务
我个人认为Actor应该是Dapr里比较重头的部分也是Dapr一直在讲的所谓"stateful applications"真正具体的一个实现(个人认为),上一章讲到有状态服务可能很 ...
- eks 使用案例 部署jenkins
https://aws.amazon.com/cn/blogs/storage/deploying-jenkins-on-amazon-eks-with-amazon-efs/ 这个链接挺好的,包含了 ...
- 鸿蒙HI3516-驱动开发(1.1-LTS)
代码在:https://gitee.com/kwydm/open-harmony-taurus 目录大致结构 1.驱动开发创建目录://vendor/huawei/hdf/LED/src 新建Make ...
- 1036 Boys vs Girls
This time you are asked to tell the difference between the lowest grade of all the male students and ...
- 【Springboot】Springboot监听器Demo
/** * @author: yq * @date: 2020/8/31 0:01 * @description 自定义事件 */ @Data public class MyEvent extends ...
- POJ 2752 同一个串的前后串
题解东北赛回来再补 #include<stdio.h> #include<string.h> int next[500000]; int ans[500000]; char s ...
- hdu2492 数状数组或者线段树
题意: 给你一些人,每个人有自己的攻击力,输入的顺序就是每个人的顺序,他们之间互相比赛,两个人比赛的条件是必须在他们两个位置之间找到一个人当裁判,这个裁判的攻击力必须在他们两个人之间,问你最 ...
- Win64 驱动内核编程-30.枚举与删除线程回调
枚举与删除线程回调 进程回调可以监视进程的创建和退出,这个在前面的章节已经总结过了.某些游戏保护的驱动喜欢用这个函数来监视有没有黑名单中的程序运行,如果运行则阻止运行或者把游戏退出.而线程回调则通常用 ...
- 【tee小白的第一篇随笔】keystone代码略读
武大信安在读,最近在自学Risc-v架构的可信执行环境. (实验报告多半是为了交差.临时起意写写博客,分享一些自己读代码的心得理解.) 本篇内容由队和我友总结而成,如有错误欢迎指正交流. keysto ...
- BUAA软件工程热身作业
写在前面 项目 内容 所属课程 2020春季计算机学院软件工程(罗杰 任健) (北航) 作业要求 热身作业(阅读) 课程目标 培养软件开发能力 本作业对实现目标的具体作用 深入认识自己,总结过往并展望 ...