java如何实现对windows系统和Tomcat服务器进行监控
可以实现,我试过,cpu、内存、磁盘空间等参数信息用C语言来写一个DLL工程(extern "c"声明),最好不要用C++写,因为C++的导出函数会变名,然后java通过JNI规范调用C编写的函数。
具体是先SystemloadLibruary("dll名称");
用C函数名,注意编译DLL的时候需要java类的头文件。cmd命令:javah Java类名。再直接调C函数。
随着市场竞争力不断增大,各个企业除了要增加自身产品的竞争力之外,也越来越重视消费者的服务,毕竟大家的生活质量在提高,每个产品也都相差不大,而服务就变成了用户最值得考虑的一个因素,也更好的体现了品牌的价值。这就要求公司进入了几十台到几千台服务器的运维监控阶段,无论数量如何增加,保持服务器的稳定才是重中之重,在服务器数量少于200台的时候,主要考虑简单使用、稳定运行、报警这三个方面,一旦大于这个数量,就需要相应的提升技术手段了。
基本上200台以下的服务器运营监控就是小白级操作了,如果出现一些异常系统可以第一时间进行报警,并且帮助用户解决问题,这也是最基础的要求,基本上哪怕是新手适当的进行学习就可以操作成功。而当服务器数量从200增加到1000这个阶段,这意味着用户的需求也在变复杂,那么技术人员就需要将监控内容进行统一,实现全覆盖式的监控管理,确保每一个用户出现问题时,都没有漏报的现象。
而当服务器超过1000台以上时,监控的数量越来越多,消费者的告警信息也会急速增长,每天都会收到成百上千的用户需要解决问题的消息,如果系统不进行相关的整理的话,很容易忽略到消费者的消息,从而带来非常不好的体验,这个时候就需要及时对报警信息进行相应的整理,尽量的化繁为简,减少出现重复报警的情况。并且对于内存使用率、CPU使用率等模块进行独立的设置,做到权责分明、快速定位、及时处理。
综上所述,每个公司的业务不同,那么对于服务器的要求也不太同,不论发生怎么样的变化,基本上只要有了相关的监控数据,就能够通过技术来分析出想要的结果,想要随着时代一起进步,就需要不断的更新维护、高效运维。
Monit安装与配置
一、简介
Monit是一个在类unix平台下用于监视进程、文件、目录和设备的软件,可以修复停止运作或运作异常的程序,适合处理那些由于多种原因导致的软件错误。
二、安装
假定下面的安装和配置均在root身份下进行。
安装很简单,下载monit的源代码(现在最新版本是4101)monit-4101targz,将其放到适合的目录中,然后解压,configure(默认设置即可),make,make install 。具体在终端中使用如下命令:
tar –xzf monit-4101targz
cd monit-4101
/configure
make
make install
很快就可以安装完毕。
三、配置
安装完毕后,在monit源代码的目录将monit的配置文件monitrc拷贝到/etc目录下,使用命令:
cp monitrc /etc
注意/etc/monitrc这个文件的访问权限不能大于0700,所以可能还需要修改它的访问权限:
chmod 600 /etc/monitrc
然后打开/etc/monitrc这个文件进行配置,monit已经将大部分的配置的例子放在了里面,多数配置只需将配置前面的#(注释)去掉再做相应修改即可。我们主要用monit来监视tomcat服务器,所以配置如下:
set daemon 120 # 设置monit作为守护进程运行,并且每2分钟监视一次
# 2分钟是默认的时间间隔,从网上的看到的多个配置的例子
# 看到的时间间隔也是2分钟,应该是比较合理的
set logfile /var/log/monitlog # 设置日志文件的位置,如果要写入系统日志可以
# set logfile syslog
set httpd port 3000 and # monit内置了一个用于查看被监视服务
# 状态的http服务器,注意在防火墙中开启
# 该端口1,否则非localhost无法访问
use address 1921681184 # 设置这个http服务器的地址
# 若设置成localhost则只允许本地访问
allow localhost # 允许本地访问
allow 19216811/2552552550 # 允许内网访问
allow admin:monit11 # 设置使用用户名admin和密码monit11
# 来访问这个地址
set mailserver localhost # 设置邮件服务,设置后monit会将提示以
# 邮件的方式发送这里使用localhost为邮
# 件服务器地址,前提是本地已安装并开启
# 了sendmail服务
set alert 88fly@163com # 收邮件地址,如果要发送到多个地址
# 可以写多条这样的设置
# 下面设置监视tomcat
check process tomcat with pidfile /var/run/catalinapid # 这个要另外说明2
start program = "/etc/initd/tomcat start" # 设置启动命令
stop program = "/etc/initd/tomcat stop" # 设置停止命令
if 9 restarts within 10 cycles then timeout # 设置在10个监视周期内重
# 启了9次则超时,不再监视
# 这个服务。原因另外说明3
if cpu usage > 90% for 5 cycles then alert # 如果在5个周期内该服务
# 的cpu使用率都超过90%
# 则提示
# 若连续5个周期打开url都失败(120秒超时,超时也认为失败)
# 则重启服务
if failed url timeout 120 seconds for 5 cycles then restart
if failed url timeout 120 seconds for 5 cycles then restart
1可以使用命令:
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2812 -j ACCEPT
/sbin/service iptables save
2使用/var/run/catalinapid这个pid文件来检查tomcat这个服务(服务名可以随便起),tomcat进程默认是不使用pid文件的,pid文件需要显式为tomcat设置,可以打开tomcat目录下的bin目录,打开catalinash文件,在开头(但不是第一行)处加入:
CATALINA_PID=/var/run/catalinapid
即可指定pid文件,然后重启tomcat,这样就可以monit的配置中指定pid文件了。
3设置超时后不再监视是为了让服务不要一直重启,如果连续重启多次不成功,极有可能再重启下去也不会成功的。并且tomcat的重启需要占用大量系统资源,假如一直重启下去,反而会使其它服务也无法正常运作。
如果要监视其它服务,可以加入更多的监视逻辑,例如要监视mysql服务,可以:
check process mysql with pidfile /var/run/mysqld/mysqldpid
start program = /etc/initd/mysqld start"
stop program = "/etc/initd/mysqld stop"
if failed host 127001 port 3306 then restart
if 5 restarts within 5 cycles then timeout
监视ssh服务:
check process sshd with pidfile /var/run/sshdpid
start program "/etc/initd/sshd start"
stop program "/etc/initd/sshd stop"
if failed port 22 protocol SSH then restart
if 5 restarts within 5 cycles then timeout
如果监视的服务比较多,可以将各个服务的监视逻辑放在不同的文件,然后使用include命令包含进来,使配置文件更加清晰。例如:
include /etc/monit/includes/mysqld
上面的设置完后,设置monit随系统启动,在/etc/inittab文件的最后加入
# Run monit in standard run-levels
mo:2345:respawn:/usr/local/bin/monit -Ic /etc/monitrc
然后使用命令
telinit q
启动monit。
四、要注意的问题
由于将monit设置成了守护进程,并且在inittab中加入了随系统启动的设置,则monit进程如果停止,init进程会将其重启,而monit又监视着其它的服务,这意味着monit所监视的服务不能使用一般的方法来停止,因为一停止,monit又会将其启动要停止monit所监视的服务,应该使用monit stop name这样的命令,例如要停止tomcat:
monit stop tomcat
要停止全部monit所监视的服务可以使用monit stop all
要启动某个服务可以用monit stop name这样的命令,启动全部则是monit start all
以上转自:
今天研究了下monit 如上兄弟写的很详细,就直接拿来主义了,补充下短信告警
因公司有短信接口所以就直接发送告警,如下:
监控本机部分性能:
check system 127001
if loadavg (5min) > 4 for 4 times 5 cycles then exec "/etc/monit/script/sendsms sysload 5min >4"
if memory usage > 90% then exec "/etc/monit/script/sendsms 127001 memory useage>90%"
if cpu usage (user) > 70% for 4 times within 5 cycles then exec "/etc/monit/script/sendsms cpu(user) >70%"
if cpu usage (system) > 30% for 4 times within 5 cycles then exec "/etc/monit/script/sendsms cpu(system) >30% "
if cpu usage (wait) > 20% for 4 times within 5 cycles then exec "/etc/monit/script/sendsms system busy! cpu(wait) >20%"
监控远程机器的部分端口:
check host Unicom_mobi with address 2119024651
if failed icmp type echo count 10 with timeout 20 seconds then exec "/etc/monit/script/sendsms Unicom_mobi 2119024651 ping failed!"
if failed port 22 type tcp with timeout 10 seconds for 2 times within 3 cycles then exec "/etc/monit/script/sendsms unicom 2119024651:2222 connect failed!"
if failed port 9528 type tcp with timeout 10 seconds for 2 times within 3 cycles then exec "/etc/monit/script/sendsms unicom 2119024651:9528 connect failed!"
if failed port 9529 type tcp with timeout 10 seconds for 2 times within 3 cycles then exec "/etc/monit/script/sendsms unicom 2119024651:9529 connect failed!"
if failed port 9530 type tcp with timeout 10 seconds for 2 times within 3 cycles then exec "/etc/monit/script/sendsms unicom 2119024651:9530 connect failed!"
monit好处是可以在监控故障设置重启服务和执行自定义脚本,如下
check file passwd path /etc/passwd
# if failed md5 checksum
# then exec "/usr/bin/killall -q monit"
2 check filesystem root with path /dev/mapper/VolGroup00-LogVol00
if space usage > 80% for 5 times within 15 cycles then exec "/etc/monit/script/clear_coresh"
else if succeed for 1 times within 2 cycles then exec "/etc/monit/script/sendsms '/dev/sda1 usage > 90% clear core file succeed!'>/dev/null 2"
Navicat作为一套全面的数据库管理工具,其功能非常的齐全,给用户朋友们带来了很大的方便。很多的用户都需要对服务器进行监控,Navicat当然也提供了这个功能。下面就给大家介绍一下怎么用Navicat 进行服务器监控?
从主菜单选择工具->服务器监控,并选择目标服务器类型。需要注意的是,只限于 MySQL、Oracle、 PostgreSQL、SQL Server 和 MariaDB,SQL Azure 不支持;并且只限于Navicat完整版本。
Navicat 服务器监控
进程列表
显示全部已选择的服务器进程,停止已选择的进程,点击“结束进程”按钮。
自动刷新:在指定的秒数自动刷新服务器,选择查看->设置自动重整时间,并输入一个自动重整值。停用自动重整功能,选择检视->自动重整。需要注意的是,一旦指定数值,立即会生效。
进程列表提供的下列信息根据所选择的数据库类型而定:MySQL、Oracle、PostgreSQL、SQL Server 和 MariaDB。
设置连接时已提供的服务器名。
在服务器的进程 ID。
进程编号。
现正登录服务器的用户。
用户连接的主机。
用户现正使用的数据库。
用户最后发出的命令。
进程的时间、状态和信息。
进程的 CPU 时间和状态。
变量
显示全部服务器变量及他们的值。需要注意的是,只限于 MySQL、Oracle、PostgreSQL 和 MariaDB。
温馨提示:要编辑 MySQL 和 Oracle 服务器的变量值,使用快捷键 CTRL+ENTER,打开编辑器编辑,这些变量可以透过编辑 postgresqlconf 设置文件,使用 SET 语句来设置,不能在此编辑在 PostgreSQL 服务器的值。
状态
显示全部服务器状态的列表。需要注意的是,只限于 MySQL、Oracle、PostgreSQL 和 MariaDB 服务器。
以上就是对“怎么用Navicat 进行服务器监控”的介绍,很多的朋友都希望获取免费的Navicat,点击Navicat下载获取。
linux服务器性能监测是很重要的工作,服务器运行应该提供最有效的系统性能。当服务器系统性能突然低于平均应有的情况,问题可能来自在执行的进程、内存的使用率、磁盘的性能、网络流量和cpu
的压力。在预算短缺的今天,理解如何优化系统性能比以往任何时候都重要。
要实现它的前提是,你必须充分了解自己的计算机和网络,从而找到真正的瓶颈所在。本文提供一些基础的工具来辨别和处理一些性能问题。使用的linux
发行版本是red
hat
enterprise
linux
4,工作过程是:首先查看整个系统的状态,然后是检查特定的子系统。
linux服务器进行性能监控有几种方法,每种方法都各有其优缺点。
使用snmp等标准工具
标准及非标准工具能执行一个或多个收集、合并及传输阶段,如rstatd或snmp工具,然而标准的rstat后台程序提供的信息是有限的,速度慢而且效率低。
内核模块
几个系统监控工程利用内核模块来存取监控数据。一般情况下,这是很有效的收集系统数据的方法。然而这种方法存在的问题是,当主内核源内有其它改变时,必须保持代码一致性。一个内核模块可能与用户想使用的其它内核模块相冲突。此外,在使用监控系统之前,用户必须获得或申请模块。
/proc虚拟文件系统
/proc虚拟文件系统是一个较快的、高效率执行系统监控的方法。使用/proc的主要缺点是必须保持代码分析与/proc
文件格式改变的同步。事实表明,linux内核的改变比/proc
文件格式的改变要更频繁,所以,用/proc虚拟文件系统比用内核模块存在的问题要少。本文介绍的方法即基于/proc虚拟文件系统。
一、
/proc文件系统特点
linux
系统向管理员提供了非常好的方法,使他们可以在系统运行时更改内核,而不需要重新引导内核系统。这是通过
/proc
虚拟文件系统实现的。/proc
文件虚拟系统是一种内核和内核模块用来向进程
(process)
发送信息的机制
(所以叫做
/proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取
有关进程的有用信息,在运行中
(on
the
fly)
改变设置
(通过改变内核参数)。
与其他文件系统不同,/proc
存在于内存之中而不是硬盘上。不用重新启动而去看
cmos
,就可以知道系统信息。这就是
/proc
的妙处之一。
小提示:
每个linux系统根据软硬件不同/proc
虚拟文件系统的内容也有些差异。/proc
虚拟文件系统有三个很重要的目录:net,scsi和sys。sys目录是可写的,可以通过它来访问或修改内核的参数,而net和scsi则依赖于内核配置。
loadrunner 性能测试工具就可以达成这个目标
服务器的内存、CPU、硬盘、等使用情况都可以监控到,当然这个服务器都启动相关的服务才行
如果是要监控数据库,如oracle、DB2等,最好搭配sitescope 这个工具使用会更好
当然远程监控的前提是要配置一些参数和服务
最简单的实现方法:配一台宽带路由器,拨号交给路由器,录像机全部接入该路由器,对路由器进行必要的设置(主要是端口映射设置)即可实现远程监看。如果你的公网IP是动态的(传统的ADSL或是小区宽带均为动态IP),还需要申请动态域名解析服务(如:“花生壳”),如果不明白这东东,上网了解下。
如果需要管理的客户端人数较多,设备较多而且需要统一管理,才需要配置服务器(硬件配置较高的普通兼容机即可),在该计算机上布暑管理平台,实现用户、设备集中管理,媒体转发(解决多用户同时访问相同数据时占用大量带宽的问题)等等功能。
单纯就远程监控来说,各种功能实现起来不复杂。但对网络带宽要求相当高,同时由于你目前手里只有录像机厂家的配套软件,这类软件适合局域网内分控,对于广域网环境下多台设备,多个用户的集中管理束手无策。如果你的系统的确需要对用户及设备统一管理,需要付费购买监控平台软件。 如果确实存在同时访问人数较多的情况,即使你不需要对设备及用户集中管理或是不愿意搭建平台,配一台计算机用做媒体转发还是有必要的,媒体转发软件可向录像机厂家索取,如果厂家有的话,通常免费。
系统运维管理是许多公司在维护软件系统中非常重要的工作内容。今天,我们就一起来了解一下,在运维过程中都有哪些工具是需要我们掌握和使用的。
0条评论