1.Zabbix入门
1.1 Zabbix概述
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。
1.2 Zabbix 基础架构
2. Zabbix部署
2.1 zabbix集群部署
进程 | alihadoop101节点 | alihadoop102节点 | alihadoop103节点 |
zabbix-agent | √ | √ | √ |
zabbix-server |
| √ |
|
zabbix-web |
| √ |
|
2.2 准备工作
2.2.1 关闭集群
zabbix是监控集群的状态的。在这里我们测试的是hadoop集群的监控。所以我们先把hadoop集群关闭。
2.2.2 关闭防火墙
[an1@hadoop101 ~]$ sudo systemctl stop firewalld
[an1@hadoop101 ~]$ sudo systemctl disable firewalld
[an1@hadoop102 ~]$ sudo systemctl stop firewalld
[an1@hadoop102 ~]$ sudo systemctl disable firewalld
[an1@hadoop103 ~]$ sudo systemctl stop firewalld
[an1@hadoop103 ~]$ sudo systemctl disable firewalld
2.2.3 关闭SELinux(alihadoop101)
[an1@hadoop101 ~]$ sudo vim /etc/selinux/config
修改如下内容
SELINUX=disabled
重启服务器
sudo reboot
2.3 配合Zabbix yum源(3台节点)
2.3.1 安装yum源
从阿里云镜像中下载zabbix安装yum源,并执行安装命令。
[an1@hadoop101 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[an1@hadoop102 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
[an1@hadoop103 ~]$ 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 修改阿里云镜像
alihadoop101、alihadoop102、alihadoop103三台节点,依次执行如下步骤
1)查看原始zabbix.repo文件
[an1@hadoop101 ~]$ 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)执行以下命令完成以下替换
[an1@hadoop101 ~]$ sudo sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
3)查看修改之后的zabbix.repo文件
[an1@hadoop101 ~]$ 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
4)以上动作在另外两台机器上同样的操作。
2.4 安装Zabbix
在alihadoop101,alihadoop102,alihadoop103三台节点分别执行以下安装命令
[an1@hadoop101 ~]$ sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
[an1@hadoop102 ~]$ sudo yum -y install zabbix-agent
[an1@hadoop103 ~]$ sudo yum -y install zabbix-agent
2.5 配置zabbix
2.5.1 创建zabbix数据库
在安装mysql数据库的节点执行,创建数据库
[an1@hadoop102 ~]$ mysql -uroot -p000000 -e"create database zabbix character set utf8 collate utf8_bin"
2.5.2 导入zabbix建表语句
[an1@hadoop102 ~]$ zcat /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz | mysql -uroot -p000000 zabbix
2.5.3 配置Zabbix_Server(alihadoop101)
修改zabbix-server配置文件
sudo vim /etc/zabbix/zabbix_server.conf
DBHost=alihadoop102
DBName=zabbix
DBUser=root
DBPassword=000000
2.5.4 配置Zabbix_Agent(三台节点)
修改zabbix-agent配置文件,Server是agent_server所在的节点。这里我做的时候有个坑,agent_server所在的节点和mysql所在的节点要一致。
sudo vim /etc/zabbix/zabbix_agentd.conf
Server=alihadoop102
#ServerActive=127.0.0.1
#Hostname=Zabbix server
2.5.5 配置zabbix_web时区(alihadoop102)
[an1@hadoop102 ~]$ sudo vim /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
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
</IfModule>
加上 php_value date.timezone Asia/Shanghai
2.6 启动停止zabbix
2.6.1 启动zabbix
[an1@hadoop102 ~]$ sudo systemctl start zabbix-server zabbix-agent httpd
[an1@hadoop102 ~]$ sudo systemctl enable zabbix-server zabbix-agent httpd
[an1@hadoop101 ~]$ sudo systemctl start zabbix-agent
[an1@hadoop101 ~]$ sudo systemctl enable zabbix-agent
[an1@hadoop103 ~]$ sudo systemctl start zabbix-agent
[an1@hadoop103 ~]$ sudo systemctl enable zabbix-agent
2.6.2 停止zabbix
[an1@hadoop102 ~]$ sudo systemctl stop zabbix-server zabbix-agent httpd
[an1@hadoop102 ~]$ sudo systemctl disable zabbix-server zabbix-agent httpd
[an1@hadoop101 ~]$ sudo systemctl stop zabbix-agent
[an1@hadoop101 ~]$ sudo systemctl disable zabbix-agent
[an1@hadoop103 ~]$ sudo systemctl stop zabbix-agent
[an1@hadoop103 ~]$ sudo systemctl disable zabbix-agent
2.6.3 连接Zabbix_Web数据库
1)浏览器访问 http://alihadoop102/zabbix/。zabbix默认web端口为80.
2)检查配置
3)配置数据库
4)配置zabbix-server,hadoop102是server所在的节点。
5)安装成功,生成数据库配置文件:/etc/zabbix/web/zabbix.conf.php
2.6.4 登录Zabbix
用户名:Admin 密码:zabbix
3. Zabbix的使用
3.1 Zabbix术语
3.1.1 主机(Host)
一台你想监控的网络设备,用IP或域名表示。
3.1.2 监控项(Item)
你想要接收的主机的特定数据,一个度量数据。
3.1.3 触发器(Trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式。
3.1.4 动作(Action)
一个对事件做出反应的预定义的操作,比如邮件通知。
3.2 Zabbix实战
3.2.1 创建主机(Host)
1)点击配置/主机/创建主机
2)配置主机(Host)
3)查看新增(Host)
4)重复以上步骤,再创建alihadoop102、alihadoop103主机。
3.2.2 创建监控项(Item)
1)点击监控项(Item)
2)点击创建监控项(Create Item)
3)配置监控项(Item)
4)查看创建的监控项
5)查看监控项最新数据
3.2.3 创建触发器(Trigger)
1)点击配置/主机/触发器
2)点击创建触发器
3.2.4 创建动作(Action)
1)点击配置/动作/创建动作,编辑动作。这里第一次,直接点添加就可以了。
3.2.5 申请邮箱
1)设置
2)开启SMTP服务
3)记好授权码
3.2.6 创建报警媒介类型(Media type)
1)点击管理/报警媒介类型/Email
2)编辑Email
3)测试Email
4)Email绑定收件人
3.2.7 测试
1)关闭集群
[an1@hadoop101 ~]$ myhadoop.sh stop
2)收到邮件
3)仪表盘内容
4)再次启动集群
[an1@hadoop101 ~]$ myhadoop.sh start
5)恢复正常
3.3 配置模板
1)点击配置/模板/创建模板
2)配置模板名称/群组
3)配置监控项
4)配置触发器
5)配置动作
6)配置模板
同样,alihadoop103也是配置同样的模板。
7)测试
启动,关闭集群,查看邮件是否能收到。
我这里收到了。