第1章 Zabbix入门

1.1 Zabbix概述

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。

1.2 Zabbix 基础架构

集群监控Zabbix&Grafana - 图1

第2章 Zabbix部署

2.1 集群规划

进程 bigdata111节点 bigdata112节点 bigdata113节点
zabbix-agent
zabbix-server
MySQL
zabbix-web

2.2 准备工作

2.2.1 关闭集群

如果集群开启,先关闭集群。因为安装完毕Zabbix后,需要重启虚拟机。
[root@bigdata111 ~]$ cluster.sh stop

2.2.2 关闭防火墙(3台节点,已关闭)

[root@bigdata111 ~]$ sudo service iptables stop
[root@bigdata111 ~]$ sudo chkconfig iptables off

[root@bigdata112 ~]$ sudo service iptables stop
[root@bigdata112 ~]$ sudo chkconfig iptables off

[root@bigdata113 ~]$ sudo service iptables stop
[root@bigdata113 ~]$ sudo chkconfig iptables off

2.2.3 关闭SELinux(bigdata111)

1)修改配置文件/etc/selinux/config
[root@bigdata111 ~]$ sudo 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 these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
2)重启服务器
[root@bigdata111 ~]$ sudo reboot

2.3 配置Zabbix yum源(3台节点)

2.3.1 安装yum源

从阿里云镜像中下载zabbix安装包,并执行安装命令。
[root@bigdata111 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

[root@bigdata112 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

[root@bigdata113 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

2.3.2 修改为阿里云镜像

bigdata111、bigdata112、bigdata113三台节点,依次执行如下步骤。
1)查看原始zabbix.repo文件
[root@bigdata111 ~]$ sudo cat /etc/yum.repos.d/zabbix.repo
查看内容如下
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.4/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=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
2)执行以下命令完成全局替换
[root@bigdata111 ~]$ sudo sed -i ‘s/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g’ /etc/yum.repos.d/zabbix.repo
3)查看修改之后的zabbix.repo文件
[root@bigdata111 ~]$ sudo cat /etc/yum.repos.d/zabbix.repo
查看内容如下
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/$basearch/
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/4.4/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

2.4 安装Zabbix

在bigdata111、bigdata112、bigdata113三台节点分别执行以下安装命令
[root@bigdata111 ~]$ sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

[root@bigdata112 ~]$ sudo yum -y install zabbix-agent

[root@bigdata113 ~]$ sudo yum -y install zabbix-agent

2.5 配置Zabbix

2.5.1 创建zabbix数据库

[root@bigdata111 ~]$ mysql -uroot -p000000 -e”create database zabbix character set utf8 collate utf8_bin”

2.5.2 导入Zabbix建表语句

[root@bigdata111 ~]$ zcat /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz | mysql -uroot -p000000 zabbix

2.5.3 配置Zabbix_Server(bigdata111)

修改zabbix-server配置文件
[root@bigdata111 ~]$ sudo vim /etc/zabbix/zabbix_server.conf

DBHost=bigdata111
DBName=zabbix
DBUser=root
DBPassword=000000

2.5.4 配置Zabbix_Agent(三台节点)

修改zabbix-agent配置文件
[root@bigdata111 ~]$ sudo vim /etc/zabbix/zabbix_agentd.conf
修改如下内容:
Server=bigdata111
#ServerActive=127.0.0.1
#Hostname=Zabbix server

2.5.5 配置Zabbix_Web时区

修改/etc/httpd/conf.d/zabbix.conf文件
[root@bigdata111 ~]$ sudo vim /etc/httpd/conf.d/zabbix.conf
修改如下内容:
#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix


Options FollowSymLinks
AllowOverride None
Require all granted


php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value max_input_vars 10000
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai

2.6 启动停止Zabbix

2.6.1 启动Zabbix

[root@bigdata111 ~]$ sudo systemctl start zabbix-server zabbix-agent httpd
[root@bigdata111 ~]$ sudo systemctl enable zabbix-server zabbix-agent httpd

