Zabbix企业分布式监控(Zabbix Enterprise Distributed Monitoring)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
前言:在工作中常常需要对服务器进行监控,但是要选择一款合适监控软件可不容易,今天介绍下zabbix这款监控软件
Zabbix企业分布式监控
一、Zabbix介绍
1.Zabbix是一个企业级的、开源的、分布式的监控套件
2.Zabbix可以监控网络和服务的监控状况.Zabbix利用灵活的告警机制,允许用户对事件发送基于Email的告警.
这样可以保证快速的对问题作出相应. Zabbix可以利用存储数据提供杰出的报告及图形化方式. 这一特性将帮助用户完成容量规划。
3.Zabbix 支持 polling和trapping两种方式. 所有的 Zabbix报告都可以通过配置参数在WEB前端进行访问.
Web前端将帮助你在任何区域都能够迅速获得你的网络及服务状况. Zabbix 可以通过尽可能的配置来扮演监控你的IT基础框架的角色,
而不管你是来自于小型组织还是大规模的公司.
4.Zabbix是零成本的. 因为 Zabbix 编写和发布基于 GPL V2 协议. 意味着源代码是免费发布的
5.Zabbix公司也提供商业化的技术支持
二、Zabbix特性
1.数据收集
a.可用性及性能检测
b.支持SNMP(trapping及polling)、IPMI-(智能平台管理接口,定义了嵌入式管理子系统进行通信的特定方法)、JMX监控-(是一个为应用程序、设备、系统等植入管理功能的框架)
c.自定义检测
b.自定义间隔收集数据
e.server/porxy/agents
2.灵活的阀值定义
a.允许灵活地自定义问题阀值,Zabbix中称为触发器(trigger),存储在后端数据库中。
3.高级告警配置
a)可以自定义告警升级(escalation)、接收者及告警方式
b)告警信息可以配置并允许使用宏变量,让zabbix更加灵活
c)通过远程命令实行自动化动作(action)
4.实时绘图
a)通过内置的绘图方法实现监控数据实时绘图
5.扩展的图形化显示
b)允许自定义创建多监控项视图
c)网络拓扑
d)自定义的面板(screen)和slide shows,并允许在dashboard页面显示
e)报告
f)高等级(商业)监控资源
6.历史数据存储
a)数据存储在数据库中
b)历史数据可配置
c)内置数据清理机制
7.配置简单
a)主机通过添加监控设备方式添加
b)一次配置,终生监控(除非调整或删除)
c)监控设备允许使用模板
8.模板使用
a)模板中可以添加组监控
b)模板允许继承
9.网络自动发现
a)自动发现网络设备
b)agent自动注册
c)自动发现文件系统、网卡设备、SNMP OID(对象标识符)等
10.快速的web接口
a)web前端采用php编写
b)访问无障碍
c)你想怎么做就能做
d)审计日志
11.Zabbix API
a)Zabbix API提供程序级别的访问接口,第三方程序可以很快接入
12.权限系统
b)安全的权限认证
c)用户可以限制运行维护的列表
13.全特性、agent易扩展
a)在监控目标上部署
b)支持Linux及window
14.二进制守护进程
a)C开发,高性能,低内存
b)易移植
15.具备应对负责环境情况
a)通过Zabbix proxy可以非常容易的创建远程监控
三、Zabbix进程构成
默认情况下 zabbix 包含 5 个程序: zabbix_agentd、 zabbix_get、 zabbix_proxy、 zabbix_sender、
zabbix_server,另外 zabbix_java_gateway
1.zabbix_agentd
客户端守护进程,收集客户端数据,例如 cpu 负载、内存、硬盘使用情况等
2.zabbix_get
zabbix工具,单独使用的命令,通常在 server 或者 proxy 端执行, 用户获取被监控端数据, 通常用于排错。
例如在 server 端获取不到客户端的内存数据,我们可以使用 zabbix_get 获取客户端的内容的方式来做故障排查
3.zabbix_sender
zabbix工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的 check,并且与 trapper 配合使用。 生
存环境中,个别非常耗时间 check 经常导致 zabbix 超时。于是我们在脚本执行完毕之后,使用 sender 主动提交数据
4.zabbix_server
zabbix服务端守护进程。zabbix_agentd、 zabbix_get、 zabbix_sender、 zabbix_proxy、 zabbix_java_gateway 的数
据最终都是提交到 server
备注:当然不是数据都是主动提交给 zabbix_server,大多数情况下都是 server 主动去取数据。
5.zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。
一般跨机房、地区的环境需要用到proxy。
6.zabbix_java_gateway
zabbix2.0 之后引入的一个功能。顾名思义: Java 网关,类似 agentd,但是只用于 Java 方面。
需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者 proxy。
四、Zabbix安装
安装Zabbix前需要搭建LNMP环境
4.1、安装Nginx
1.创建用户
1 |
|
2.进入/usr/local/src目录,创建/usr/local/nginx目录
1 2 |
|
3.解压nginx源码包
1 |
|
4.安装前的准备,安装pcre和openssl,支持rewrite和https
1 |
|
5.编译nginx
1 2 |
|
6.启动Nginx
1 2 3 4 5 6 |
|
7.添加环境变量
1 2 3 |
|
4.2、安装MySQL服务
1.创建用户
1 |
|
2.进入目录,解压mysql二进制包
1 2 |
|
3.生成配置文件和开机脚本
1 2 3 |
|
4.编辑/etc/init.d/mysqld文件
1 2 3 4 |
|
5.做一个软链接
1 |
|
6.修改权限,为了生成初始化数据库
1 |
|
7.初始化数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
8.启动数据库
1 2 |
|
9.添加环境变量
1 2 3 |
|
10.添加数据库密码
1 |
|
11.登录测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
4.3、安装PHP
1.安装依赖
1 |
|
2.创建目录
1 |
|
3.解压编译安装PHP
1 2 3 4 5 6 7 8 9 10 |
|
4.安装成功后配置php,在php.ini配置文件添加内容
1 2 3 |
|
5.安全优化
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
6.启动php-fpm
1 2 3 4 5 6 |
|
查看端口
1 2 |
|
7.设置环境变量
1 2 3 4 5 |
|
8.结合nginx连接php 添加php文件
1 2 3 4 5 |
|
9.配置nginx配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
10.重启nginx服务
1 |
|
浏览器访问是否处理php页面,如果有就成功了
4.4正式安装zabbix
确保以下参数选项
1.数据库要在my.cnf添加的选项
1 2 |
|
2.PHP配置参数,php.ini配置文件
1 2 3 4 5 6 |
|
3.安装所需的依赖包
1 |
|
4.做一个软件接
1 2 |
|
5.创建zabbix编译时指定目录
1 |
|
6.解压zabbix源码包,并且编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
7.创建zabbix用户
1 2 3 4 5 6 7 8 9 |
|
8.初始化zabbix数据库
zabbix server 与 proxy 需要数据库, angent 不需要。尤其要注意的是proxy只需要导入1个sql文件,而server一共要导入3个sql 文件。
我当时在搭建 proxy 的时候导入了3个sql,导致出现报错。后来才发现 proxy 只需要导入1个表结构即可。
创建zabbix数据库,和zabbix用户
1 2 3 4 5 6 |
|
9.进入zabbix-3.2.4的源码目录,按顺序导入三个SQL脚本导入zabbix库
1 2 3 4 |
|
10.修改zabbix.conf
1 2 3 4 5 6 7 8 |
|
11.zabbix3.2.4的启动
1 2 3 4 5 6 7 8 9 10 11 |
|
12.添加环境变量和开机自启动
1 2 3 4 5 6 |
|
13.拷贝zabbix的web环境文件
1 2 |
|
确保前面都没问题,打开浏览器访问http://url/zabbix
如果这一步有问题,chmod 777 /usr/local/nginx/html/zabbix/conf/,因为要生成zabbix.conf.php文件
默认用admin用户登录,密码为zabbix
这是效果图,可以根据自己的需求来调整zabbix