zabbix监控部署及其报警机制
一、zabbix简介
1、关于zabbix
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。zabbix由2部分构成,zabbix server与可选组件zabbix agent。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。
Zabbix 是一个高度成熟完善的网络监控解决方案,一个的软件包中包含了多种功能。
所有的监控,承载的协议都离不开SNMP协议。
2、zabbix主要功能
数据采集
- 可用性和性能检查;
- 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
- 自定义检查;
- 按照自定义的时间间隔采集需要的数据;
- 通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
- 您可以参考后端数据库定义非常灵活的告警阈值,即触发器
高度可配置化的告警
- 可以根据递增计划、接收者、媒介类型自定义发送告警通知;
- 使用宏变量可以使告警通知变得更加高效有用;
- 自动操作包含远程执行命令。
实时图形
- 使用内置图形功能可以将监控项实时绘制成图形。
Web 监控功能
- Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项
- 可以组合多个监控项到单个视图中,创建自定义图表;
- 网络拓扑图;
- 以仪表盘样式展示自定义聚合图形和幻灯片演示;
- 报表;
- 监控资源的更高层次展示视图(业务视图)。
历史数据存储
- 存储在数据库中的数据;
- 历史配置;
- 内置数据管理机制(housekeeping)。
配置简单
- 将被监控设备添加为主机;
- 主机一旦添加到数据库中,就会采集数据用于监控;
- 将模板用于监控设备。
使用模板
- 模板中分组检查;
- 模板可以关联模板,继承已关联模板的属性。
网络发现
- 自动发现网络设备;
- Zabbix Agent 发现设备后自动注册;
- 自动发现文件系统、网络接口和 SNMP OIDs 值。
快捷的 Web 界面
- 基于 PHP 的 Web 前端;
- 可以从任何地方访问;
- 您可以定制自己的操作方式;
- 您可以通过审计日志来查看你的操作。
Zabbix API
- Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统
- 安全的用户身份验证;
- 指定的用户只能查看指定的权限范围内的视图。
功能强大且易于扩展的 Zabbix Agent
- 部署于被监控对象上;
- 支持 Linux 和 Windows ;
二进制守护进程
- 为了更好的性能和更少的内存占用,采用 C 语言编写;
- 便于移植。
适应更复杂的环境
- 使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。
二、部署LNMP+zabbix
环境搭建
主机 | IP地址 | 软件 |
---|---|---|
server | 192.168.140.11 | LNMP+zabbix |
client(node) | 192.168.140.12 | zabbix |
server:192.168.140.11
这个部署LNMP+zabbix都是在服务器上部署除了配置代理端那里
1、LNMP安装环境
修改主机名然后先关闭防火墙及安全机制
hostnamectl set-hostname server
su
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
1)安装nginx
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm //从官网上下载nginx的rpm包
vim /etc/yum.repos.d/nginx.repo //手动创建nginx yum安装源
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum clean all
yum list
其中baseul=http://nginx.org/packages/OS/OSRELEASE/$basearch/,把”OS”替换成” thel”或” centos”,把”OSRELEASE”替换成”6”或”7”
安装并启动nginx
yum install nginx -y
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx
//如果企业中开着软件防火墙,可以使用下面两条命令允许使用nginx通过
firewall-cmd --permanent --add-service=http --zone=public
firewall-cmd --reload
真机上访问nginx主页
http://192.168.140.11
2)安装mysql 5.7
yum install -y mariadb-server mariadb
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation
mysql -uroot -p
3)安装php 7.2
//使用rpm或yum下载epel源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
或
yum install epel-release -y
//yum仓库建立
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #建立yum的webtatic源
//等待时间取决于网络
yum install -y php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
----------------
php72w是本身服务包;
php72w-devel用于构建PHP扩展所需的文件;
php72w-fpm是PHP FastCGI进程管理器;
php72w-gd是PHP应用程序的模块,用于使用gd图形库;
php72w-mbstring模块是需要多字节字符串处理的PHP应用程序的模块;
php72w-mysql是数据库mysql驱动模块,在mysql的官网下载的
————————————————
php -v //查看php版本
4)配置nginx支持php
修改php-fpm配置文件
vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改为nginx
//8 user = nginx //属主
//10 group = nginx //属组
vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php。以支持index.php的首页
/10 index