gpt4 book ai didi

mysql - Zabbix 看一个 MySQL 表

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:35 25 4
gpt4 key购买 nike

我有一个将事件记录到 MySQL 表中的应用程序,每个条目(行)都有一个时间戳、状态和一些其他任意位的元数据。

在一个非常简化的形式中,日志表可能看起来像日志编号 |日期时间 |结果代码 |留言

我想要求 Zabbix 离开并直接查询数据库以获取统计信息可能有点雄心勃勃,但我想知道它还可以如何构建。

我可以有一个单独的进程来查询表并写出日志文件,但这感觉有点笨拙。我可以从 zabbix_agent.conf 运行一个脚本,但我不确定如何将该数据转换为 Zabbix 解释的指标。

最佳答案

我理解这个问题的方式是能够以与Zabbix' built-in log monitoring 大致相同的方式监控具有日志记录的数据库。 .

如果是这样,这个问题分为两部分:(1) 如何仅轮询数据库以获取新记录以及 (2) 如何以 Zabbix 可以理解的方式将数据发送到它。我将把 (1) 留给您,但会提出一种处理 (2) 的方法。

我们可以按照 Zabbix agent 处理 Windows 事件日志的方式对 (2) 的解决方案进行建模。如果我们要求 Windows 上的 Zabbix 代理进行监控,比如“eventlog[Application]”,我们会注意到它向 Zabbix 服务器发送如下所示的 JSON:

{
"data": [
{
"clock": 1398753145,
"ns": 928525552,
"eventid": 9003,
"host": "Windows 2008",
"key": "eventlog[Application]",
"lastlogsize": 51,
"severity": 1,
"source": "Desktop Window Manager",
"timestamp": 1375273705,
"value": "The Desktop Window Manager was unable to ..."
}
],
"request": "agent data"
}

现在,我们可以使用相同的协议(protocol)发送我们想要的数据。例如,根据您简化的日志表形式,我们可以将“log_id”放入“laSTLogsize”,将“datetime”放入“timestamp”,将“result_code”放入“eventid”,将“message”放入“value”。然后,我们可以使用 Zabbix 源代码中提供的方便的 misc/debug/sender.pl 脚本将此数据发送到 Zabbix 服务器:

$ cat mysql.json
{
"data": [
{
"clock": 1398753145,
"ns": 928525552,
"eventid": 12345,
"host": "MySQL Server",
"key": "eventlog[mysql.log]",
"lastlogsize": 1,
"severity": 1,
"source": "My Application",
"timestamp": 1375273705,
"value": "My Application was unable to ..."
}
],
"request": "agent data"
}

$ ./sender.pl -h 127.0.0.1 -p 10051 -i mysql.json
ZBXD^{
"response":"success",
"info":"processed: 1; failed: 0; total: 1; seconds spent: 0.000130"}

不过,有两个注意事项。一个是为了在 Zabbix 前端享受 Windows 事件日志功能(比如在“监控”->“最新数据”中显示 Windows 事件日志列),一个键应该以“eventlog[”开头。其次,“laSTLogsize”应该随着您发送的每条记录而增加,但是如果您使用“log_id”作为“laSTLogsize”,那将是自然而然的。

除此之外,您现在应该能够享受 Windows 事件日志特定 trigger functions像 logeventid()、logseverity()、logsource() 和 macros {ITEM.LOG.EVENTID}、{ITEM.LOG.SEVERITY} 和 {ITEM.LOG.SOURCE}。

项目的示例配置如下:

enter image description here

关于mysql - Zabbix 看一个 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23344636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com