Zabbix的介绍
一、什么是zabbix及优缺点(对比cacti和nagios)
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
agent端:主机通过安装agent方式采集数据。
server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过php+apache在web前端展示.
zabbix = cacti + nagios
- 优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
- 缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
二、监控功能
主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制
监控主机zabbix有专用的agent,可以监控Linux,Windows,FreeBSD等 。
监控网络设备zabbix通过SNMP,ssh(不多用)
可监控对象
- 设备:服务器,路由器,交换机
- 软件:OS,网络,应用程序
- 主机性能指标监控
- 故障监控: down机,服务不可用,主机不可达
三、工作原理
一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
四、zabbix的组件及进程
zabbix由以下几个组件部分构成:
1、Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2、Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3、Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4、Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
5、Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
注:zabbix node也是 zabbix server的一种 。
五、zabbix监控环境中基本概念
1、主机(host):要监控的网络设备,可由IP或DNS名称指定;
2、主机组(host group):主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用;
3、监控项(item):一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数据收集的核心,相对某个监控对象,每个item都由"key"标识;
4、触发器(trigger):一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就是阈值;接收的数据量大于阈值时,触发器状态将从"OK"转变为"Problem",当数据再次恢复到合理范围,又转变为"OK";
5、事件(event):触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上线的agent的自动注册等;
6、动作(action):指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;
7、报警升级(escalation):发送警报或者执行远程命令的自定义方案,如每隔5分钟发送一次警报,共发送5次等;
8、媒介(media):发送通知的手段或者通道,如Email、Jabber或者SMS等;
9、通知(notification):通过选定的媒介向用户发送的有关某事件的信息;
10、远程命令(remote command):预定义的命令,可在被监控主机处于某特定条件下时自动执行;
11、模板(template):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level discovery rule;模板可以直接链接至某个主机;
12、应用(application):一组item的集合;
13、web场景(web scennario):用于检测web站点可用性的一个活多个HTTP请求;
14、前端(frontend):Zabbix的web接口;
zabbix服务器部署安装
第一步:下载zabbix的yum源
[root@ken-node1 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
第二步:下载zabbix安装包,数据库和apache
[root@ken-node1 ~]# yum install zabbix-server-mysql zabbix-web-mysql mariadb-server httpd -y
第三步:启动数据库
[root@ken-node1 ~]# systemctl restart mariadb
第四步:复制zabbix数据库表到/root目录下,并解压(因版本不一,所以先去到/usr/share/doc/下查看)
[root@ken-node1 ~]# cp /usr/share/doc/zabbix-server-mysql-*/create.sql.gz /root [root@ken-node1 ~]# gunzip create.sql.gz
第五步:创建数据库并导入表
[root@ken-node1 ~]# mysql -uroot -proot Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 2 Server version: 5.5.60-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]> create database zabbix; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost' identified by '123'; MariaDB [(none)]> use zabbix; Database changed MariaDB [zabbix]> source /root/create.sql;(导入数据)
第六步:启动apache
[root@ken-node1 ~]# systemctl restart httpd
浏览器访问
第一步:浏览器输入ip/zabbix
点击下一步
第二步:报如下的提示。需要修改时区
第三步:修改时区
在zabbix.conf中20行处的时区为亚洲上海
[root@ken-node1 ~]# vim /etc/httpd/conf.d/zabbix.conf 20 php_value date.timezone Asia/Shanghai
第四步:重启httpd
[root@ken-node1 ~]# systemctl restart httpd
第五步:刷新浏览器
确认创建了zabbix数据库及zabbix用户点击下一步即可
第六步:确认数据
第七步:确认信息
第八步:创建成功提示
第九步:登录
账号:Admin
密码:zabbix
启动服务器端
我们现在已经成功登录进zabbix管理界面,但是提示还没有启动zabbix服务器,所以我们还需要启动我们的服务器。
第一步:修改zabbix的配置文件,在125行处增加数据库密码
[root@ken-node1 ~]# vim /etc/zabbix/zabbix_server.conf ... 125 DBPassword=123
第二步:重启zabbix服务器
zabbix服务器端监听的端口是10050
[root@ken-node1 ~]# systemctl restart zabbix-server [root@ken-node1 ~]# ss -tnl | grep 10051 LISTEN 0 128 *:10051 *:* LISTEN 0 128 :::10051 :::*
第三步:浏览器刷新
可以发现zabbix server已经在运行状态了