「java系统监控日志」java监听binlog日志
本篇文章给大家谈谈java系统监控日志,以及java监听binlog日志对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何用java代码来监控系统内存·cpu·线程占用情况,并生成日志
- 2、不容忽视的ClassNotFoundException
- 3、java如何做系统操作日志?
- 4、java程序中实现系统日志功能怎么做?就是用来记录使用系统的操作记录的那种,有例子的话更好,在线等候...
- 5、监控一个持续刷新的日志文件/var/log/messages,命令是什么/var/log/messages
- 6、java开发怎么做日志功能 就是记录用户每一步的操作具体做什么了
如何用java代码来监控系统内存·cpu·线程占用情况,并生成日志
可以学习软件包 java.lang.management
提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。
ClassLoadingMXBean
用于 Java 虚拟机的类加载系统的管理接口。
CompilationMXBean
用于 Java 虚拟机的编译系统的管理接口。
GarbageCollectorMXBean
用于 Java 虚拟机的垃圾回收的管理接口。
MemoryManagerMXBean
内存管理器的管理接口。
MemoryMXBean
Java 虚拟机内存系统的管理接口。
MemoryPoolMXBean
内存池的管理接口。
OperatingSystemMXBean
用于操作系统的管理接口,Java 虚拟机在此操作系统上运行。
RuntimeMXBean
Java 虚拟机的运行时系统的管理接口。
ThreadMXBean
Java 虚拟机线程系统的管理接口。
更多请访问(bug315)
不容忽视的ClassNotFoundException
相信很多Java开发人员都对这个常见却不招人待见的java.lang.ClassNotFoundException并不陌生。出现这个异常的原因大家都清楚(classpath路径下缺少class文件或者jar包了,或者是类加载器委派的问题等),不过对于它给JVM带来的性能影响可能就不了解了。这个异常可能会严重影响应用程序的响应时间和可伸缩性。
大型的J2EE企业级应用,可能会同时部署有多个应用,由于同时运行着多个类加载器,就很容易导致这类问题。除非发现有业务确实受到影响或者日志监控比较详细,否则很有可能出现了ClassNotFoundException你也不知道,这导致的结果是:JVM类加载的IO开销和线程间的锁竞争给系统带来的性能问题。
本文及文中的示例程序将会告诉你,应当谨慎对待生产系统中出现的ClassNotFoundException异常,并正确的解决它。
想要正确理解这个性能问题,首先你得明白Java类加载模型的机制。ClassNotFoundException意味着JVM无法找到或者加载某个Java类:
Class.forName()方法
ClassLoader.findSysteClass()方法
ClassLoader.loadClass()方法
尽管在JVM的生命周期内,你的应用程序里面的Java类应该只会加载一次,但有些应用可能会依赖于动态的类加载机制。
不管怎么说,不停地加载失败总是很影响性能的,尤其是JDK中默认的java.lang.ClassLoader进行加载的时候。事实上,1.7以上版本的JDK,为了向下兼容,同一个类不能同时被加载,除非这个类加载器被标记为“支持并发”的。你要时刻牢记,同步操作是在类这一级实现的,由于多个Java线程并发地加载,同一个类不停的加载失败会引发线程间的锁竞争。如果是JDK1.6以前则情况更糟糕,因为同步操作是在类加载器这一层完成的。
由于这个原因,像JBoss WildFly8等JavaEE容器都使用了它们内部的并发类加载器来完成应用程序的类加载。这些类加载器都在更细粒度上进行加锁,这样同一个类加载器的实例可以同时加载多个不同的类。这和JDK1.7的优化不谋而和,它支持的并发的自定义类加载器也是防止类加载器出现死锁的现象。
不过,像java.*的系统级别的类,它们的加载还是会由JDK默认的类加载器来完成。这意味着连续的类加载失败还是可能会引发严重的线程锁竞争。这也正是本文接下来要重现并演示的场景。
为了重现并模拟这个问题,我们按照以下的规范写了一个简单的程序:
一个JAX-RS WEB服务执行Class.forName()来加载一个系统包下不存在的类:
JRE: HotSpot JDK 1.7 64位
Java EE容器:JBoss WildFly8
压测工具:Apache JMeter
Java监控工具:JVisualVM
Java故障分析:JVM Thread Dump
JAX-RS服务同时有20个线程在并发的执行。每一次调用都会触发一个ClassNotFoundException。为了减少IO的影响,日志也完全关闭了,我们只关注类加载的竞争冲突。
现在我们来看下JVisualVM在半分钟到一分钟内的监测结果。可以很明显的看到,很多线程都阻塞住了,在等待获取一个对象锁。
分析JVM的threaddump很容易就能定位出问题:线程锁竞争。从运行栈的跟踪信息可以看到,JBoss把类加载的任务委派给了JDK的类加载器。为什么?这是因为这个不存在的java类被认为是属于系统类路径底下,因此JBoss会把它的加载委派给系统的类加载器。这样因为这个类触发了系统级的同步,其它线程只能等待获取锁才能加载它。
很多线程都在等待获取0x00000000ab84c0c8的锁:
这个线程是罪魁祸首——default task 20
现在我们把要加载类的名字更换到应用程序的包下面并重新运行这段程序。
可以看到,不再有阻塞的线程出现了。为什么?我们来看下JVM的thread dump来更好的理解下为什么会出现这个变化。
由于类名不再认为属于Java系统包下,不会发生类加载委派,也就没有同步操作。
由于JBoss认为JDK1.7是一个”安全“的JDK,它会使用ConcurrentClassLoader.performLoadClassUnchecked()方法,也就不会触发对象监视器锁。
没有同步也就不会产生线程锁竞争,也就不会出现没完没了的ClassNotFoundException异常。
值得注意的是JBoss在防止线程锁竞争方面做出了很大的改进,不过重复的类加载的尝试仍然会在一定程度上影响应用的性能,因为搜索JAR包查找Java类会有一定的IO开销,因此也仍需要采取正确的手段进行处理。
希望你能喜欢这篇文章并且对类加载可能会带来的性能影响也有了更好的了解。JDK1.7和现代的Java EE容器都在类加载方面做了很多的优化,比如死锁和锁竞争方面,但是还是会存在潜在的问题。因此,我强烈建议你能密切的关注你的应用程序的表现,记录日志并确保类加载相关的异常比如java.lang.ClassNotFoundException和java.lang.NoClassDefFoundError都能够正确的处理。
java如何做系统操作日志?
手头没有代码,用文字书写比较麻烦,说说思路吧:
1):操作日志与每一个人的系统权限密切相关,在前期定义权限的时候,必须区分好每一个用户级别的权限(一级菜单与菜单下具体功能),需要用多张表进行权限标识,并且建立各个表之间的关联关系(具体设置此处略)。
2):当用户点击系统内每一个功能(每一个功能按钮)的时候,一方面实现按钮功能(新建按钮实现新建功能),另外一方面将此处的功能名称、模块名称、用户名、时间等信息一并存储到用户操作表里面。
3):在用户操作查询页面输入相应的条件,在用户操作表内查询即可。
java程序中实现系统日志功能怎么做?就是用来记录使用系统的操作记录的那种,有例子的话更好,在线等候...
其实系统日志就是在系统操作者完成操作的同时,记录操作的详细信息,这个记录功能一般是在操作者完成操作同时进行处理的。例如,系统使用者对某一个表完成了插入操作,那么插入操作完成的同时,加一行代码,或者在插入操作调用的存储过程中加一段向程序日志表内插入一条操作信息!
以后想要知道操作人的操作信息,检索操作日志表就可以了!
先建立一个操作日志表,通常不止一个,按照操作分类添加!
监控一个持续刷新的日志文件/var/log/messages,命令是什么/var/log/messages
Zabbix Advance - Linux log monitor 日志监控(/var/log/messages,/var/log/secure,其它程序日志皆可) 原创
2020-09-11 10:43:40
2点赞
Fei-Huang
码龄12年
关注
文章目录
日志监控原理
本文档示例版本与官方使用文档
配置过程
一,被监控的主机上配置zabbix_agentd.conf
二,修改日志文件的权限
修改前日志文件的权限:
修改日志文件的权限
查看修改后的文件权限
三,配置zabbix web item页面(监控root用户登陆)
root用户登陆测试
配置告警(trigger)
最终配置
再次测试root登陆
日志监控原理
zabbix 监控日志,主要是用于监控日志中的关键字,遇到关键字后,zabbix agent 将日志发送给server。日志监控必需是agent active的监控项目
本文档示例版本与官方使用文档
官方文档链接
配置过程
一,被监控的主机上配置zabbix_agentd.conf
[root@GuangGu_Zabbix_proxy ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=X.X.X.X
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
ServerActive=X.X.X.X
Hostname=Zabbix_lOG
以上两个参数配置对日志很重要,agent active 在发送数据给server端时,会将配置文件中的hostname的值做为一个值携带给服务端,zabbix_server收到发送过来的数据后会主动匹配这个值,是否与自己配置的主机的hostname一致,一致即接收数据,放置在数据库中。
二,修改日志文件的权限
通常情况下,/var/log/目录下的系统日志文件只有root用户有相应的读写权限,而zabbix对这些文件需要有读取的权限,否则无法监控,所以在不更改属主属组的情况下,使用==“facl”== 添加文件权限比较合适,以下为示例:
修改前日志文件的权限:
[hostname]# ls -l /var/log/messages
-rw------- 1 root root 138063 Sep 11 08:10 /var/log/messages
1
2
1
2
只有root用户有读写权限,其它的用户均没有权限
修改日志文件的权限
setfacl -m u:zabbix:r-- /var/log/messages
1
1
查看修改后的文件权限
[root@GuangGu_Zabbix_proxy ~]# ls -l /var/log/messages
-rw-r-----+ 1 root root 193670 Sep 11 09:10 /var/log/messages
1
2
1
2
[root@GuangGu_Zabbix_proxy ~]# getfacl /var/log/messages
getfacl: Removing leading '/' from absolute path names
# file: var/log/messages
# owner: root
# group: root
user::rw-
user:zabbix:r--
group::---
mask::r--
other::---
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
user:zabbix:r-- 可以看到zabbix用户有r的权限了
但是这条命令只设置了当前的/var/log/messages的文件的权限,这个日志文件是会随日期滚动的所以还需要设置一下日志滚动后的zabbix用户的权限,此时还需要修改另外一个文件的内容:
[root@hostname~]# vim /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2 /dev/null` 2 /dev/null || true
/usr/bin/setfacl -m u:zabbix:r-- /var/log/messages
endscript
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
logrotate 不是守护进程的服务,所以不需要重启
三,配置zabbix web item页面(监控root用户登陆)
key : log[file,regexp,encoding,maxlines,mode,output,maxdelay,options]
/var/log/messages 中 root 用户登陆的日志记录如下:
Sep 11 09:30:01 LOGMONITOR systemd: Started Session 6787 of user root.
1
1
几个注意点:
类型必需是“zabbix agent active”的
信息类型必需是“日志”型的
log[/var/log/messages, Started Session .* of user root.$,skip,]
root用户登陆测试
Sep 11 09:44:47 LOGMONITOR systemd-logind: New session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Started Session 6789 of user root.
Sep 11 09:44:47 LOGMONITOR systemd: Starting Session 6789 of user root.
1
2
3
1
2
3
以上三条是登陆产生的日志
查看zabbix监控的消息记录
点击“历史记录查看”
zabbix已经收到相关日志
配置告警(trigger)
配置告警思路:
只要zabbix收到相应条目的日志一次,就触发一次告警
收到告警后,如果60s内没有再次触发告警就消失
最终配置
再次测试root登陆
此告警60S后消失
文章知识点与官方知识档案匹配
CS入门技能树Linux入门初识Linux
24650 人正在系统学习中
打开CSDN APP,看更多技术内容
zabbix监控Linux进程方法_lihuaichen的博客
利用zabbixproc.num方法监控Linux服务进程 proc.num[name,user,state,cmdline] 监控用户某些状态的进程的数量 name- 进程名称 (默认“all processes”)user- 用户名 (默认 “all users”)state- 可用值:all(默认),run,sl...
继续访问
zabbix监控远程linux服务器基础操作_今天摘太阳的博客_linu...
查看添加的监控主机的最新数据是否监控到数据。4. 通过web页面配置linux监控,添加监控主机及套用模板设置。 zabbix监控Linux流程 m0_52091913的博客 312 zabbix监控Linux流程,邮件警告 远程监控 linux服务器软件,如何从Web浏览器远程监控...
继续访问
log_monitor日志监控
对qps以及接口的平均耗时进行统计 特点 (1)轻量: 共219KB(代码量约300行), 无需安装,解压即可使用 (2)低侵入: 基于日志文件进行统计,无需修改原程序 使用说明 (1) 二进制包:下载工具包 log_monitor.tar.gz,并解压 (2) 源码编译:make 之后进行参数配置,可以拷贝现有的,各个参数说明如下: log_file=/data/nginx_logs/access.log log_reg=
(.∗)\+0800
(.∗)\+0800
time_format=%d/%b/%Y:%H:%M:%S retain_seconds=3600 http_port=3344 log_level=INFO log_file: 需要监控的日志的路径 log_reg: 需要匹配的日期以及耗时信息的正则表达式(需要加括号) time_format: 日志中日期的格式 retain_seconds: 统计数据保留时间 http_port: 用来通过页面展示统计数据的端口 log_level: log monitor的日志级别 启动 ./bin/log_monitor [conf_file_path] 查看 (1) 在控制台就可以看到系统实时的qps以及每一秒中接口的平均耗时情况 (2) 通过浏览器访问 {ip}:{http_port}/show.html
Zabbix监控之Linux命令行/Shell脚本解析json
本文主要写了在Linux下如何用Shell脚本解析json数据,以便于在Zabbix中添加适合于业务应用的监控项。为什么要使用json?json作为一种文本化的数据格式(文本化协议),符合UNIX编程的哲学,既符合透明性(透明性:设计可见,便于审查和调试)又符合文本性(文本性:数据应该保存为文本文件)。关键在于json对Web程序或者java程序非常友好,对于开发人员来说,他们也喜欢使用json数...
继续访问
linux启动zabbix服务,zabbix监控Linux系统服务_邓琨腾的博客
Zabbix自动发现规则监控Linux系统的service units 项目要求:通过systemctl命令查看Linux系统的service units; 监控前提:zabbix环境已搭建好; 监控原理:通过shell脚本把systemctl命令返回的结果以json格式发送到zabbix; ...
继续访问
zabbix自动监控linux进程,zabbix远程命令-监控进程停掉后自动重启应用...
6.在验证远程命令的可用性之后,在zabbix前端页面添加监控项,设置触发器,并添加执行远程命令的动作。 7.添加监控项: 自定义名称,类型为zabbix客户端,键值为proc.num[,,,httpd],其他自定义,点击添加。
继续访问
zabbix监控日志
zabbix监控日志
继续访问
linux的数据清洗视频,Zabbix监控历史数据清理
Zabbix监控运行一段时间以后,会留下大量的历史监控数据,Zabbix数据库一直在增大;可能会造成系统性能下降,查看历史数据室查询速度缓慢。Zabbix里面最大的表就是history和history_uint两个表,而且zabbix里面的时间是使用的时间戳方式记录,所以可以根据时间戳来删除历史数据一、关闭zabbix、http服务pkill -9 zabbixservice httpd stop...
继续访问
zabbix3.4监控linux磁盘使用率_一文看懂Linux全能型监控命令--dstat...
在linux上有top、free、iostat、vmstat、netstat等诸多监控系统各项性能的工具,如top,可以实时监控到系统负载、内存等使用情况,iostat能监控系统I/O情况,而vmstat可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。不过今天主...
继续访问
Zabbix监控Linux进程方法
利用zabbix proc.num方法监控Linux服务进程 proc.num[name,user,state,cmdline] 监控用户某些状态的进程的数量 name - 进程名称 (默认“all processes”) user - 用户名 (默认 “all users”) state - 可用值: all (默认), run,sleep, zomb cmdline - 命令行过滤(正则表达时) 一、首先新建一个模板,在监控项条目中新
继续访问
关于/var/log/messages文件
/var 包括系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录,如/var/log,/var/lock,/var/run。有些目录还是可以与其他系统共享,如/var/mail, /var/cache/man, /var/cache/fonts,/var/spool/news。var目录存在的目的是把usr目录在运行过程中需要更改的文件或者临时生成的文件及目录提取出来
继续访问
@Zabbix常用的监控命令及监控分析
文章目录一、面试技巧1.面试常问二、单机监控命令1.CPU 监控命令2.内存监控命令3.磁盘监控命令4.网络监控命令5.TCP11种状态监控命令6.生产场景需求7.系统的oom(out of memory)8.使用脚本监控nginx三、zabbix数据库拆分1.环境准备2.导出原MySQL中的zabbix数据3.准备新的数据库环境4.关闭原来的数据库测试5.修改连接数据库代码 一、面试技巧 1.面试常问 #1.面试官:你们公司监控是如何做的? 你:用zabbix 面试官:.... #2.面试技
继续访问
最新发布 zabbix日志监控:操作系统、业务系统、文件大小、多行日志
(一)监控操作系统日志 (二)监控业务系统日志 (三)监控日志文件大小 (四)多行日志监控- Python脚本优化
继续访问
zabbix 时间错误_使用Zabbix来监控系统日志
在Linux系统上,日志文件通常可以分为四类:System Logs(系统日志)Event Logs(事件日志)Application Logs(应用程序日志)Service Logs(服务日志)一、为什么要监控日志?Linux为了跟踪和监视系统(内核)各个组件及应用程序运行状态而将产生的相关事件存储到日志文件中,当系统或者应用程序出现问题时,系统管理员能根据日志定位到问题。而通过监控Linux的...
继续访问
【Docker学习】13、使用 Docker/Docker-Compose 部署 Prometheus 监控组件
文章目录1、Prometheus 监控组件(1)Prometheus 监控 Linux(2)Prometheus 监控 Docker(3)Prometheus 监控 MySQL 1、Prometheus 监控组件 从上面的构建可以发现,现在已经可以监控当前Linux主机了,实际上能监控的内容很多,可以在官网查看,监控内容或社区查找 搭建各种组件的监控,首先需要找到提供数据的数据源,当然,Prometheus已经给我们写好了配置,我们只需要在找到对应的配置进行安装即可,Prometheus GitHub,例如
继续访问
Linux从入门到放弃 zabbix常见的linux监控命令
cpu top htop uptime vmstat 内存 free 磁盘 df iotop 网卡 iftop nethogs 系统进程 ps pstree
继续访问
zabix监控linux进程名称,zabbix监控Linux进程方法
利用zabbixproc.num方法监控Linux服务进程proc.num[,,,]监控用户某些状态的进程的数量name- 进程名称 (默认“all processes”)user- 用户名 (默认 “all users”)state- 可用值:all(默认),run,sleep,zombcmdline-命令行过滤(正则表达时)具体监控某一服务进程的方法一、首先新建一个模板,在监控项条目中新建一...
继续访问
zabbix监控Linux流程
zabbix监控Linux流程,邮件警告
继续访问
zabbix监控linux文件目录,zabbix之日志文件监控
一、日志item介绍下面介绍zabbix另一个“重量级”的功能——日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。在配置Item的时候,Type选择Zabbix agent (active),这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。log[/path/to/some/file,,,,,]logtr[/pa...
继续访问
监控linux日志,Zabbix日志监控:Linux异常登录告警
本文利用zabbix的日志监控功能监控Linux的secure日志,当有用户登录失败或者用户在非常规时间登录成功时发出告警。这里我们使用zabbix提供的'log[file,,,,,]'来监控Linux的/var/log/secure文件。先介绍下这个log监控项:1)监控项类型是Zabbix agent (active),返回数据类型是Log。2)Zabbix agent要对监控的日志文件有可读...
继续访问
Zabbix监控日志
创建监控项 创建触发器 验证 问题定位 创建监控项 注意要选择客户端主动式,使用主动式的时候无法使用zabbix-get工具调试 键值示例:log[/home/moa/log/smapd/smapd.log,”info”,,,skip,,] 说明:1、/home/moa/log/smapd/smapd.log表示日志路径 2、”info”表示匹配的关键字...
继续访问
zabbix监控日志关键字(ERROR)
前言:对我我这种刚入职场不久的小运维来说其实这个对我来说真的挺难得,研究了好久也在朋友的帮助下终于成功了,在此多谢我的朋友(倪伟)。 公司没有zabbix监控,领导让搭建一套zabbix然后让监控错误日志(关键字error),其实据说牛掰的大神可以监控到具体报错信息是什么,如有大神能编写出来欢迎指教。 因为就是想让他提醒一次就不在提醒了,所以脚本我写了半天(不擅长啊) 我zabbix搭建的过...
继续访问
热门推荐 Linux实时查看文件/var/log/messages以及这个文件的问题
耐心看完说不定有你遇到的问题 1./var/log/messages 首先说一下这个文件的存在,在Ubuntu系统中,这个文件你访问可能提示找不到这个文件 //使用tail命令访问 name@name:~$ sudo tail /var/log/messages tail:无法打开'/var/log/messages' 读取数据: 没有那个文件或目录 tail:没有剩余文件 可能会出现...
继续访问
Zabbix使用总结
1. CentOS 7上启动zabbix-server失败,/var/log/messages中的报错信息如下: Feb 22 12:56:43 mysql-server1 systemd: Starting Zabbix Server with MySQL DB... Feb 22 12:56:43 mysql-server1 kernel: zabbix_server[1599]: s
继续访问
zabbix监控linux历史命令
zabbix
写评论
评论
3
java开发怎么做日志功能 就是记录用户每一步的操作具体做什么了
Java开发做日志功能是比较麻烦的,Java开发学做日志功能推荐千锋教育。千锋教育合作院校超600所,校企合作共建实验室50余个,与教育部产学合作协同育人项目累计成功立项768项,为高校举办实训近万次,组织实施各类讲座5万余场。规划教材100本,已被近500所高校选用授课教材,深受广大高校师生喜爱。
日志对于一个系统来说非常重要,查找异常信息、分析系统运行情况等都需要用到日志。所以无论是JDK还是第三方都提供了关于日志的相关工具,本文分别介绍以下几种工具,以及各种工具间的整合、原理。日志,作为行为或状态详细描述的载体,其时效性与信息丰富程度在企业安全事件分析、事件回溯和取证过程中起到重要作用。在法律层,日志也是重要的电子证据,先进的日志记录、监控和审计手段,可以帮助客户有效地减少信息破坏、信息泄露的问题,对违法行为起到一定威慑作用。
想要了解更多java开发的相关信息,推荐咨询千锋教育。千锋Java现已拥有成熟独立的项目库,项目均1:1引进大厂项目,授课采用 CREA 项目研发模型,即 Cooperation、Research、Exercise、Alliance,以项目促进高质量教学。多场景,多学科联动为学员的技能实战提供高度还原的真实演练场,充分赋能学员简历价值,打造企业直聘班,得到广大学员一致认可。
关于java系统监控日志和java监听binlog日志的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。