当前位置:SoccerSports

华为服务器日志收(练:shōu)集命令

2025-02-24 18:26:11SoccerSports

如何收集服务器各类日志?进WIN2008服务器,点击开始,找到控制面板。点击进入控制面板,找到管理工具。找到管理工具,点击事件查看器。进入事件查看器,展开Windows日志,点击系统,右侧会显示出信息

如何收集服务器各类日志?

进WIN2008服务器,点击开始,找到控制面板。点击进入控制面板,找到管理工具。找到管理工具,点击事件查看器。进入事件查看器,展开Windows日志,点击系统,右侧会显示出信息。查看事件查看器的右方,我们会看到属性选项,红框中已经圈出

点击属性后,我们会看到服务器日志的路径澳门银河。7打开C:WindowsSystem32winevt,再打开Logs文件夹,我们会看到服务(繁:務)器日志。

开云体育

如何通过web页面方式动态查看服务器日志信息?

回答

在部署状态页面点击查看澳门永利日志,将会打开日志页面,下个图就是日志《繁体:誌》的输出页面。

简约时尚小清新[xīn]的日志页面出来了,是不是很想一[练:yī]个terminal,有没有觉得俺弄的页面很漂亮。哈哈哈哈,写不好前端的运维不是好DBA。

刚开始【pinyin:shǐ】拿到这个需求,咋觉(繁:覺)得很难。因为在服务器上我们看一个日志,经常会tail -f 看着刷屏的感觉倍爽。如何在web页面上实现tailf的效果呢?

后来想想这样实现是可行的。前端写一个js定时器,不断的发ajax请求到后台,每回取出一段日志。后台取日志可以直接调用系统命令,或者直{pinyin:zhí}接调取shell脚本,取日志,判断日志文件是否存在,是否为空,返(读:fǎn)回数【shù】据的起始位置等,都可以交给shell来做。事实上我就是这么干的。后台程序写一堆shell命令调用有点别扭

想到解决方案之后,实现的过程就比较简单了。我的开发环境是基于python的Django框《读:kuāng》架来做的,现在就展(练:zhǎn)示这个功能的实现[繁:現]过程。

Django部分[pinyin:fēn]

点击查看日志的链接之后会调到views里的ajxGetLog方法,该方法需要【练:yào】两个参数,项目id和主机id,这两个参数主要是用来确定日志文件的(拼音:de)位置。该方法返[练:fǎn]回行号。

execcommand是封装的一个subprocess.Popen的一个工具函数,返回一个列表分别[繁体:彆]是标准{pinyin:zhǔn}输出,错误输出(繁体:齣)和shell returncode

def ajxGetLog(request,pid,hid):

开云体育

host = Host.objects.get(pk=hid)

scriptname = "%s%s"%(base_path,"get_log.sh")

res = execcommand(["sh",scriptname,host.hostname,project.servicename])

#如果错误输(繁体:輸)出不为空,直接返回错误输出

澳门威尼斯人

if not res[1]:

澳门新葡京

#res[0]为行号,如果大于20行,从当(拼音:dāng)前行的上面20行开始(shǐ)输出,为了用户体验,你懂得

if int(res[0]) > 20:

line = int(res[0]) - 20

澳门新葡京

line = 1

return render(request,"logs.html",{"pid":pid,"hid":hid,"line":line})

except Exception,e:

print e

return HttpResponse(e)

else:

return HttpResponse(res[1])

html部分首席写一个《繁:個》ajax请求,传递到后台取日志内(繁体:內)容的方法,传递三个参数项目id,主机id,和行号,后台将会返回对应行号的日志内容。该方法代码如下:

def ajxGetLogHandle(request,pid,hid,line):

project = Project.objects.get(pk=pid)

host = Host.objects.get(pk=hid)

直播吧

scriptname = "%s%s"%(base_path,"get_log.sh")

澳门永利

res = execcommand(["sh",scriptname,host.hostname,project.servicename,line])

if not res[1] and res[0].strip():

return HttpResponse(res[0])

乐鱼体育

else:

return HttpResponse(500)

本文链接:http://21taiyang.com/SoccerSports/20920588.html
华为服务器日志收(练:shōu)集命令转载请注明出处来源