zabbix 自动发现 tomcat日志异常文件数量

简介:

1.proc.py

#/usr/bin/python

import subprocess

import os

import socket

import json

import glob

import time

import datetime

javas=[]

java_dir_proc='xx'

now = datetime.datetime.now()

strdatetime = now.strftime("%Y/%m/%d")

java_dir_home=['ip1','ip2']

def get_exception(java_dir):

a = os.listdir(java_dir)

for x in a:

#javapath = os.path.join(java_dir, x)

#if os.path.isdir(javapath):

   if len(x) != 0:

   javas.append({'{#EXCEPTION}':x.strip('\n')})

for i in java_dir_home:

    java_dir=java_dir_proc + i + '/' + strdatetime

    get_exception(java_dir)

news_javas = []

for id in javas:

    if id not in news_javas:

        news_javas.append(id)

print json.dumps({'data':news_javas},indent=4,separators=(',',':'))

2.proc_num.py

#!/usr/bin/python

import sys

import subprocess

import os

import socket

import json

import glob

import time

import datetime

zdict={}

zd=[]

javas=[]

java_dir_proc='xx'

now = datetime.datetime.now()

strdatetime = now.strftime("%Y/%m/%d")

java_dir_home=['ip1','ip2']

def get_exception(javapath):

        if os.path.isdir(javapath):

            #CMD="cd javapath && ls|wc -l"

            os.chdir(javapath)

            CMD='ls|wc -l'

            t=subprocess.Popen(CMD,shell=True,stdout=subprocess.PIPE,env=None)

            for java in t.stdout.readlines():

                if len(java) != 0:

                        S=java.strip('\n').strip(':')

                        return S

if len(sys.argv) == 2:

    argv1 = sys.argv[1]

    for i in java_dir_home:

    javapath=java_dir_proc + i + '/' + strdatetime + '/' + argv1

        zdict[i]=get_exception(javapath)

        #print zdict[i]

        zd.append(int(zdict[i]))

    print reduce(lambda x,y:x+y,zd)

else:

    print -1

3.cat check_proc_exception.conf 

UserParameter=proc.discovery,/usr/bin/python /usr/local/zabbix/bin/proc.py

UserParameter=proc.num[*],/usr/bin/python /usr/local/zabbix/bin/procnum.py $1

4.建立模板

5.其实还可以写的更好

比如

UserParameter=proc.num[*],/usr/bin/python /usr/local/zabbix/bin/procnum.py $1 $2

对应于proc.num[{#EXCEPTION},$2]

写的差,有几个地方要优化下。比如+,怎么连接字符串。

6.图像

wKiom1hc8vCi1rTPAABRsihXZe8585.png-wh_50



改进

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
426 2
|
运维 监控 安全
Syslog 日志分析与异常检测技巧
系统日志蕴含设备运行关键信息,但分析提取颇具挑战。本文详解从命令行工具(如 Grep、Tail、Awk)到专业软件(如 EventLog Analyzer)的全流程日志分析技巧,助你高效挖掘 Syslog 价值,提升运维与安全响应能力。
957 4
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
3067 28
|
测试技术 开发工具 git
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
为了高效地发现、定位和解决预发问题,闲鱼团队研发了一套异常日志问题自动追踪-定位-分发机制。这套机制通过自动化手段,实现了异常日志的定时扫描、精准定位和自动分发,显著降低了开发和测试的成本,提高了问题解决的效率。
861 15
写了BUG还想跑——闲鱼异常日志问题自动追踪-定位-分发机制
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
620 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
SQL Oracle 关系型数据库
【赵渝强老师】Oracle的控制文件与归档日志文件
本文介绍了Oracle数据库中的控制文件和归档日志文件。控制文件记录了数据库的物理结构信息,如数据库名、数据文件和联机日志文件的位置等。为了保护数据库,通常会进行控制文件的多路复用。归档日志文件是联机重做日志文件的副本,用于记录数据库的变更历史。文章还提供了相关SQL语句,帮助查看和设置数据库的日志模式。
565 1
【赵渝强老师】Oracle的控制文件与归档日志文件
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
692 3
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
496 4
|
Oracle 关系型数据库 数据库
【赵渝强老师】Oracle的参数文件与告警日志文件
本文介绍了Oracle数据库的参数文件和告警日志文件。参数文件分为初始化参数文件(PFile)和服务器端参数文件(SPFile),在数据库启动时读取并分配资源。告警日志文件记录了数据库的重要活动、错误和警告信息,帮助诊断问题。文中还提供了相关视频讲解和示例代码。
575 1

推荐镜像

更多