【zabbix】PostgreSQL表信息查询收集监控

news2024/11/20 23:32:08

        

        昨天开发那边给了一个需求,每隔一段时间查询一下数据库某表中的数据是否在最近更新,让我这边做一个监控信息收集

一、agent linux侧配置

        这边目前就直接在zabbix上实现,首先就是脚本,我用python2实现

脚本名:check_yuliang_data.py 脚本路径:/etc/zabbix/zabbix_agent2.d

#!/usr/bin/python
import os
import json
from datetime import datetime
import calendar

DB_NAME = "bscreen"
DB_USER = "postgres"

QUERY_STATUS = """
    SELECT
        CASE WHEN count(*) = 0 THEN 0 ELSE 1 END AS result_status
    FROM bscreen.bigscreen.reservoir_real t1
    WHERE t1.time > now() + '-12 hour';
"""
QUERY_LATEST_TIME = """
    SELECT max(time) as latest_data_time
    FROM bscreen.bigscreen.reservoir_real;
"""

data = {}

with os.popen('sudo -u "{}" psql -d "{}" -U "{}" -t -c "{}" 2>/dev/null'.format(DB_USER, DB_NAME, DB_USER, QUERY_STATUS)) as f:
    result_status = f.read().strip()

with os.popen('sudo -u "{}" psql -d "{}" -U "{}" -t -c "{}" 2>/dev/null'.format(DB_USER, DB_NAME, DB_USER, QUERY_LATEST_TIME)) as f:
    latest_data_time1 = f.read().strip()

latest_data_time2 = datetime.strptime(latest_data_time1, '%Y-%m-%d %H:%M:%S')
latest_data_time3 = latest_data_time2.replace(microsecond=0)
latest_data_time4 = calendar.timegm(latest_data_time3.utctimetuple())
latest_data_time = datetime.fromtimestamp(latest_data_time4).strftime('%Y-%m-%d %H:%M:%S')


