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
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
5月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
166 2
|
6月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1078 5
|
10月前
|
Java 应用服务中间件 Linux
Tomcat运行日志字符错乱/项目启动时控制台日志乱码问题
总结: 通过以上几种方法,概括如下:指定编码格式、设置JVM的文件编码、修改控制台输出编码、修正JSP页面编码和设置过滤器。遵循这些步骤,你可以依次排查和解决Tomcat运行日志字符错乱及项目启动时控制台日志乱码问题。希望这些建议能对你的问题提供有效的解决方案。
1887 16
|
12月前
|
监控 Java 应用服务中间件
Tomcat log日志解析
理解和解析Tomcat日志文件对于诊断和解决Web应用中的问题至关重要。通过分析 `catalina.out`、`localhost.log`、`localhost_access_log.*.txt`、`manager.log`和 `host-manager.log`等日志文件,可以快速定位和解决问题,确保Tomcat服务器的稳定运行。掌握这些日志解析技巧,可以显著提高运维和开发效率。
1328 13
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
2060 28
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
196 23
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
330 25
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
381 22
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
442 3
|
SQL 关系型数据库 MySQL
【赵渝强老师】MySQL的全量日志文件
MySQL全量日志记录所有操作的SQL语句,默认禁用。启用后,可通过`show variables like %general_log%检查状态,使用`set global general_log=ON`临时开启,执行查询并查看日志文件以追踪SQL执行详情。
243 4

推荐镜像

更多