[root@bigdata112 ~]$ sudo systemctl start zabbix-agent
[root@bigdata112 ~]$ sudo systemctl enable zabbix-agent

[root@bigdata113 ~]$ sudo systemctl start zabbix-agent
[root@bigdata113 ~]$ sudo systemctl enable zabbix-agent

2.6.2 停止Zabbix

[root@bigdata111 ~]$ sudo systemctl stop zabbix-server zabbix-agent httpd
[root@bigdata111 ~]$ sudo systemctl disable zabbix-server zabbix-agent httpd

[root@bigdata112 ~]$ sudo systemctl stop zabbix-agent
[root@bigdata112 ~]$ sudo systemctl disable zabbix-agent

[root@bigdata113 ~]$ sudo systemctl stop zabbix-agent
[root@bigdata113 ~]$ sudo systemctl disable zabbix-agent

2.6.3 连接Zabbix_Web数据库

1)浏览器访问http://bigdata111/zabbix
集群监控Zabbix&Grafana - 图2
2)检查配置
集群监控Zabbix&Grafana - 图3
3)配置数据库
集群监控Zabbix&Grafana - 图4
4)配置zabbix-server
集群监控Zabbix&Grafana - 图5
集群监控Zabbix&Grafana - 图6

2.6.4 登录Zabbix

(注意大小写)用户名:Admin 密码:zabbix
集群监控Zabbix&Grafana - 图7
集群监控Zabbix&Grafana - 图8
集群监控Zabbix&Grafana - 图9
集群监控Zabbix&Grafana - 图10

第4章 Zabbix使用

4.1 Zabbix术语

4.1.1 主机(Host)

一台你想监控的网络设备,用IP或域名表示。

4.1.2 监控项(Item)

你想要接收的主机的特定数据,一个度量数据。

4.1.3 触发器(Trigger)

一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式。

4.1.4 动作(Action)

一个对事件做出反应的预定义的操作,比如邮件通知。

4.2 Zabbix实战

4.2.1 创建Host

1)点击配置/主机/创建主机
集群监控Zabbix&Grafana - 图11
2)配置主机(Host)
集群监控Zabbix&Grafana - 图12
群组自己建
3)查看新增(Host)
集群监控Zabbix&Grafana - 图13
4)重复以上步骤,再创建bigdata112、bigdata113主机。
集群监控Zabbix&Grafana - 图14

4.2.2 创建监控项(Items)

1)点击监控项(Items)
集群监控Zabbix&Grafana - 图15
2)点击创建监控项(Create Item)
集群监控Zabbix&Grafana - 图16
3)配置监控项(Item)
proc.num[,,,]
l name:是进程名
l user:运行该进程的用户
l state:进程状态包括run,sleep,zomb
l cmdline:该项内容是模糊匹配,即用ps aux看到的最后一列中包含该字段则匹配上。
改为
proc.num[,,all,datanode]
集群监控Zabbix&Grafana - 图17
集群监控Zabbix&Grafana - 图18
4)查看创建的监控项
集群监控Zabbix&Grafana - 图19
5)查看监控项最新数据
集群监控Zabbix&Grafana - 图20

4.2.3 创建触发器(Trigger)

1)点击配置/主机/触发器
集群监控Zabbix&Grafana - 图21
2)点击创建触发器
3)编辑触发器
{bigdata111:proc.num[,,all,datanode].last{}}<1这行不是手写,选完会出现
集群监控Zabbix&Grafana - 图22

4.2.4 创建动作(Action)

1)点击配置/动作/创建动作
集群监控Zabbix&Grafana - 图23
2)编辑动作(Action)
集群监控Zabbix&Grafana - 图24
集群监控Zabbix&Grafana - 图25
集群监控Zabbix&Grafana - 图26
集群监控Zabbix&Grafana - 图27
集群监控Zabbix&Grafana - 图28
集群监控Zabbix&Grafana - 图29
集群监控Zabbix&Grafana - 图30
集群监控Zabbix&Grafana - 图31

