简介
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况等可以从任何地方访问。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
相关名词解释
主机(host)
- 你想要监控的联网设备,有IP/DNS。
监控项(item)
- 你想要接收的主机的特定数据,一个度量/指标数据。
触发器 (trigger)
- 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式,当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回“OK”的状态。
事件(event)
- 一次发生的需要注意的事情,例如触发器状态改变、发现/监控代理自动注册
异常(problems)
- 一个处在“异常”状态的触发器
动作(action)
- 预先定义的应对事件的操作,一个动作由操作(例如发出通知)和条件(什么时间进行操作)组成
升级(escalation)
- 一个在动作内执行操作的自定义方式; 发送通知/执行远程命令的顺序安排。
媒介(media)
- 发送告警通知的方式;传送途径
通知(notification)
- 关于事件的信心,将通过选设定的媒介途径发送给用户。
远程命令(remote command)
- 一个预定义好的,满足特定条件的情况下,可以在被监控主机上自动执行的命令。
模版(template)
-
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合
-
模版的应用使得主机上的监控任务部署快捷方便;也可以使监控任务的批量修改更加简单。模版是直接关联到每台单独的主机上。
应用(application)
- 一组监控项组成的逻辑分组
Web场景(web scenario)
- 检查网站可浏览性的一个或多个HTTP请求
前端(frontend)
- Zabbix提供的web界面
Zabbix API
- Zabbix API允许用户使用JSON RPC协议来创建、更新和获取Zabbix对象(如主机、监控项、图形和其他)信息或者执行任何其他的自定义的任务
Zabbix server
- Zabbix监控的核心程序,主要功能是与Zabbix proxies和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等
Zabbix agent
- 部署在监控对象上的,能够主动监控本地资源和应用的程序
Zabbix proxy
- 一个帮助Zabbix Server收集数据,分担Zabbix Server的负载的程序
加密(encryption)
- 支持Zabbix组建之间的加密通讯(server, proxy, agent, zabbix_sender 和 zabbix_get 程序)* 使用TLS(Transport Layer Security )协议。
安装
本教程以Centos7为例演示安装过程,其他版本请参考官网(https://www.zabbix.com/documentation/4.0/zh/manual/installation),通过docker安装还可参考(https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers)
1.添加 Zabbix 软件仓库
$ rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2.配置前端安装的先决条件
(Zabbix 前端需要额外的基础安装包。 您需要在运行 Zabbix 前端的系统中启用可选 rpms 的软件仓库)
$ yum-config-manager --enable rhel-7-server-optional-rpms
3.安装server/proxy/web
- 安装 Zabbix server 并使用 MySQL 数据库:
$ yum install zabbix-server-mysql
- 安装 Zabbix proxy 并使用 MySQL 数据库:
$ yum install zabbix-proxy-mysql
- 安装 Zabbix web 并使用 MySQL 数据库:
$ yum install zabbix-web-mysql
4. 创建数据库
注意:
- 对于 Zabbix-server守护进程而言,数据库是必须的。而运行 Zabbix-agent是不需要的。
- 如果 Zabbix server 和 Zabbix proxy 安装在相同的主机,它们必须创建不同名字的数据库!
#安装数据库
$ yum install -y mariadb-server
#启动数据库服务
$ systemctl start mariadb.service
#创建数据库并设置默认字符为utf-8
$ mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
#给用户zabbix授权,此处默认数据库帐号密码均为‘zabbix’
$ mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
5. 导入数据库
#使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据
$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#对于 Zabbix proxy,导入初始的数据库 schema:
$ zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p zabbix
6. 为 Zabbix server/proxy 配置数据库
#编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库。
$ vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password> #此处为zabbix数据库密码
7.配置zabbixserver连接mysql
$ sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
8.添加时区
$ sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
9.解决中文的乱码问题
$ yum -y install wqy-microhei-fonts
$ cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
7. 启动zabbix-server服务及zabbix-web服务
# 设置自启动zabbix_server服务(使用 'zabbix-proxy' 替换命令中的 'zabbix-server' 以启动和自启 Zabbix proxy。)
$ systemctl enable zabbix-server
#启动zabbix-server服务
$ systemctl start zabbix-server
#启动zabbix-web服务
$ systemctl start httpd
8. SELinux 配置
在 enforcing 模式下启用 SELinux 状态后,您需要执行以下命令以启用 Zabbix-web和 Zabbix server 之间的通信(若部署在同一机器上,无需此操作)
$ setsebool -P httpd_can_connect_zabbix on
$ setsebool -P httpd_can_network_connect_db on
#selinux及zabbix-web配置完成后,需要重启apache服务
$ systemctl restart httpd
8. zabbix-agent安装
#运行以下命令以安装 Zabbix agent :
$ yum install zabbix-agent
#修改配置文件(这里的配置文件若不修改则无法联通agent和server)
$ vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.117 # 务必填写zabbix-server的ip地址
ServerActive=192.168.10.117 #务必填写zabbix-server的ip地址
#运行以下命令以启动 Zabbix agent:
$ systemctl enabled zabbix-agent
$ systemctl start zabbix-agent
入门
1.登录
输入用户名(默认:Admin),密码(默认:zabbix)登录
2.增加用户
Zabbix在安装后默认只定义了两个用户。
-
'Admin' 用户是Zabbix的一个超级管理员,拥有所有权限。
-
'Guest' 用户是一个特殊的默认用户。如果你没有登陆,你访问Zabbix的时候使用的其实是“guest”权限。默认情况下,“guest”用户对Zabbix中的对象没有任何权限。
-
点击创建用户(Create user) 以增加用户。
image.png
-
填写相关信息,选择用户组
image.png
3.新建主机
注意:主机不单指某台物理机,而是指一切网络设备,是指任何网络实体,如一台物理服务器,一个网络交换机,一个虚拟机或者一些应用等,若还需要监控zabbix-server的宿主机,那么该宿主机也需要安装zabbix-agent并配置相关的配置。
- 点击创建主机(Create host)以添加新的主机
- 输入一个主机名称,可以使用字母数字、空格、点”.“、中划线”-“、下划线”_“。(注:此处的名称需要与agent的配置文件中的hostname配置项一样)
- 从右边的选择框中,选择一个或者多个组,然后点击 « 移动它们到'所在组(In groups)'选择框。(注:权限是对组而言的,所在在创建主机的时候务必对其选择一个或多个组)
- 输入主机的IP地址。(注:如果这是Zabbix server的IP地址,它必须是Zabbix agent配置文件中‘Server’参数的值。)
4.监控项
监控项是Zabbix中获得数据的基础。没有监控项,就没有数据——因为一个主机中只有监控项定义了单一的指标或者需要获得的数据。
(1)添加监控项
进入 配置 → 主机 页面查找到新建的主机, 在“新主机(New host)”行中,监控项(Items)的链接旁的数量会显示为'0'。点击这个‘items’链接,然后点击创建监控项(Create item),将会显示一个监控项定义表格。
- 输入 CPU Load 作为值。在列表中和其他地方,都会显示这个值作为监控项名称。
- 手动输入 system.cpu.load 作为值。这是监控项的一个技术上的名称,用于识别获取信息的类型。这个特定值需要是Zabbix Agent预定义值中的一种。
- 在此处选择 Numeric (float)。这个属性定义了想获得数据的格式。
image.png
(2)查看数据
注:第一次获得的监控项值最多需要60秒才能到达。默认情况下,这是服务器读取变化后的配置文件,获取并执行新的监控项的频率。
前往监控(Monitoring) → 最新数据(Latest data),然后点击监控项后的图表(Graph)链接以查看图表。
image.png
5.触发器
监控项只是用于收集数据。如果需要自动评估收到的数据,我们则需要定义触发器。触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。
如果收到的数据超过了这个定义好的级别,触发器将被“触发”,或者进入“异常(Problem)”状态——从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理的范围,触发器将会到“正常(Ok)”状态。
为监控项配置触发器,前往配置(Configuration) → 主机(Hosts),找到'新增主机(New host)',点击旁边的触发器(Triggers) ,然后点击创建触发器(Create trigger)。
可以通过触发器表达式以及点击“Add”按钮排列组合自己想要的触发器规则,查看更多的触发器表达式语法信息
6.问题通知
当监控项收集了数据后,触发器会根据异常状态触发报警。根据一些报警机制,它也会通知我们一些重要的事件,而不需要我们直接在Zabbix前端进行查看,最常用的通知方式是email。
前往管理(Administration) → 媒体类型(Media types),点击预定义媒体类型列表中的Email,根据具体环境的SMTP服务器配置E-mail。
7.模版
模版(templates)允许对有用的监控项、触发器和其他对象进行分组,只需要一步就可以对监控主机应用模版,以达到反复重用的目的。当一个模版链接到一个主机后,主机会继承这个模版中的所有对象。简单而言,一组预先定义好的检查会被快速应用到主机上,此时如果我们需要配置上千台主机,一些自动化操作会带来更多便利性。
在配置(Configuration) →模版(Templates)中,点击创建模版(Create template)
- 输入一个模版名称。可以使用数字、字母、空格及下划线。
- 使用选择(Select)按钮选择一个或者多个组。模版必须属于一个组。完成后,点击添加(Add)
参考资料
- http://blog.51cto.com/thedream/1882007 zabbix常见问题解决办法
网友评论