zabbix实现监控Hadoop、Docker、SSL证书过期时间应用的保姆级实操流程
一、zabbix监控Hadoop实操流程
Linux中安装部署Hadoop集群的保姆级安装配置教程
https://coffeemilk.blog.csdn.net/article/details/154075870?spm=1001.2014.3001.5502
1.1、zabbix监控Hadoop的原理
| Zabbix监控hadoop,其实是通过http方式访问hadoop namenode、resourcemanager的web页面端口获取监控数据 | |
| nodename | nodename IP:9870/jmx 如【192.168.1.9:9870/jmx】 |
| resourcemanager | resourcemanager IP:8088/jmx 如【192.168.1.9:8088/jmx】 |
| 这两个页面输出都是json格式数据,zabbix获取到这些数据后,进行归档整理,传递给相应的监控项。 此外,zabbix还会通过自动发现方式获取datanode、nodemanager监控状态信息。 | |


1.2、安装zabbix-agent2监控工具
注意:我们在下载被监控端agent安装包的时候需要根据zabbix-server的版本来匹配下载安装,zabbix-server的版本可以在zabbix的web界面的仪表盘右侧可以查看到或者直接在安装了zabbix-server的服务器上执行【zabbix_server -V 】命令查看版本信息。
#直接使用dnf/yum方式在线安装zabbix-agent2实操流程#1-查看系统当前版本
cat /etc/os-release#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
dnf clean all#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y
#编辑安装好的agent2配置文件并实现连接上zabbix-server(如:192.168.1.38)
vim /etc/zabbix/zabbix_agent2.confServer=192.168.1.38
ServerActive=192.168.1.38
Hostname=192.168.1.9
HostMetadata=linux zabbix.ck#重启agent2服务并查看其状态
systemctl restart zabbix-agent2.service
systemctl status zabbix-agent2.service
zabbix自动发现与自动注册的实操保姆级教程
https://coffeemilk.blog.csdn.net/article/details/153694161?spm=1001.2014.3001.5502
1.3、zabbix的web界面的Hadoop模板与主机配置
1.3.1、zabbix的Hadoop模板查看了解
打开zabbix的web界面左侧的导航栏选择【数据采集】-->【模板】-->【名称】输入(hadoop)-->【应用】-->【Hadoop by HTTP】-->【宏】那里有【{$HADOOP.NAMENODE.HOST}】对应的NameNode与【{$HADOOP.RESOURCEMANAGER.HOST}】ResourceManager是需要灵活对应的,若在这里设置为我们监控的指定IP地址则会导致该模板不通用;此时若需要保证该模板通用,则需要在主机链接该模板后,在主机那里定义这两个宏的内容绑定上主机IP即可解决,因为主机宏的优先级是大于模板的。


1.3.2、zabbix的指定主机链接Hadoop模板与配置自定义宏
打开zabbix的web界面左侧的导航栏选择【数据采集】-->【主机】-->找到我们配置的NameNode的主机(如:192.168.1.9)-->【主机】-->【选择】(Templates下的Hadoop by HTTP)-->【更新】;然后选择【宏】-->【主机宏】-->添加需要设置的宏内容:【{$HADOOP.NAMENODE.HOST}】值为(192.168.1.9),【{$HADOOP.RESOURCEMANAGER.HOST}】值为(192.168.1.9);







1.3.3、zabbix的主机链接的Hadoop模板数据是否正确采集到
打开zabbix的web界面左侧的导航栏选择【监测】-->【主机】-->选择我们监测的Hadoop主机的【最新数据】-->选择标签值【namenode】【resourcemanager】。


