Zabbix介绍及安装
一、什么是zabbix及优缺点(对比cacti和nagios)
1.概念:
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
agent端:主机通过安装agent方式采集数据。
server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过php+apache在web前端展示。
zabbix = cacti + nagios
2.优缺点:
zabbix优点:
1)数据采集:
可用性和性能检测,自动发现,支持agent、snmp、JMX、telnet等多种采集方式,支持主动和被动模式数据传输、支持用户自定义插件,自定义间隔收集数据
2)高可用:
server对设备性能要求低,支持proxy分布式监控,分布式集中管理,有自动发现功能,可以实现自动化监控;开放式接口,扩展性强,插件编写容易
3)告警管理:
支持多条件告警,支持多种告警方式,支持多组模板,模板继承。
4)告警设置:
告警周期,告警级别,告警恢复通知、告警暂停,时段阈值、支持维护周期、支持单机停用
5)图形化展示:
允许自定义创建多监控项视图,网络拓扑,自定义面板展示,自定义IT服务可用性
6)历史数据:
历史数据查询可配置,内置housekeeping数据清理机制
7)安全审计:
具备安全的用户审计日志,权限认证,用户可以限制允许维护的列表。
zabbix缺点:
1)性能瓶颈,监控系统没有低估高峰期,具有持续性和周期性,机器量越大,数据的增大会使数据库的写入成为一定的瓶颈,官网给出的单机上限5000台,届时就需要增加proxy,增加成本。
2)Zabbix采集数据有pull方式,也就是server主动模式,当目标机器量大之后,pull任务会出现积压。采集数据会延迟
3)项目二次开发,需要分析MySQL表结构,表结构比较复杂,通过API开发对开发能力有要求。
3)内置housekeeping在执行过程中会对数据库增加压力,需要对数据库进行优化。
二、监控功能
主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制
监控主机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的组件及进程
1.重要组件
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接口;
六、安装zabbix4.0
1.需要数据库:
安装mariadb10.3数据库
配置源:
[mariadb]
name=MariaDB
baseurl=http://mirrors.ustc.edu.cn/mariadb/yum/10.3/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
安装mariadb数据库
——#yum install MariaDB -y
2.安装zabbix4.0(来自官网步骤)
(1)装源:
——#rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
(2)安装zabbix所需的组件
——#yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
3.建立数据库:
(1)建立库
——# mysql -uroot -proot
mysql> create database zabbix character set utf8 collate utf8_bin; #创建数据库zabbix且支持中文,collate utf8_bin:对大小写敏感
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; #授予zabbix用户对zabbix数据库的所有特权且本地登录密码为“zabbix”
mysql> quit;
(2)导入zabbix服务器所需要的表和数据
——#zcat /usr/share/doc/zabbix-server-mysql*(按版本填,可Tab补全)/create.sql.gz | mysql -uzabbix -pzabbix zabbix
4.配置zabbix文件
(1)配置server文件
——#vim /etc/zabbix/zabbix_server.conf
........................
DBPassword=zabbix
............................
(2)编辑文件设置时区
——#vim /etc/httpd/conf.d/zabbix.conf
.........................................
php_value date.timezone Europe/Riga(打开注释)
改为:php_value date.timezone Asia/Shanghai
5.启动服务和开机自启
——#systemctl restart zabbix-server zabbix-agent httpd
——#systemctl enable zabbix-server zabbix-agent httpd
——#ss -ntl
10050:为agent端口
10051:为server端口
七.浏览器访问
#有乱码方块的解决办法在windows下的C:\Windows\Fonts下找到宋体字文件simsun.ttc
上传到linux服务器中
——#cd /usr/share/zabbix/fonts
#将原来的字体备份mv graphfont.ttf graphfont.ttf.bak
#把windows中的字体改名为graphfont.ttf
——#mv simsun.ttc graphfont.ttf
————————————————————————————分割线·————————————————————————————————