1. zabbix概述
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
agent端:主机通过安装agent方式采集数据。
server端:通过收集agent发送的数据,写入数据库(MySQL,ORACLE等),再通过 php+apache在web前端展示.
zabbix = cacti + nagios
zabbix工作原理:zabbix监控客户端时,客户端上安装有agent端,agent只能与server端通信,服务器与客户端通信时,agent收集客户端数据发送server,server会将数据写入数据库,然后通过web接口调用数据库,将数据展示出来,客户端通过网页管理、添加、配置zabbix。
zabbix监控时agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy;
被动:server向agent请求获取监控项的数据,agent返回数据。
被动模式服务端需要多个线程来接收agent端的数据,会给server端很大的压力,因此,一般来说主动模式要优于被动模式。当客户端较多时可以在s\c之间添加多个代理proxy来减轻server端和proxy的压力,该架构即分布式架构。若不加proxy则成为直连模式架构。
优点:基于两款工具优点于一身并更强大,实现企业级分布式监控。
缺点:2.2版本带宽占用大但是升级到2.4版本后更节省了带宽资源,其它再无发现。
2. zabbix监控功能
zabbix可以对主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细的报表图表绘制等。
监控主机zabbix有专用的agent,可以监控Linux,Windows,FreeBSD等 。
监控网络设备zabbix通过SNMP,ssh(不多用)
可监控对象
- 设备:服务器,路由器,交换机
- 软件:OS,网络,应用程序
- 主机性能指标监控
- 故障监控: down机,服务不可用,主机不可达
3. zabbix重要组件及进程
1>Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
2>Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
3> Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
4>Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
5>Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端。
4. 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接口;
5. zabbix的安装
安装zabbix之前要先安装数据库,另外zabbix有其自己的源。在zabbix官网有详细的安装步骤。可以按照官网来安装。
5.1 安装zabbix4.0的源
[root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Retrieving https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.yjsQKi: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-4.0-1.el7 ################################# [100%]
[root@localhost ~]# yum clean all
5.2 安装zabbix组件
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
Installed:
zabbix-agent.x86_64 0:4.0.7-1.el7 zabbix-server-mysql.x86_64 0:4.0.7-1.el7 zabbix-web-mysql.noarch 0:4.0.7-1.el7
…..
Installed:
zabbix-agent.x86_64 0:4.0.7-1.el7 zabbix-server-mysql.x86_64 0:4.0.7-1.el7
zabbix-web-mysql.noarch 0:4.0.7-1.el7
若无法下载,进入zabbix源修改源文件,将baseurl中的地址http改为https,重新挂载后再下载
5.3 进入数据库创建zabbix数据库,给予用户权限及密码
[root@localhost ~]# mysql -uroot -p123
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; #对大小写敏感
MariaDB [(none)]> MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> show databases;
+---------------------+
| Database |
+---------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+---------------------+
5.4 导入zabbix服务器所需要的表和数据
MariaDB [(none)]> use zabbix
Database changed
MariaDB [zabbix]> show tables;
Empty set (0.000 sec)
exit
[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
[root@localhost ~]# mysql -uroot -p123
MariaDB [(none)]> use zabbix
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
| alerts |
……..
5.5 更改配置文件/etc/zabbix/zabbix_server.conf
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
……
# Mandatory: no
# Default:
DBPassword=zabbix #zabbix是用户zabbix的密码
5.6 设置时区文件/etc/httpd/conf.d/zabbix.conf
[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf
……
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
5.7 启动服务
[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd
[root@localhost ~]# systemctl enable zabbix-server zabbix-agent httpd
[root@localhost ~]# systemctl status zabbix-server
……
Active: active (running) since Wed 2019-05-22 19:22:41 CST; 1min 5s ago
[root@localhost ~]# ss -tnl
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
#zabbixserver端端口号为10051,agent端端口号为10050
5.8 windows浏览器访问
进入引导界面
检查,确保所有的都是OK
输入密码zabbix
name可以不写
finish完成初始化
输入用户密码,username为Admin,密码为zabbix
进入主界面
因为是同一台至主机同时充当server和agent,选择配置----à主机,查看同步。绿色表示已同步,灰色表示正在连接。
进行图形形式的监测,比如监测cpu
可以发现柱状图的字段是方块码,需要进行字体替换替换,进入C/Windows/Founts,复制一款字体,上传至zabbix
[root@localhost ~]# rz
[root@localhost ~]# ls
STXINGKA.TTF
#搜索zabbix的字体进行替换
[root@localhost ~]# find / -name fonts
/usr/share/zabbix/fonts
[root@localhost ~]# cp STXINGKA.TTF /usr/share/zabbix/fonts/
[root@localhost ~]# cd /usr/share/zabbix/fonts/
[root@localhost fonts]# ls
graphfont.ttf STXINGKA.TTF
#先备份原字体,再进行替换
[root@localhost fonts]# mv graphfont.ttf graphfont.ttf.bak
[root@localhost fonts]# mv STXINGKA.TTF graphfont.ttf
浏览器刷新查看