到这里恭喜你,使用zabbix监控hadoop成功!
二、zabbix监控Docker容器实操流程
2.1、zabbix agent2监控docker容器原理
zabbix agent2监控docker插件的实现原理(其实就是通过调用docker的API来获取数据,插件目录位于zabbix-agent2/src/go/plugins/docker,其中,client.go文件定义了使用UNIX套接字地址来进行docker客户端与服务端的通信。默认套接字位置为/var/run/docker.sock)。
注意:
《1》要监控docker容器,必须使用zabbix agent2,zabbix agent不能监控docker。
《2》由于是通过直接调用套接字【/var/run/docker.sock】来实现监控docker,那么最简单的方法就是直接通过给zabbix-agent2的用户zabbix添加套接字文件的docker用户组即可【不建议直接修改套接字文件的权限,因为容器停止后重启会重新生成套接字文件,该套接字文件的权限就重置了】。
2.2、安装docker引擎与docker-compose
红帽系、银河麒麟V10系统中成功安装部署Docker-ce引擎与Docker-Compose保姆级教程
https://blog.csdn.net/xiaochenXIHUA/article/details/154187536
2.2.1、安装docker引擎
#安装docker引擎的实操流程#1-安装docker引擎所需的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2#2-安装配置阿里云的镜像仓库源添加到本机【/etc/yum.repos.d/docker-ce.repo】(国内访问会更加快速方便)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#3-建立缓存
yum makecache#4-安装docker-ce引擎(注意:由于我们这里使用的是Almalinux9.3的系统它默认是没有安装podman容器管理工具;但如果是红帽9及其更高版本的系统则默认安装了podman,若要安装docker-ce,则需要将podman卸载掉才能安装)
yum install docker-ce -y#5-启动docker
systemctl restart docker
systemctl status docker
ps -ef | grep docker#6-设置docker开机自启
systemctl enable docker#7-查看docker的版本信息
docker version
2.2.2、安装docker-compose
docker-compose是用来做docker的多容器控制,有了docker-compose,我们可以把所有繁琐的docker操作全都一条命令,自动化的完成。
要使用docker-compose,需要安装一个工具docker-compose,可直接从官方:https://github.com/docker/compose/releases 处下载编译好的二进制文件即可。
#下载docker-compose方法(只用选择一个方法下载即可)#1-创建【/usr/local/bin】目录
mkdir -p /usr/local/bin/#2-方法一:下载最新的docker-compose二进制文件到本机的【/usr/local/bin】目录
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose#2-方法二:下载指定版本(如:v2.40.0)的docker-compose二进制文件到本机的【/usr/local/bin】目录
curl -L https://github.com/docker/compose/releases/download/v2.40.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose#3-给下载好的docker-compose二进制文件添加执行权限
chmod +x /usr/local/bin/docker-compose#4-验证docker-compose是否安装成功(若输出docker compose的版本信息内容则表示成功,否则失败)
docker-compose --version
Docker的介绍、保姆级安装和使用
https://blog.csdn.net/xiaochenXIHUA/article/details/141286596
2.3、安装zabbix-agent2监控工具
注意:我们在下载被监控端agent安装包的时候需要根据zabbix-server的版本来匹配下载安装,zabbix-server的版本可以在zabbix的web界面的仪表盘右侧可以查看到或者直接在安装了zabbix-server的服务器上执行【zabbix_server -V 】命令查看版本信息。
#直接使用dnf/yum方式在线安装zabbix-agent2实操流程#1-查看系统当前版本
cat /etc/os-release#2-配置zabbix的仓库源(根据系统版本选择安装对应系统版本的源)【比如我这里是almalinux9.3也支持红帽9.3】
#(注意【openEuler 22.03 (LTS-SP3)、银河麒麟V10(Kylin Linux Advanced Server V10 (Halberd))】只能安装rhel8版本的zabbix-agent2内容【wget https://repo.zabbix.com/zabbix/7.0/rhel/8/x86_64/zabbix-agent2-7.0.19-release1.el8.x86_64.rpm -c o -P /data】)
rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm
dnf clean all#3-安装zabbix-agent2(安装完成后zabbix-agent2后它的默认配置文件【zabbix_agent2.conf】是在【/etc/zabbix】目录下)
dnf install zabbix-agent2 -y
#编辑安装好的agent2配置文件并实现连接上zabbix-server(如:192.168.1.38)
vim /etc/zabbix/zabbix_agent2.confServer=192.168.1.38
ServerActive=192.168.1.38
Hostname=192.168.1.12
HostMetadata=linux zabbix.ck#重启agent2服务并查看其状态
systemctl restart zabbix-agent2.service
systemctl status zabbix-agent2.service
zabbix自动发现与自动注册的实操保姆级教程
https://coffeemilk.blog.csdn.net/article/details/153694161?spm=1001.2014.3001.5502
2.4、将zabbix用户添加到docker组,否则无法获取数据
将zabbix用户添加到docker组,否则无法获取数据.
#将zabbix用户添加到docker组,否则无法获取数据#1-查看zabbix-agent2的进程信息(获取启动zabbix-agent2的用户是zabbix)
ps -ef | grep zabbix_agent2#2-查看docker的套接字文件属主、属组信息(属组是docker)
ll /var/run/docker.sock#3-给zabbix用户添加docker组
usermod -aG docker zabbix#4-查看zabbix用户信息
id zabbix

