linux虚拟机怎么看var文件,一种获取Linux虚拟机内部日志的方法
一种获取Linux虚拟机内部日志的方法
【技术领域】
[0001]本发明涉及云计算管理技术领域,特别是指一种获取Linux虚拟机内部日志的方法。
【背景技术】
[0002]在云计算环境下,虚拟机被广泛使用,对于虚拟机的维护要求越来越高,当虚拟机出现故障,需要进行故障排查时,通常需要查看虚拟机内部日志,一般只能通过跟客户获取虚拟机用户名及密码,进入虚拟机内部查看日志,根据日志排查故障。
[0003]上述方法存在以下弊端:
[0004]1、对于客户数据安全没有保障,需要跟客户获取用户名密码,才能进入虚拟机内部;
[0005]2、排查所花时间较长,需要获取密码及进入虚拟机内部。
【发明内容】
[0006]本发明解决的技术问题在于提供一种获取Linux虚拟机内部日志的方法,解决传统方法存在的不足,保障客户虚拟机数据安全,提高运维效率,为虚拟机运维提供一种可行的解决方案。
[0007]本发明解决上述技术问题的技术方案是:
[0008]所述的方法包括如下步骤:
[0009]步骤1:登录云平台管理端,选择要查看日志的虚拟机
[0010]步骤2:输入查询条件,查询虚拟机系统日志
[0011]步骤3:查询命令发送到虚拟机客户端
[0012]步骤4:虚拟机客户端读取当天系统日志,返回结果。
[0013]所述的云平台管理端,是统一的虚拟化管理平台,能够对外提供统一的管理接P ;
[0014]所述的日志,是虚拟机内部日志,包含linux的/var/log/messages、/var/log/syslog、/var/log/user.log、/var/log/auth.log 四个文件;所述的 /var/log/messages 包括整体系统信息,其中也包含系统启动期间的日志;所述的/var/log/syslog只记录警告信息,常常是系统出问题的信息;所述/var/log/user.log记录所有等级用户信息的日志;所述的/var/log/auth.log包含系统授权信息,包括用户登录和使用的权限机制等。
[0015]所述的输入查询条件,是指需要从虚拟机内部要获取的日志类型及时间。
[0016]所述的虚拟机客户端,是安装在虚拟机内部的程序,通过串口通信协议与云平台管理端通信;所述的串口通信协议,指串口按位(bit)发送和接收字节。
[0017]本发明的方法保障客户数据安全,无需获取虚拟机用户名密码;具有通用性,针对Linux操作系统都能使用;简单快捷,无需进入虚拟机内部即可查看最新系统日志。
【附图说明】
[0018]下面结合附图对本发明进一步说明:
[0019]图1为本发明的流程图;
[0020]图2为本发明的技术原理图;
【具体实施方式】
[0021]如图1、2所示,本发明具体实施过程如下:
[0022]1、登录云平台管理端,选择要查看日志的虚拟机;
[0023]2、输入查询条件,查询虚拟机系统日志
[0024]/**
[0025]^searchVmEvent查询虚拟机日志.
[0026]*@param beginTime 日志开始时间
[0027]*@param endTime 日志结束时间
[0028]^Oparam eventType日志类型:错误、告警、正常
[0029]*@param evList 查询返回列表
[0030]*/
[0031]public ListsearchVmEvent(Date beginTime, Date endTime, StringeventType)
[0032]{
[0033]ListevList = new ArrayList();
[0034]evList = gComputerService.searchVmEvent(beginTime? endTime,eventType);
[0035]return evList ;
[0036]}
[0037]3、查询命令发送到虚拟机客户端;
[0038]windows系统日志的地址存在项目的address, properties配置里面
[0039]addressl = /var/log/messages
[0040]address2 = /var/log/syslog
[0041]address3 = /var/log/user.log
[0042]address3 = /var/log/auth.log
[0043]在xml配置文件中,导入address, properities文件
[0044]〈bean id=" propertyConf igurer!! class =" org.springframewornf ig.PropertyPlaceholderConfigurer" >
[0045]〈property name = " ignoreResourceNotFound" value = " true" />
[0046]〈property name = " locat1ns" >
[0047]〈list〉
[0048]/WEB-1NF/address.properties
[0049]〈/list〉
[0050]
[0051]
[0052]〈bean id = " proxyNameclass = " xxx.xxx.xxx.ProxyClass>
[0053] {addressl}〈/value〉
[0054]
[0055]4、虚拟机客户端读取当天系统日志,返回结果;
[0056]/*void Read—event (os—el*el)读取系统的日志详情
[0057]^Reads the event log.
[0058]*/
[0059]void Read—event(os_el*el, int printit)
[0060]{
[0061]DWORD nstr ;
[0062]DWORD user—size ;
[0063]DWORD domain—size ;
[0064]DWORD read,needed ;
[0065]int Size—left ;
[0066]int str—size ;
[0067]char*mbuffer[BUFFER—SIZE];
[0068]LPSTR sstr = NULL ;
[0069]char*tmp—str = NULL ;
[0070]char^event—category ;// 事件类型
[0071]char^event—sourcename ;// 事件来源
[0072]char^event—computername ;// 事件计算机名
[0073]char*event—descriptive—msg ;// 事件描述
[0074]char event—el—user [257] ;//事件用户
[0075]char event—el—domain [257] ;//事件域
[0076]char el—string
[1025];
[0077]char final—out—msg
[1024] ;// 最后输出的信息
[0078]LPSTR el—sstring[57];
[0079]/氺Er must point to the mbuffer木/
[0080]el->er = (EVENTL0GREC0RD*)&mbuffer ;
[0081]/^Zeroing the last values*/
[0082]el_string
[1024] =' \0';
[0083]event—el—user [256] = ' \0f ;
[0084]event—el—domain [256] = ' \0f ;
[0085]final—out—msg
[1023] = ' \0f ;
[0086]el—sstring[56] = NULL ;
[0087]/^Reading the event log*/
[0088]while(ReadEventLog(el_>h,
[0089]EVENTL0G—FORWARDS—READ|EVENTL0G—SEQUENT IAL—READ, 0,
[0090]el_>er,BUFFER—SIZE-1,&read,&needed))
[0091]{
[0092]while (read>0)
[0093]{
[0094]/氺We need to initialize every variable before the loop氺/
[0095]//得到事件的类型
[0096]event_category = el—GetCategory(el_>er_>EventType);
[0097]//得到事件来源
[0098]event—sourcename = (LPSTR)((LPBYTE)el->er+sizeof(EVENTL0GREC0RD));
[0099]//得到计算机名
[0100]event_computername = event_sourcename + strlen (event_sourcename)+1 ;
[0101]//给描述信息初始化
[0102]event_descriptive_msg = NULL ;
[0103]/* 初始化 domain/user 尺寸 */
[0104]user—size = 255 ;domain—size = 255 ;
[0105]event—el—domain [0] =
linux虚拟机怎么看var文件,一种获取Linux虚拟机内部日志的方法相关推荐
- 使用SSH完成linux和windows之间的文件互传(linux端)
使用SSH完成linux和windows之间的文件互传(linux端) 参考链接 通过OpenSSH完成linux和Win10文件互传 最近项目需求,需要linux和windows端进行文件互传,lo ...
- 三种获取Class类型的实例的方法
通过Object类中的getClass()方法: 通过静态方法Class.forName("全类名"): 通过类字面常量Class.class. 三种获取Class类型的实例的方法 ...
- linux下怎么看影子文件,IT外包桌面解决方案--Linux怎么查找影子文件并进入?
与众不同的服务是因为有心 所有艾锑人可能都知道艾锑无限为客户提供三种与客户接触的方式,一种是产品,一种是技术,还有一种是服务,那这三种所谓的方式构建起一个三角形,这种稳固的体系,看起来还不错,但我们细 ...
- linux查找文件限制时间,Linux查找命令find与文件三种时间
Linux中查找命令如下: Which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. Find 实际搜寻硬盘查询文件名称. 其中find的功能很强大 ...
- linux中rm删除的文件是否可以恢复,Linux下用rm删除的文件的恢复方法
Linux下用rm删除的文件的恢复方法_Linux教程_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2008-08/14744.htm lin ...
- linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件
对于新手而言,在 Linux 中使用命令行可能会非常不方便.没有图形界面,很难在不同文件夹间浏览,找到需要的文件.本篇教程中,我会展示如何在 Linux 中查找特定的文件. 第一步要做的是find 命 ...
- linux系统pkl,(网摘)Linux新手必看:浅谈如何学习linux
地址:http://www.eimhe.com/bbs/viewthread.php?tid=53256&extra=page=1> Linux新手必看:浅谈如何教习linux 一.起步 ...
- linux查找最近访问的文件,教您在Linux系统中查找最近修改的文件/文件夹
如果您使用Linux系统进行日常操作,则主目录文件将随时间急剧增加.如果您有成千上万个文件,很可能不记得最近更改的文件名,本文将教您在Linux系统中查找最近修改的文件/文件夹.另外,如果要检查出于任 ...
- linux shell 域名 ip,Shell脚本一种检查Linux中域名和IP地址所有权信息、检查多个域名的到期日期工具...
Shell脚本一种检查Linux中域名和IP地址所有权信息.检查多个域名的到期日期工具 jwhois是一个命令行实用程序,可从whois服务器(whois数据库)中获取有关域名所有权的信息. Whoi ...
最新文章
- LeetCode 1027. Longest Arithmetic Sequence--笔试题--C++解法
- linux启动spark命令,在linux上安装spark
- 日期格式化的“疑难杂症”
- Saas与传统软件对比
- java golang速度_golang思考之运行速度
- display:table-cell自适应布局下连续单词字符换行
- 利用Packer自定义镜像创建容器集群
- 支付宝一键清除首页各种广告
- 10.C++-构造函数初始化列表、类const成员、对象构造顺序、析构函数
- db2嵌套查询效率_详解oracle嵌套循环及实例说明
- java 程序在Eclipse 或者 Linux 运行报 Unsupported major.minor version 51.0解决办法
- POCO c++ 使用例子
- Conda更新失败:SSL错误:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败
- python数据分析社区_python之数据分析
- 2022年全球市场重疾险总体规模、主要企业、主要地区、产品和应用细分研究报告
- 感恩节 今天,留一天时间感谢自己
- CentOS中安装lsb_release及使用
- 起枪还是ECO ? CSGO什么时候起长枪 CSGO超实用教学
- 【信号与系统学习笔记 3】—— 系统,以及系统的性质以及判断方法解析
- 你的Windows 版本即将终止服务。请单击以下下载更新版本的Windows10以继续获得支持
热门文章
- C++11 右值引用、移动语义、完美转发、万能引用
- Linux查找命令find、loacte、whereis、which、type梳理
- CTF web题 wp:
- winpe制作u盘启动盘_怎么制作u盘启动盘 u盘启动盘制作方法【介绍】
- python的常见矩阵除法_Numpy矩阵除法返回所有零
- python语句print(type([1、2、3、4))_Python 学习第一天
- c 调用java程序_C ++可以调用Java代码吗?
- python判断正确错误_python错误和异常
- ERROR: Cannot uninstall ‘PyYAML‘. 安装 fvcore
- Problem G: 函数---判断日期(年月日)是否合法