Zabbix 是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix 提供了出色的报告和数据可视化功能。Zabbix 支持轮询和被动捕获。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
核心组件主要是 Agent 和 Server,其中 Agent 主要负责采集数据并通过主动或者被动的方式采集数据发送到 Server/Proxy,除此之外,为了扩展监控项,Agent 还支持执行自定义脚本。Server 主要负责接收 Agent 发送的监控息,并进行汇总存储,触发告警等。ZabbixServer 将收集的监控数据存储到 Zabbix Database 中。Zabbix Database 支持常用的关系型数据库,如果 MySQL、PostgreSQL、Oracle 等,默认是 MySQL,并提供 Zabbix Web页面(PHP 编写)数据查询。
关闭防火墙:
[root@scentos szc]# systemctl stop firewalld.service
[root@scentos szc]# systemctl disable firewalld.service
关闭selinux:
[root@scentos szc]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
重启
[root@scentos szc]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Retrieving https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.7oDWaF: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-release-5.0-1.el7 ################################# [100%]
安装centos-release-scl:
[root@scentos szc]# yum install -y centos-release-scl
base | 3.6 kB 00:00:00
http://repo.clickhouse.tech/rpm/stable/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: repo.clickhouse.tech; Unknown error"
Trying other mirror.
extras | 2.9 kB 00:00:00
mongodb-org-3.4 | 2.5 kB 00:00:00
mysql-connectors-community | 2.6 kB 00:00:00
mysql-tools-community | 2.6 kB 00:00:00
mysql57-community | 2.6 kB 00:00:00
updates | 2.9 kB 00:00:00
zabbix | 2.9 kB 00:00:00
zabbix-non-supported | 2.9 kB 00:00:00
(1/7): extras/7/x86_64/primary_db | 246 kB 00:00:05
(2/7): mysql-connectors-community/x86_64/primary_db | 90 kB 00:00:06
(3/7): mysql-tools-community/x86_64/primary_db | 94 kB 00:00:06
(4/7): mysql57-community/x86_64/primary_db | 298 kB 00:00:07
(5/7): zabbix-non-supported/x86_64/primary_db | 3.7 kB 00:00:06
(6/7): zabbix/x86_64/primary_db | 146 kB 00:00:06
(7/7): updates/7/x86_64/primary_db | 14 MB 00:00:34
Resolving Dependencies
--> Running transaction check
---> Package centos-release-scl.noarch 0:2-3.el7.centos will be installed
--> Processing Dependency: centos-release-scl-rh for package: centos-release-scl-2-3.el7.centos.noarch
--> Running transaction check
---> Package centos-release-scl-rh.noarch 0:2-3.el7.centos will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================================================================================================================================
Package Arch Version Repository Size
=================================================================================================================================================================================
Installing:
centos-release-scl noarch 2-3.el7.centos extras 12 k
Installing for dependencies:
centos-release-scl-rh noarch 2-3.el7.centos extras 12 k
Transaction Summary
=================================================================================================================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 24 k
Installed size: 39 k
Downloading packages:
(1/2): centos-release-scl-rh-2-3.el7.centos.noarch.rpm | 12 kB 00:00:06
(2/2): centos-release-scl-2-3.el7.centos.noarch.rpm | 12 kB 00:00:06
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 3.5 kB/s | 24 kB 00:00:06
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 2 pre-existing rpmdb problem(s), 'yum check' output follows:
PackageKit-1.1.10-2.el7.centos.x86_64 has missing requires of PackageKit-backend
yajl-devel-2.0.4-4.el7.i686 has missing requires of libyajl.so.2
Installing : centos-release-scl-rh-2-3.el7.centos.noarch 1/2
Installing : centos-release-scl-2-3.el7.centos.noarch 2/2
Verifying : centos-release-scl-2-3.el7.centos.noarch 1/2
Verifying : centos-release-scl-rh-2-3.el7.centos.noarch 2/2
Installed:
centos-release-scl.noarch 0:2-3.el7.centos
Dependency Installed:
centos-release-scl-rh.noarch 0:2-3.el7.centos
Complete!
修改/etc/yum.repos.d/zabbix.repo文件,修改后的文件内容如下:
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
[root@scentos szc]# sudo yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl
主要是通过MySQL配置Zabbix的,首先创建zabbix数据库:
[root@scentos szc]# mysql -uroot -proot -e "create database zabbix character set utf8 collate utf8_bin"
mysql: [Warning] Using a password on the command line interface can be insecure.
然后导入建表语句,使用到的压缩包在安装Zabbix时会自动下载到指定位置:
[root@scentos szc]# zcat /usr/share/doc/zabbix-server-mysql-5.0.21/create.sql.gz | mysql -uroot -proot zabbix
mysql: [Warning] Using a password on the command line interface can be insecure.
修改/etc/zabbix/zabbix_server.conf文件:
[root@scentos szc]# vim /etc/zabbix/zabbix_server.conf
打开以下行的注释并修改,配置主机名、数据库名、数据库用户名和密码:
DBHost=scentos
DBName=zabbix
DBUser=root
DBPassword=root
修改/etc/zabbix/zabbix_agentd.conf文件:
[root@scentos szc]# vim /etc/zabbix/zabbix_agentd.conf
修改Server行为服务器域名或IP,注释掉ServerActive和Hostname行:
Server=scentos
# ServerActive=127.0.0.1
# Hostname=Zabbix server
修改/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf文件:
[root@scentos szc]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
修改时区为东八区:
php_value[date.timezone] = Asia/Shanghai
[root@scentos szc]# systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
如果需要开机自启,则再运行以下命令:
[root@scentos szc]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
在windows浏览器中输入http://scentos(虚拟机IP或域名)/zabbix,看见以下界面,则Zabbix安装配置启动成功:
点击下一步,查看配置,全部ok即可下一步:
配置数据库,修改端口、用户名和密码,然后下一步:
配置zabbixServer,修改主机或域名即可:
查看预安装小结,然后安装即可:
点击完成后,即可登录Zabbix,用户名Admin,密码zabbix:
设置语言为中文,点击左侧用户设置:
设置语言,然后更新即可:
结果如下:
默认监控的是ZabbixServer,地址使用的是127.0.0.1,需要我们后续配置。
Zabbix术语:
以检测Zabbix服务器上Hadoop的DataNode停止为例,对Zabbix的基本使用方法进行说明
点击配置->主机->创建主机:
配置主机名(任意填)、群组(点击右侧选择,任意选)和IP地址,然后点击添加:
查看新增结果:
点击新建的主机里的监控项:
点击创建监控项:
配置监控项名称(随便写)和键值:proc.num[,all,datanode],如下所示:
点击下面的添加后,查看结果:
启动Hadoop的yarn和hdfs后,点击监测->最新数据,查看最新数据:
点击配置->主机->触发器:
点击创建触发器:
取名、设置严重性、添加表达式:
在添加表达式界面里,选择监控项和结果,然后点击插入:
然后,回到创建触发器界面,点击添加,查看添加结果:
点击配置->动作->创建动作:
起名,添加条件,然后设置操作:
添加的条件就是刚才创建的触发器:
添加好触发器后的界面如下:
点击操作,进入操作添加界面:
在设置发送的用户群组和用户中,添加Zabbix administrators和Admin,然后点击添加即可:
查看操作的添加结果,并点击添加:
查看动作的添加结果:
点击管理->报警媒介类型->Email:
修改SMTP服务器、SMTP HELO、SMTP电邮和用户名密码:
其中密码是QQ邮箱的SMTP授权码,要在QQ邮箱的邮箱设置->账户->POP3…服务中开启SMTP服务,并且点击生成授权码,再按照指定步骤获取:
配置好Zabbix邮箱后,点击更新,查看更新结果,并进行测试:
填写好收件人和消息后,点击测试,看到测试成功即可:
在QQ邮箱中,也能看到发过来的测试邮件:
然后,在Zabbix中配置用户邮箱,点击管理->用户->Admin:
点击报警媒介->添加:
在收件人一栏中选择刚配置的邮箱用户名即可:
添加结果,最后点击更新:
在服务器上关闭yarn和hdfs,会有以下效果:
首先在监测->仪表板上看到出现的问题:
然后QQ邮箱收到报警邮件:
模板的作用是将相同的配置应用于多个主机监控上,以此减少工作量并简化Zabbix配置。
同样,以检测Zabbix服务器上Hadoop的DataNode停止为例,对Zabbix模板的创建和使用方法进行说明
点击配置->模板->创建模板:
起名、配置群组,这俩随便写或选,点击添加:
然后通过主机群组找到新建的模板,配置监控项和触发器:
点击创建监控项:
起名,设置键值:
点击添加后,查看结果:
点击触发器->创建触发器:
起名、设置严重程度、添加条件:
点击添加或更新:
查看结果:
然后为新建的触发器配置动作,点击配置->动作->发送邮件的动作:
点击添加,为该动作添加触发条件:
选择触发器:
选中新建的触发器:
点击添加:
查看添加结果,并更新动作:
查看更新结果:
点击配置->主机->目标主机:
点击模板->链接新模板->选择->通过主机群组搜索模板->选择:
点击更新:
然后再停止Hadoop的hdfs和yarn进行测试即可。
Grafana是一个用Go语言编写的开源应用,用于大规模指标数据的可视化展示,是网络架构和应用分析中最流行的时许数据展示工具,目前已经支持绝大部分常用的时序数据库。
5.1、Grafana安装和启动
下载安装:
[root@scentos szc]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.5.2-1.x86_64.rpm
[root@scentos szc]# yum install grafana-enterprise-7.5.2-1.x86_64.rpm
直接启动:
[root@scentos szc]# service grafana-server start
访问ip:3000,用户名密码都是admin:
第一次访问要修改密码,不过可以点击下面的skip跳过这一步,就进入grafana的主界面:
至此,grafana安装启动成功。
插件安装:
[root@scentos szc]# grafana-cli plugins install alexanderzobnin-zabbix-app
installing alexanderzobnin-zabbix-app @ 4.1.5
from: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/4.1.5/download
into: /var/lib/grafana/plugins
✔ Installed alexanderzobnin-zabbix-app successfully
Restart grafana after installing plugins . <service grafana-server restart>
重启Grafana:
[root@scentos szc]# systemctl restart grafana-server
刷新Grafana界面,点击配置->插件:
找到Zabbix,点击:
然后点击使能:
结果如下:
点击配置->数据源:
点击添加数据源:
搜索Zabbix,并点击:
配置Zabbix数据源,包括URL(http://scentos/zabbix/api_jsonrpc.php,把scentos改成自己服务器IP或域名)、开启基础验证、填写基础验证和ZPI验证的用户名和密码(默认分别为Admin和zabbix):
然后点击下面的保存并测试:
出现以下结果,即说明配置成功:
然后返回Zabbix界面,为scentos主机链接模板Template OS Linux By Zabbix Agent:
点击更新后,回到Grafana界面,新增看板:
新增一个空白看板:
然后配置看板数据即可,比如要看的是CPU使用率:
还可以在右侧选择合适的图表类型:
最后点击应用:
生成的结果如下所示: