zabbix学习笔记一
# zabbix监控服务
应用场景
- 道路交通:监控探头
- 办公大楼、商场:监控设备
作用
1、当出现一些突发情况,及时响应
2、及时捕捉证据,追溯相关问题
# 为什么要使用zabbix?
运维职责:运维业务7*24小时稳定运行
1、人力成本
2、响应不及时
监控工具的作用:
1、及时定位问题,无需人为干预,大大减少人力成本
2、通过技术角度,实现实时监控业务,当出现问题及时定位并告警到相关管理人员
3、记录并以图形化的方式展示出来,方便管理人员进行系统运行性能评估
4、出现故障,针对某一个性能指标,自动化执行一个指定操作
# 监控系统性能指标的命令
一共有以下维度:
- CPU
- 内存
- 磁盘
- 网络/进程
- 物理硬件
- 业务实现
# CPU性能
有以下指令
top
htop #需要配置阿里云yum install htop -y 是top命令的进阶版
uptime
vmstat
2
3
4
# top
top - 12:46:09 up 14 days, 20:37, 3 users, load average: 0.16, 0.09, 0.08
Tasks: 268 total, 1 running, 267 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.7 us, 2.7 sy, 0.0 ni, 95.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 7813.7 total, 176.9 free, 2871.9 used, 4764.9 buff/cache
MiB Swap: 2048.0 total, 1211.0 free, 837.0 used. 4612.5 avail Mem
2
3
4
5
- top
- 12:46:09 当前时间
- up 14 days, 20:37 系统运行时间
- 3 users 当前连接系统中的用户量
- load average 平均负载,平均时间内,cpu处理任务的数量
- 与物理机核心数量相匹配,如果是4个核心,数值大于4就比较繁忙,小于4就比较正常
- 0.16 一分钟内负载情况
- 0.09 五分钟内负载情况
- 0.08 十五分钟内负载情况
- Tasks
- 268 total 进程总数
- 1 running 运行中的进程
- 267 sleeping 睡眠中的进程
- 0 stopped 停止的进程
- 0 zombie 僵尸进程
- %Cpu(s) (CPU使用情况)
- 1.7 us cpu的使用率
- 2.7 sy 用户态
- 0.0 ni 内核态
- MiB Mem(内存使用情况)
- MiB Swap (交换分区使用情况)
# htop
需要配置阿里云yum install htop -y 是top命令的进阶版
支持鼠标点点点
支持颜色高亮
支持自定义筛选排序/操作
# uptime
其实展现的是top命令的第一行
# w
展现:
$ w
15:39:29 up 14 days, 23:30, 3 users, load average: 0.01, 0.08, 0.08
USER TTY 来自 LOGIN@ IDLE JCPU PCPU WHAT
yuanbang tty7 :0 261月22 14days 1.98s 0.02s /usr/libexec/gnome-session-binary --systemd --systemd --session=ubuntu
root pts/0 192.168.31.195 15:39 1.00s 0.11s 0.01s w
root pts/1 192.168.31.195 15:39 1.00s 0.08s 0.08s -zsh
2
3
4
5
6
除了top命令第一行,也展现了其他连接用户的信息
# vmstat
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b 交换 空闲 缓冲 缓存 si so bi bo in cs us sy id wa st
1 0 863488 179908 491044 4398932 0 0 6 60 15 9 1 1 98 0 0
2
3
4
- r 当前等待的进程
- b 当前等待IO进行存储的进程
- bi 写入吞入量
- bo 读取输出量
# 内存
$ free
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 8001188 2930648 179412 41120 4891128 4733460
交换: 2097148 863488 1233660
2
3
4
$ free -h
总计 已用 空闲 共享 缓冲/缓存 可用
内存: 7.6Gi 2.8Gi 175Mi 40Mi 4.7Gi 4.5Gi
交换: 2.0Gi 843Mi 1.2Gi
2
3
4
# 磁盘
关于磁盘有以下命令:
iotop
df
2
# df
df
文件系统 1K-块 已用 可用 已用% 挂载点
udev 3967180 0 3967180 0% /dev
tmpfs 800120 2328 797792 1% /run
/dev/nvme0n1p2 244568380 25456008 206619316 11% /
tmpfs 4000592 0 4000592 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
2
3
4
5
6
7
磁盘满了系统会崩溃
df -h
文件系统 容量 已用 可用 已用% 挂载点
udev 3.8G 0 3.8G 0% /dev
tmpfs 782M 2.3M 780M 1% /run
/dev/nvme0n1p2 234G 25G 198G 11% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
2
3
4
5
6
7
no space leav……
- 没有空间了,但是通过df -h查看还是有剩余空间,是因为inode的问题
# iotop
它是一个第三方命令,也需要安装
apt install iotop
iotop
会发现和top的命令有点类型,关于系统磁盘IO的所有情况它都会显示出来
# 网络/进程
有以下命令
iftop
nethogs
ps
pstree # 以树形结构显示
2
3
4
# iftop
这也是第三方命令,需要单独安装
apt install iftop -y
就可以查看网络吞吐量了,实时看到在上传还是下载,每一条数据源点和目标位置都会展示出来
# nethogs
这也是第三方命令,需要单独安装
apt install nethogs -y
nethogs
它是以服务为单位,展示网络流量情况
- sent 发送
- RECEIVED 接收
# ps
ps -ef # 显示所有进程信息,连同命令行
# pstree
以上是linux监控服务常用的命令,zabbix也是基于这些来使用
# 企业常见监控工具
主要用于监控告警
cacti
- 擅长出图,方便管理者观看,但是添加监控项很繁琐,很不友好
nagios
- 可以添加监控项,但是不能出图,不能图形化。
- 很多老公司是基于nagios提取数据,cacti自定义开发图形化
ganglia
- 分布式集群监控系统,适合于对上千台大型规模集群监控,性能成本比较低,不会消耗很多资源,批量管理更加方便。(江湖人称肛裂监控),但是它的缺点不可以发送告警。
- 由于不可以告警,所以就很多企业都是基于二次开发通知,比如邮件。
zabbix:包含以上3个工具的软件优点它都有,
下面这两种也可以用来监控
- promethus:比较适配于K8S,适合于监控k8s
- ELK:日志监控
# zabbix相关介绍
https://www.zabbix.com/
在18年之前是不支持中文的,现在已经支持中文了,比较友善。
Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和分发的。这意味着它的源代码是免费分发的,并且可供公共使用。
- zabbix都开源免费了,那么它怎么盈利的呢?
- 靠培训认证
- 提供技术支持
- 靠培训认证
# zabbix版本发布及选择
zabbix最早从1.6,从2010年提供服务,已经服务了10多年了,现在都出到6版本了
目前主要有以下几个时代
- 1.6
- 2.0
- 3.0
- 4.0
- 5.0
# 现有Zabbix版本
版本名称 | 发布日期 | 全面支持期限 | 最低限度支持期限 |
---|---|---|---|
Zabbix 5.4 | May 17, 2021 | Feb 28, 2022 | Mar 31, 2022 |
Zabbix 5.0 LTS | May 12, 2020 | May 31, 2023 | May 31, 2025 |
Zabbix 4.0 LTS | October 1, 2018 | October 31, 2021 | October 31, 2023 |
- * 全面支持服务包括修复一些基础的、紧急的以及安全性上的问题。
- ** 最低限度支持 服务仅包括修复紧急的和安全性上的问题,Zabbix不保证对任何旧版本和不稳定版本的任意源代码修复。
# Zabbix版本发布计划
我们目前的发布计划周期为六个月,每六个月将有一个新的Zabbix稳定版本发布。
# Zabbix发布频率一览
每一年半Zabbix将会发布:
- Zabbix LTS (长期支持版本) 发布。. Zabbix LTS版本在五年内为Zabbix用户提供支持服务,包括三年的全面支持(基础的、紧急的以及安全性上的问题)和两年的最低限度支持(仅限紧急的和安全性上的问题)。Zabbix LTS版本的发布将体现在版本号第一位数字的变动上。
- Zabbix 标准版本发布。 Zabbix标准版本将在全面支持(基础的、紧急的以及安全性上的问题)的六个月内为Zabbix用户提供支持服务,直到下一个Zabbix稳定版本发布,再加一个月额外的最低限度支持(仅限紧急的和安全性上的问题)。Zabbix标准版本将会致使第二个版本号的变动。
(!) 当任何Zabbix版本其生命周期到期后,Zabbix将会停止进一步的维护更新,包括blocker和严重bug修复。因此,我们强烈建议您将Zabbix监控解决方案升级到最新版本。
说人话:
LTS:线性发布版,稳定持续维护版
标准版:类似小白鼠,不提供持续维护,如果有bug会在下个版本中修复
# zabbix5的版本具备那些新特性
组件版本要求:http/nginx
- mysql>5.5
- php>7.2
官方手册:https://www.zabbix.com/documentation/5.0/zh/manual/introduction/whatsnew500
新特性还挺多,但是关键的是下面这几个
- 增加了监控项预测试功能
- 自动发现进行重新定义与眼神,支持过滤监控、触发器
- 监控项以前取值是有长度限制的,最多256,现在上调到2048
- MD5 指纹加密>>bcrypt技术
- 不再支持ES7以前的版本
- 全面支持zabbix-agent2
# zabbix监控服务架构模型
zabbix是一个c/s架构
- ssh
- TCP链接
- snmp
- zabbix监控网络性能所依赖协议
- 例如:吞吐量、网络抖动
- IPMI
- 监控物理硬件性能指标,可以获取物理设备的温度、CPU转速
- JMX
- 监控Java项目所使用的出口,例如虚拟机内存的回收情况
# 基于nginx安装zabbix5.0
安装教程:下载Zabbix 5.0 LTS for Ubuntu 20.04 (Focal), MySQL, NGINX https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=ubuntu&os_version=20.04_focal&db=mysql&ws=nginx
# 安装部署服务端
# zabbix-agent2
zabbix-agent2 作为一款新的agent,未来可能回替代原有的agent。
特性:
- 1
- 2
# 安装
- 配置源
- 安装
yum install zabbix-agent2 -y
# 配置
- PidFile 进程文件
- LogFile 日志文件,如果未配置,日志会记录到syslog中
- LogFileSize 日志文件大小
- Server 服务地址
- ServerActive 主机主动注册功能
- Hostname 主机名字
- Include 包含的配置文件,同时生效
- ControlSocket 连接代理
# zabbix实战应用详解
web界面介绍
主机>>监控项>>模板>>触发器>>执行动作>>告警媒介
# 添加主机
- 客户端
vim /etc/zabbix/zabbix-agent2.conf
Server=服务端IP
2
- 服务端
主机
配置>>主机>>创建主机
主机名称:按照业务主机名称来写
群组:用来批量操作的,通常在企业中,要么通过业务层
客户端IP地址
模板
可以连接多个模板
什么时候确认添加主机完成没有问题
- ZBX:变成绿色才算是可用
# 添加监控项
可以之前添加模板来添加监控项,但是有时候我们有些监控项模板中没有,需要自定监控。
操作步骤如下:
- 客户端自定义监控取值
- 服务端web获取监控项键值