4.2.5 申请邮箱

邮件报警,可以采用126、163、qq等邮箱。下面以qq邮箱为例。

4.2.6 创建报警媒介类型(Media type)

1)点击管理/报警媒介类型/Email
集群监控Zabbix&Grafana - 图32
2)编辑Email
(1)qq邮箱配置
集群监控Zabbix&Grafana - 图33
注意,该密码为邮箱授权码,QQ授权码怎么找:
https://jingyan.baidu.com/article/ac6a9a5eb439f36b653eacc0.html
集群监控Zabbix&Grafana - 图34
3)测试Email
集群监控Zabbix&Grafana - 图35
测试后,在qq邮箱能收到
4)Email绑定收件人
集群监控Zabbix&Grafana - 图36
集群监控Zabbix&Grafana - 图37
可以添加多个人

4.2.7 测试

1)关闭集群中的HDFS,会有如下效果
[root@bigdata111 hadoop-3.1.3]$ sbin/stop-dfs.sh
2)查看邮件,接收故障信息
集群监控Zabbix&Grafana - 图38
3)查看仪表盘故障信息
集群监控Zabbix&Grafana - 图39

4.3 创建模板

1)点击配置/模板/创建模板
集群监控Zabbix&Grafana - 图40
2)配置模板名称/群组
集群监控Zabbix&Grafana - 图41
3)配置监控项
集群监控Zabbix&Grafana - 图42
集群监控Zabbix&Grafana - 图43
集群监控Zabbix&Grafana - 图44
4)配置触发器
集群监控Zabbix&Grafana - 图45
集群监控Zabbix&Grafana - 图46
集群监控Zabbix&Grafana - 图47
集群监控Zabbix&Grafana - 图48
5)配置动作
集群监控Zabbix&Grafana - 图49
集群监控Zabbix&Grafana - 图50
6)配置模板
集群监控Zabbix&Grafana - 图51
集群监控Zabbix&Grafana - 图52
集群监控Zabbix&Grafana - 图53
集群监控Zabbix&Grafana - 图54
集群监控Zabbix&Grafana - 图55
集群监控Zabbix&Grafana - 图56
7)测试
(1)启动hadoop集群
[root@bigdata111 hadoop-3.1.3]$ sbin/start-dfs.sh
(2)停止hadoop集群
[root@bigdata111 hadoop-3.1.3]$ sbin/stop-dfs.sh
(3)查看报警邮件

第5章 Grafana

Grafana想要展示,需要连接zabbix数据源。
如果想展示某个进程,首先zabbix必须能监控到这个进程,Grafana才能获取到这个数据进而可视化展示。
1) 解压grafana
tar -zxvf grafana-7.2.1.linux-amd64.tar.gz
2) 将zabbix插件上传放入grafana的%GRAFANA_HOME%/plugins-bundled目录下并解压
unzip alexanderzobnin-zabbix-app-4.0.1.zip
3) 后台启动grafana
/opt/software/grafana/grafana-7.2.1/bin/grafana-server &
4) 登录WEBUI
http://bigdata111:3000
5) 点击Enable
集群监控Zabbix&Grafana - 图57
集群监控Zabbix&Grafana - 图58
集群监控Zabbix&Grafana - 图59
集群监控Zabbix&Grafana - 图60
集群监控Zabbix&Grafana - 图61

1)获取数据源
URL : http://bigdata111/zabbix/api_jsonrpc.php
集群监控Zabbix&Grafana - 图62
集群监控Zabbix&Grafana - 图63
2)可视化可以自己创建模块,也可以官方下载模板,然后导入对应的数据
官方模板:
https://grafana.com/grafana/dashboards?direction=asc&orderBy=name&category=zabbix集群监控Zabbix&Grafana - 图64
整合Zabbix的ID号
9724
4064
9708
4070