文章目录
一:zabbix
1.1:zabbix 简介
- Zabbix是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持
- Zabbix是一个企业级的分布式开源监控方案
- Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案
- Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbx可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此
- Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用
- 商业支持由Zabbix公司提供
- 世界各地许多不同规模的组织将Zabbix作为主要的监控平台
1.2:zabbix 特点
数据收集
- 可用性和性能检查
- 支持SNMP(包括捕获和主动轮训),IPMI,JMX,VMware监控
- 自定义检查
- 按照自定义的间隔收集需要的数据
- 由Server/Proxy和agents执行
灵活的阀值定义
- 您可以非常灵活的定义问题阈值,称之为触发器,触发器从后端数据库获取参考值
高度可配置化的告警
- 可以根据升级计划,接收方和媒体类型来定制发送告警通知
- 使用宏变量可以使告警通知更有意义更高效
- 自动化动作包含执行远程命令
实时图表绘制
- 使用内置图表绘制功能可以将监控项的内容立即绘制成图表
Web监控功能
- Zabbix可以模拟鼠标在Web网站上的操作来检查Web的功能和响应时间
丰富的可视化选项
- 能够创建自定义的图形,图形中可将多个监控项组合在一个视图展示
- 网络拓扑图
- 以仪表盘的样式展现自定义的展现和幻灯片
- 报告
- 监控资源的高级(业务)视图
历史数据存储
- 数据存储在数据库中
- 可配置历史数据
- 内置数据管理机制
配置简单
- 将被监控对象添加为主机
- 主机被创建用于监控,在数据库中是唯一存在的
- 应用模板来监控设备
使用模板
- 在模板中分组检查
- 模板可以关联其他模板
网络发现
- 自动发现网络设备
- 监控代理自动注册
- 发现文件系统,网络接口和SNMP OID值
简洁的Web界面
- Web前端基于PHP
- 可从任何地方访问
- 你可以定制自己的操作方式
- 审核日志
Zabbix API
- Zabbix API为Zabbix 提供了对外的可编程接口,用于批量操作,第三方软件集成和其他目的
权限管理系统
- 安全用户认证
- 特定用户可以限制访问特定的视图
功能强大并易于扩展的监控代理
- 部署在被监控对象上
- 可以部署在Linux和Windows上
二进制代码
- 为了性能和更少内存的占用,用C语言编写
- 便于移植
为复杂环境准备
- 使用Zabbix proxy代理服务器,使得远程监控更简单
1.3:zabbix 重要组件
①zabbix server
- 负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
②database storage
- 专用于存储所有配置信息,以及由zabbix收集的数据
③web interface
- zabbix的GUI接口
④proxy
- 可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力
⑤agent
- 部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端
1.4:监控系统运行流程
- agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
- zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图
这里agentd收集数据分为主动和被动两种模式
- 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
- 被动:server向agent请求获取监控项的数据,agent返回数据
二:部署 zabbix 监控
2.1:部署环境
- Zabbix服务器(zabbix-server):20.0.0.15/24(监控端)
- Linux服务器(zabbix-client):20.0.0.16/24(被监控端)
2.2:服务器监控端配置
2.2.1:关闭防火墙、核心防护
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
2.2.2:部署LAMP架构
(1)安装依赖包
[root@zabbix-server ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
(2)修改apache和php配置文件
[root@zabbix-server ~]# vi /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 # 95 开启域名,域名可更改或不更改
DirectoryIndex index.php index.html # 164 添加 index.php
[root@zabbix-server ~]# vi /etc/php.ini
date.timezone = PRC # 878
(3)开启 apache和mariadb,并监听端口
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# netstat -anpt | grep 80
tcp6 0 0 :::80 :::* LISTEN 15979/httpd
[root@zabbix-server ~]# netstat -anpt | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 16263/mysqld
(4)初始化数据库
[root@zabbix-server ~]# mysql_secure_installation
Enter current password for root (enter for none):# 输入root的当前密码(为none输入)直接回车
Set root password? [Y/n] y
New password: # 设置密码为:123123(自己设)
Re-enter new password: # 123123
Password updated successfully!
Reloading privilege tables..
... Success!
Remove anonymous users? [Y/n] y # 移除匿名账号
... Success!
Disallow root login remotely? [Y/n] n # 不允许 root 账号远程登录
... skipping.
Remove test database and access to it? [Y/n