例如:需要监控下面的日志中的error

日志文件是这个 /data1/confluent-5.2.2/logs/connect/kafka-connect.log

1/ 参考上一篇安装zabbix_agent:https://www.cnblogs.com/hongfeng2019/p/11338513.html

2/ 运行python脚本

mkdir -p /home/script
vim /home/script/check_log.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys import re def prePos(seekfile):
global curpos
try:
cf = open(seekfile)
except IOError:
curpos = 0
return curpos
except FileNotFoundError:
curpos = 0
return curpos
else:
try:
curpos = int(cf.readline().strip())
except ValueError:
curpos = 0
cf.close()
return curpos
cf.close()
return curpos def lastPos(filename):
with open(filename) as lfile:
if lfile.readline():
lfile.seek(0, 2)
else:
return 0
lastPos = lfile.tell()
return lastPos def getSeekFile():
try:
seekfile = sys.argv[2]
except IndexError:
seekfile = '/tmp/logseek'
return seekfile def getKey():
try:
tagKey = str(sys.argv[3])
except IndexError:
tagKey = 'Error'
return tagKey def getResult(filename, seekfile, tagkey):
# 获取上一次检查文件时文件末尾的位置
destPos = prePos(seekfile)
# 获取当前文件末尾位置
curPos = lastPos(filename) if curPos < destPos:
curpos = 0 try:
f = open(filename)
except IOError:
print('Could not open file: %s' % filename)
except FileNotFoundError:
print('Could not open file: %s' % filename)
else:
# 指针偏移到上次检查文件是的末尾位置
f.seek(destPos)
global result
result = 0
while curPos != 0 and f.tell() < curPos:
rresult = f.readline().strip() if re.search(tagkey, rresult,re.I):
with open(sys.argv[4], 'a+') as wsf:
#with open('/tmp/55.log', 'a+') as wsf:
wsf.write(rresult + "\n")
result+=1 with open(seekfile, 'w+') as sf:
sf.write(str(curPos))
finally:
f.close()
return result if __name__ == "__main__":
result = 0
curpos = 0
tagkey = getKey()
seekfile = getSeekFile()
result = getResult(sys.argv[1], seekfile, tagkey)
#result = getResult('cookies.dat', '/tmp/1.log', 'error',)
print(result) # UserParameter = check_log, /usr/bin/python/scripts/log.py/opt/a.log/opt/logseek Error
# 第一个参数代表要监控的日志文件
# 第二个参数代表每次查看完日志文件缓存看到哪里了的日志文件
# 第三个参数代表监控的关键字
# 第四个参数代表筛选出的日志存放位置

# 第一个参数代表要监控的日志文件

# 第二个参数代表每次查看完日志文件缓存看到哪里了的日志文件

# 第三个参数代表监控的关键字,如error  注: 有括号的要转义'\[ERROR\]'

# 第四个参数代表筛选出的error日志存放位置

mkdir /tmp/question_log

chmod -R 777 /tmp/question_log

/bin/python /home/script/check_log.py   /data1/confluent-5.2.2/logs/connect/kafka-connect.log /tmp/question_log/check_kafka-connect_tag.log error  /tmp/question_log/kafka-connect_question.log

运行两次测试: 最新的error数为0

3/ 建立一个user的键值脚本

vim  /etc/zabbix/zabbix_agentd.d/userparameter_script.conf

UserParameter=check_kafka-connect_error_log,/bin/python /home/script/check_log.py  /data1/confluent-5.2.2/logs/connect/kafka-connect.log /tmp/question_log/check_dispatcher_tag.log error /tmp/question_log/dispatcher_question.log

4/ 让zabbix用户有访问log文件的权限

chown zabbix.root /data1/confluent-5.2.2/logs/connect/kafka-connect.log

5/ 从服务器上看能否拿到error的数值

[root@backup ~]# zabbix_get -s 10.52.110.48 -k check_kafka-connect_error_log
0

6/ 登陆zabbix的管理界面,建监控项

为监控的机器添加一个监控项,监控项的键值从上面的第三步的键值脚本中来

check_kafka-connect_error_log

7/ 测试:点监测---最新数据找到新加的监控项看有没有值传过来.

找到你添加监控的机器

看出现监控项没有

7 有的话, 添加触发器

创建触发器--写上触发器的名称

在表达式项点添加按钮--点选择--选择上面建的监控项--结果那项选>=1

kafka的错误日志log监控的更多相关文章

  1. 向服务器写入错误日志-log

    /// <summary> /// 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) /// </summary> /// <param name=" ...

  2. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  3. 2. SQL Server数据库状态监控 - 错误日志

    原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯 ...

  4. Sentry错误日志监控你会用了吗?

    无论作为新手还是老手程序员在程序的开发过程中,代码运行时难免会抛出异常,而且项目在部署到测试.生产环境后,我们便不可能像在开发时那样容易的及时发现处理错误了.一般我们都是在错误发生一段时间后,错误信息 ...

  5. 运维开发实践——基于Sentry搭建错误日志监控系统

    错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...

  6. linux(centos8):zabbix配置邮件报警(监控错误日志)(zabbix5.0)

    一,zabbix5.0发邮件报警的准备工作: zabbix5.0在linux平台上的安装:参见这一篇: https://www.cnblogs.com/architectforest/p/129125 ...

  7. MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...

  8. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

  9. SQL Server自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

随机推荐

  1. @RequestMapping的简单理解

    @Controller public class ItemController { @Autowired private ItemService itemService; 获取路径参数.../item ...

  2. luogu 1876 开灯 约数+打表

    打表后发现答案都是完全平方数,直接输出即可. #include <cstdio> #include <algorithm> using namespace std; int m ...

  3. Java进阶知识01 Struts2下的 jquery+ajax+struts 技术实现异步刷新功能

    1.效果图示 横线上方的部分不动(没有刷新),下方实现刷新(异步刷新) 2.实现步骤 jquery+ajax+struts技术实现异步刷新功能的步骤:    1.需要用到 jquery+ajax+st ...

  4. 响应式web布局

    通过不同的媒体类型和条件定义样式表规则,媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件.媒体查询的大部分媒体特性都接受min和max用于表达”大于或等于”和”小与或等于”.如:wi ...

  5. JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上

    JavaWeb-RESTful(一)_RESTful初认识 传送门 JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上 传送门 JavaWeb-RESTful(三)_使 ...

  6. vue+ts搭建项目

    Tip: 为了避免浪费您的时间,本文符合满足以下条件的同学借鉴参考 1.本文模版不适用于小型项目,两三个页面的也没必要用vue2.对typescript.vue全家桶能够掌握和运用 此次项目模版主要涉 ...

  7. VirtualBox——在Win7的HOST上安装配置虚拟机CentOS7

    在Win7为HOST的环境下,安装VirtualBox,在其中安装CentOS7,以Bridge的方式搭建网络环境. 主要配置包括VirtualBox中的网络设置,以及CentOS中的网络配置.另外还 ...

  8. Java-数据类型与编码(ASCII、Unicode 和 UTF-8)

    机械硬盘硬件结构(了解)https://diy.pconline.com.cn/cpu/study_cpu/1009/2215404_all.html 一.数据储存单位 1.bit(位) https: ...

  9. mongodb 操作笔记

    切换库:use 库名 显示所有的数据库:show dbs 创建集合:db.createCollection("collection_name",{capped:true,size: ...

  10. Centos 安装freesurfer fsl matlab 等软件---转自网络

    freesurfer: freesurfer好安装,只需要下载官网源码包,如freesurfer5.3.tar.gz 下载至本地,解压: tar zxvf freesurfer5.3.tar.gz - ...