zabbix通过自定义脚本监控Linux服务、docker nginx容器,图文详细
suiw9 2024-11-16 00:35 28 浏览 0 评论
搭建zabbix参考:docker用docker-compose快速搭建zabbix最新版
环境介绍:
服务端ubuntu:192.168.152.132
客户端centos:192.168.152.150
1:在客户端安装agent
ubuntu和centos都支持在线安装,目前,Ubuntu在线安装版本为4.7,Centos为5.0
对于agent,版本影响不大,功能都相同,低于server服务器版本的都可以。
#Ubuntu安装
apt -y install zabbix-agent
#centos安装
yum -y install zabbix50-agent.x86_64
2:agent配置文件
agent配置文件,文件名为zabbix_agentd.conf
vim /etc/zabbix_agentd.conf
必备三个,用于与服务器端的连接,这个应该都知道的
Server=192.168.152.132 #如果设置纯被动模式,应该注释掉这行
ServerActive=192.168.152.132 #主动模式的serverip地址
Hostname=192.168.152.150 #客户端的hostname,不配置则使用主机名
以下为自定义脚本需要更改的参数:
去掉#UnsafeUserParameters的注释,并将0改为1,意思为允许自定义参数
去掉#UserParameter的注释,并在后面接上 名称(键值),命令。
UnsafeUserParameters=1
#名称为docker_nginx,服务器监控项的键值。后面为运行脚本命令。
UserParameter=docker_nginx, /bin/bash /script/docker_nginx.sh
3:脚本编写
mkdir /script
vim docker_nginx.sh
这里简单脚本为监控docker服务和docker的nginx。当然也可以替换成其他服务,如mysql,php等,根据自己需求更换。
#!/bin/bash
#set -x 调试脚本可用
docker_service=$(systemctl status docker.service |awk '{if (NR==3){print$2}}')
if [[ ${docker_service} == 'inactive' ]];then
echo "2" #docker服务停止状态,返回2
else
docker_nginx=$(docker ps|awk '{if (NR>1){print $2}}'|grep 'nginx')
if test -n "${docker_nginx}" ;then
echo "0" #代表docker nginx 正常,返回0
else
echo "1" #没有docker nginx容器,返回1
fi
fi
脚本完成。
4:服务端web配置
打开浏览器zabbix。
4.1):添加创建主机
添加完主机名称,IP后,保存即可。
4.2):添加创建监控项
在添加主机完成后,在主机里,直接点击监控项。
进去后,直接点击创建监控项。
配置监控项。
监控项配置完成,然后可以点击测试,是否正常得到脚本的返回值
这里docker nginx没有启动,所以返回值为1,可以自己启动docker nginx测试,返回值为0,可以正确得到脚本的返回值,则正常,有返回任何提示都不行。
测试的时候,监控doceker会得到返回值提示: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: ,原因是zabbix这个用户没有docker.sock的权限。
方法一: 解决临时方法:此方法只是临时,如果docker.sock重启还会一样。将/var/run/docker.sock改为777权限。
chmod 777 /var/run/docker.sock
方法二:永久方法:将zabbix用户加入docker用户组。
usermod -a -G docker zabbix
方法三:(已测试不合适)在脚本命令前方加sudo,返回值会得到类似sudo能力越大,责任越大的提示。
4.3):添加创建触发器
在页面点击触发器,然后创建触发器
添加名称,严重性,在表达式里选择添加
添加中,可以看到自己添加的监控项,选择自定义的监控项
然后默认添加数值,监控脚本docker service状态返回的为2,所以填写2.
添加完成确认即可。
同理在创建一个触发器监控docker nginx容器。
这时,自定义脚本监控已完成。
5:监控测试
现在服务都正常,容易都正常,停止docker nginx容器。
#停止自己容器的nginx名称
docker stop mynginx
回到web监控页面查看,已经报警生效。
关闭docker服务测试
systemctl stop docker.service
返回监控页面查看,也已经生效。
最后分别启动docker服务,和docker nginx容器。
systemctl start docker.service
docker restart mynginx
再次查看监控页面,报警消失,恢复正常,监控脚本测试完成。
相关推荐
- K3S - 轻量级Kubernetes集群(k3s架构)
-
K3S是...
- Kubernetes PDB(Pod Disruption Budget)介绍
-
KubernetesPDB(PodDisruptionBudget)是一种资源对象,用于确保在维护活动或自愿性中断期间,如节点排空或应用更新,你的应用程序至少有一定数量的Pod保持运行。PDB帮...
- 【超融合云计算中心】核心K8S容器实践应用指南
-
云计算核心是虚拟化,容器技术正是虚拟化技术最重要组成部分,...
- Prometheus TSDB 数据存储机制?(prometheus的存储)
-
Prometheus的TSDB(TimeSeriesDatabase)存储机制是其核心组成部分之一,用于高效地存储和管理时间序列数据。...
- Rancher部署Spring Cloud微服务(初探)
-
一、安装Docker安装rancher依赖docker环境,k8s节点也依赖docker环境,可以自行安装,没有安装过的可以参考网上的教程。二、安装单节点rancher2.1下载镜像包官方2.x...
- 谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
-
相信大家在使用各种各样强大的IDE写代码时都会注意到,代码中各种类型的关键字会用独特的颜色标记出来,然后形成一套语法高亮规则。这样不仅美观,而且方便代码的阅读。而在上古神器Vim中,我们通常看...
- Python 基础教程 九之cron定时执行python脚本
-
前言在Linux或Unix系统中,你可以使用cron任务来定时执行Python脚本。cron是一个基于时间的作业调度器,允许你安排命令或脚本在系统上自动执行。...
- RK3588主板Ubuntu 22.04固件刷机后需要进行哪些操作?
-
RK3588主板Ubuntu22.04固件刷机完成后,您需要进行以下操作:1、验证固件版本:确认您刷入的Ubuntu22.04固件版本是否正确,并且系统正常运行。...
- Ubuntu16.04搭建VNC Server远程桌面服务器
-
1.前言本文主要讲解Ubuntu16.04怎么安装VNCServer远程桌面服务器。VNC全称为VirtualNetworkComputing(虚拟网络计算)是一种图形化桌面共享工具,允许...
- 开源&Docker:何必nextcloud,新晋神级私人云盘,在线office编辑
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:可爱的小cherry前言大家好,这里是可爱的Cherry。...
- Ubuntu系统,常用命令、IP配置等教程
-
Ubuntu系统常用命令与IP配置教程一、常用命令在Ubuntu系统中,掌握一些常用的命令对于日常操作非常重要,以下是常见的命令及其用法说明:1.ls—列出当前目录内容...
- Zed编辑器:Rust之力,Linux之翼,VS Code劲敌新篇章
-
Zed是一款支持多人协作...
- 如何在Ubuntu系统中进行系统级的代理设置
-
Ubuntu系统级代理设置步骤详解在Ubuntu系统中进行系统级的代理设置是一种常见的网络配置方式,尤其适用于需要通过代理访问互联网的场景。通过配置代理,你可以让系统中的所有应用程序(如浏览器、终端、...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
-
- K3S - 轻量级Kubernetes集群(k3s架构)
- Kubernetes PDB(Pod Disruption Budget)介绍
- 【超融合云计算中心】核心K8S容器实践应用指南
- 【深度解析】K8s如何助力运维、开发、测试等岗位提升核心竞争力
- Prometheus TSDB 数据存储机制?(prometheus的存储)
- Rancher部署Spring Cloud微服务(初探)
- 谁说 Vim 不好用?送你一个五彩斑斓的编辑器!
- Python 基础教程 九之cron定时执行python脚本
- RK3588主板Ubuntu 22.04固件刷机后需要进行哪些操作?
- Ubuntu16.04搭建VNC Server远程桌面服务器
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)