data['{#RESULT_STATUS}'] = result_status
data['{#LATEST_DATA_TIME}'] = latest_data_time
jsonStr = json.dumps({'data': [data]}, sort_keys=True, indent=4)
print(jsonStr)

        脚本里面定义了两个键{#RESULT_STATUS}、{#LATEST_DATA_TIME},方便在zabbix上显示时能直观的观看

创建zabbix引入脚本的配置文件:ZHJX_Port_Status.conf  路径:/etc/zabbix/zabbix_agent2.d

UserParameter=query-yuliang-data[*],/usr/bin/python /etc/zabbix/zabbix_agent2.d/check_yuliang_data.py

        以上两个脚本布置完成后,需要开放psql命令免密
 

# 开启写权限
chmod u+w /etc/sudoers
# 编辑
vim /etc/sudoers
#加入psql免密信息
zabbix  ALL=(ALL)       NOPASSWD: /usr/bin/psql
# 关闭写权限
chmod u-w /etc/sudoers

然后

# 重启zabbix-agent2
systemctl restart zabbix-agent2

再然后

# 在服务端测试agent端刚刚配置的.conf文件中的键(query-yuliang-data)
[root@docker-zabbix ~]# zabbix_get -s '172.16.35.53' -p 10050 -k query-yuliang-data
# 这是成功后的结果
{
    "data": [
        {
            "{#LATEST_DATA_TIME}": "2023-05-04 09:00:00",
            "{#RESULT_STATUS}": "0"
        }
    ]
}

好了,linux这边的配置完成了!

二、server zabbix页面侧配置

创建模板

 创建发现规则

 注意键值别填错了,键值是ZHJX_Port_Status.conf 文件中的query-yuliang-data

 点击下面的测试按钮,数据成功显示出来了

 创建监控项原型

 这里的query-yuliang-data[{#RESULT_STATUS}]对应.conf文件中的query-yuliang-data[*]

 创建触发器类型

 

 连接模板,找到目标机器,把刚刚创建的模板链接上

配置完成!

三、检查配置项是否生效

点击最新数据,查看有没有出现配置项

 这里可以看见,配置项已经有了,这里三处数据都生效了

 点进去看看数据,如果没有数据,就等一会,有个生效时间,这里三处数据都生效了

 四、配置思路总结

1、总结配置文件就两个:

 监控脚本:check_yuliang_data.py

zabbix脚本引入文件:ZHJX_Port_Status.conf

2、页面配置也是两项最主要的

模板-自动发现规则:

1、监控项原型

2、触发器类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试学什么——如何才能按时上线?

目录 引言 一、提前介入测试,认真做好需求分析。 二、测试计划没必要花太多精力。 三、测试用例编写 四、测试执行的关键点 五、测试环境 【一套系统提升学习的好资料】 阅读书籍文档 总结 引言 上线,永远是软件测试工程师最关注的问题。 上线…

Linux文件系统学习笔记

笔记 修改文件属性与权限数字修改文件权限符号修改文件权限 目录与文件的意义文件的权限目录的权限 路径 修改文件属性与权限 chgrp:修改用户组 chown:修改拥有者 chmod:修改用户权限 其中修改权限:chmod可以用数字修改或者符号修改 数字修改文件权限 一共有三种身份:拥有者…

freeswitch的2833和inband对接方案

概述 freeswitch支持三种模式的DTMF传输方式,分别时inband、INFO、2833。 在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中,需要将DTMF码做格式转换,通常是2833和inband之间的转换。 …

《思考致富》制造借口是一个根深蒂固的习惯

目录 经典摘录 领导方式有两种 拖拉 决心:克服拖拉的坏习惯(通往致富之路的第七步) 毅力:催生信念的持久努力(通往致富之路的第八步) 智囊团的力量:致富驱动力(通往致富之路的第…

【分享】你用免费的GPT4了嘛?

哈喽,大家好,我是木易巷~ 现在OpenAI的ChatGPT4需要升级为plus会员使用,对于国内的用户来说,不仅需要魔法,还需要有一张外网的信用卡来开通会员,真的麻烦。 最近木易巷发现了一个项目,是GitHu…

基于欧式距离的聚类算法的Kmeans作业

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 基于欧式距离的聚类算法,其认为两个目标的距离越近,相似度越大。 该实验产生的点为二维空间中的点。 环境配置 java环境,使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚…

问卷调查类型全面解析

调查问卷是从人们那里收集反馈和意见的强大工具。通过提出结构化问题,研究人员、组织和企业可以获得大量有关如何改进产品或服务、解决问题或做出明智决策的信息。但在设计调查问卷之前,必须首先了解不同的类型以及何时使用它们。 1、结构化问卷 结构化…

秀场、卖场、生态场,长沙为何连展会也与众不同?

文 | 智能相对论 作者 | 易不二 第三届长沙国际工程机械展览会已经完美落下帷幕。 依托长沙作为“工程机械之都”的硬核产业实力,又经过了多年耕耘,长沙国际工程机械展已经达到了跻身全球一流展会的水平。 4天的展期里,全球1502家企业参展…

【产品经理】产品体验报告准备

假如你已经决定为一个app写一份产品体验报告了,那么,我想说的是,不要急着动笔! 下面就进入正题,在写产品体验报告之前,我会先去做哪些准备工作: (1)下载、把玩并熟悉app…

15-03 软件安全

系统安全 系统安全威胁 病毒蠕虫特洛伊木马Rootkit后门僵尸网络零日攻击Webshell 操作系统防御 杀毒软件:兵来将挡,水来土掩升级补丁:防止零日攻击限制:用户、网络、端口、程序、安全基准、不可变基础架构 杀毒软件检测机制 …

【猿人学WEB题目专解】猿人学第18题

🌈据说,看我文章时 关注、点赞、收藏 的 帅哥美女们 心情都会不自觉的好起来。 前言: 🧡作者简介:大家好我是 user_from_future ,意思是 “ 来自未来的用户 ” ,寓意着未来的自己一定很棒~ ✨个…

财报解读 | 护肤业务乘风破浪,逸仙电商手握增长“王牌”

五年新战略计划进入第二年,逸仙电商能否如愿“一步、两步、三步”向前走? 5月16日,逸仙电商发布了2023年第一季度财报。财报显示,逸仙电商Q1实现营收8.91亿元,超出了此前指引上限;实现净利润5070万元&…

从0构建神经网络(1)从感知机到神经网络

一、前言 深度学习中有许多框架,包括Tensorflow、PyTorch、Keras等,框架中实现了各种网络,并且可以自动求导,因此构建一个完整的网络只需要十几行代码。因为框架高度封装,因此我们无法知道底层的原理。为了更好地理解…

【PCIE体系结构十一】部分物理层发送接收逻辑细节

👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 参考书籍:《PCI.EXPRESS系统体系结构标准教材 Mindshare》 目录 物理层…

我麻了,那些年,为了进阿里背过的面试题......

前言 入职阿里相信是很多软件测试人的梦想,我一个阿里的朋友跟我聊天时说,他为了入职阿里背了好多面试题。我开始还不以为然,当他发给我看了之后,我麻了! 不废话,分享给你们,希望对你们有帮助&…

中小型局域网

配置思路: 1、LSW1-LSW2做链路聚合并放通所有vlan,并做VRRP实现冗余备份 #链路聚合 [Huawei]sys LSW1 [LSW1]VLAN batch 20 30 40 60 70 80 [LSW1]DHCP enable [LSW1]ospf router-id 1.1.1.1 [LSW1-ospf-1]area 0 [LSW1]int Eth-Trunk 1 …

第3章 处理机调度与死锁

3.1 作业管理 3.1.1 作业的概念及分类 1.作业的概念 作业是用户在一 次事务处理过程中要求计算机系统所做工作的集合。 从系统的角度讲,作业是一个比较广泛的概念,它由程序、数据和作业说明书组成。 2.作业的分类 依据计…

redis集群+哨兵配置实操宝典

本地安装redis 配置集群和哨兵 1、下载安装redis #wget http://download.redis.io/releases/redis-5.0.12.tar.gz #下载安装包 #yum -y install gcc #安装依赖包 #tar -zxvf redis-5.0.12.tar.gz #cd redis-5.0.12 #make 2、主备配置 我们采用一主两备的结构 主机 192.168.3.…

AITM - 多任务模型之顺序依赖性建模(美团)

文章目录 1、动机与挑战(信用卡业务广告)2、信用卡用户整体架构:3、模型结构3.1、核心部分 Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising 论文发表…

【Linux的基本指令】

目录 01.ls指令02.pwd指令03.cd指令04.touch指令05.mkdir指令06.rmdir指令 && rm 指令07.*通配符08.man指令09.cp指令10.mv指令11.cat指令13.more指令14.less指令15.head指令16.tail指令17.date指令18.Cal指令19.find指令20.grep指令21.zip/unzip指令22.tar指令23.bc指…