2.5、zabbix的web界面的docker模板与主机配置
《1》打开zabbix的web界面左侧的导航栏选择【数据采集】-->【模板】-->【名称】输入(docker)-->【应用】即可查看到监控docker容器的模板【Docker by Zabbix agent 2】(该模板的宏是采用自动发现规则,不用任何修改,保持不变即可)如下图所示:


《2》 打开zabbix的web界面左侧的导航栏选择【数据采集】-->【主机】-->找到我们配置自动发现的Docker的主机(如:192.168.1.21)-->【主机】-->【选择】(Templates/Applications下的Docker by Zabbix agent 2)-->【更新】即可,如下图所示:




《3》 打开zabbix的web界面左侧的导航栏选择【监测】-->【主机】-->选择我们监测的Docker主机的【最新数据】-->选择标签值【Containers 】【CPU CFS】【Images】【Kernel】,如下图所示:





到这里恭喜你,使用zabbix监控docker容器成功!
三、zabbix监控SSL证书过期时间
3.1、zabbix监控SSL证书原理
在Zabbix 5.0版本以及之前,要监控SSL证书过期时间,需要自定义监控项,然后自己写脚本获取域名证书的过期信息,十分麻烦。但从Zabbix 6.0开始,SSL证书监控使用Agent2内置的插件+内置的模板就可以了,无需额外使用脚本等工具。官方模板支持日期监控,以及到期之前的报警(默认是7天)。Zabbix 6.0版本后,zabbix自带了一个Website certificate by Zabbix agent 2模板,可实现对SSL证书的监控,由于此插件已经集成到agent 2中了,因此可以直接使用。
#一、zabbix监控SSL证书的key是:
#1-【hostname - 可以是IP或者域名】
#2-【port - 端口 (HTTPS 缺省是 443 端口)】
#3-【address - 可以是IP或者域名】
web.certificate.get[hostname,<port>,<address>]#二、在zabbix-server进行测试制定域名SSL证书命令
#注意:-s 后面的地址只要是安装了agent2的客户端地址均可,也就是说此key跟主机无关;如果返回一堆json代码就说明正常了【systemctl status zabbix-agent2】可查看agent2的运行状态【ps -ef | grep zabbix_agent2】可查看agent2的进程信息及其确定是否安装
zabbix_get -s 192.168.1.9 -k web.certificate.get[https://www.baidu.com]
zabbix_get -s 192.168.1.9 -k web.certificate.get[https://www.huawei.com]

3.2、zabbix的web界面的SSL模板与主机配置
《1》打开zabbix的web界面左侧的导航栏选择【数据采集】-->【模板】-->【名称】输入(website)-->【应用】即可查看到监控SSL证书的模板【Website certificate by Zabbix agent 2】【Website certificate by Zabbix agent 2 active】不用做任何修改,为了保持模板的通用性,则需要在主机链接该模板后将【{$CERT.WEBSITE.HOSTNAME}】内容指定为需要监控的域名或IP即可,如下图所示:


《2》 打开zabbix的web界面左侧的导航栏选择【数据采集】-->【主机】-->找到我们配置自动发现的任意安装了agent2的主机(如:192.168.1.9)-->【主机】-->【选择】(Templates/Applications下的Website certificate by Zabbix agent 2 active)-->【更新】后,在点击安装了agent2的主机(如:192.168.1.9)-->【宏】-->【主机宏】-->【添加】-->【{$CERT.WEBSITE.HOSTNAME}】且输入需要监控的带有SSL证书的域名后点击【更新】即可【注意:一台主机只能监视一个域名,否则会提示宏已经存在了】,如下图所示:





《3》 打开zabbix的web界面左侧的导航栏选择【监测】-->【主机】-->选择我们监测的SSL模板主机的【最新数据】-->选择标签值【cert】即可查看到数据信息。如下图所示:


到这里恭喜你,使用zabbix监控SSL证书过期时间成功!

