操作系统日志配置方法文档格式.docx
- 文档编号:21863641
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:15
- 大小:25.32KB
操作系统日志配置方法文档格式.docx
《操作系统日志配置方法文档格式.docx》由会员分享,可在线阅读,更多相关《操作系统日志配置方法文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
Syslog<
/ACTION>
ACTIONPARAM>
PARAM>
采集机IP<
/PARAM>
514<
local0<
/ACTIONPARAM>
/SYSTEM>
重新启动事件收集程序即可。
网络设备日志配置方法
Cisco交换机、路由器
device#conft
device(config)#loggingon
device(config)#logging采集机IP地址//采集机IP地址
device(config)#loggingtraperr//日志记录级别,可用"
?
"
查看详细内容
device(config)#servicetimestampslogdatetimelocaltime//日志记录时间戳设置检验
device#shlogging
华为交换机、路由器
device#info-centerenable
device#info-centerloghost采集机IP地址//采集机IP地址
安全设备日志和SNMP配置方法
CiscoPIX防火墙
Syslog配置方法
1.device#conft
2.device(config)#loggingon
3.device(config)#logginghost采集机Ip地址//采集机IP地址
4.device(config)#loggingtrapnotif//设置日志级别
5.device#shlogging//检验设置
6.Device#writememory//保存配置
SNMP配置方法
2.device(config)#snmp-serverhost采集机IP地址communityisone
3.device(config)#snmp-serverhost采集机IP地址
4.device#shlogging
5.writememory
注:
isone为communityname请根据实际情况填写
Netscreen防火墙
1.setsyslogconfig采集机IP地址local4local4//采集机IP地址
2.setsyslogenable
3.setsyslogtraffic(此命令可能没有)
4.setlogmodulesystemlevelnotifdestinationsyslog
5.save
1.Setsnmpcommunityisone采集机IP地址
2.Setsnmpcommunityisoneread-onlyverv1
3.Setsnmphostisone采集机IP地址255.255.255.255
Huawei防火墙
1.info-centerenable
2.info-centerloghost采集机IP地址languageenglish
3.info-centersourcedefaultchannel2logleerrors
1.snmp-agentcommunityreadisone
2.snmp-agentcommunitywriteisone
3.snmp-agentsys-infoversionall
4.snmp-agenttarget-hosttrapaddressudp-domain采集机IP地址paramssecuritynameisone
isone为communityname请根据实际情况填写
附录资料:
不需要的可以自行删除
libxml2应用实例
Libxml2是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MITLicense的免费开源软件。
它除了支持c语言版以外,还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定,能在Windows、Linux、Solaris、MacOsX等平台上运行。
功能还是相当强大的,相信满足一般用户需求没有任何问题。
二、Libxml2安装:
一般如果在安装系统的时候选中了所有开发库和开发工具的话(FedoraCore系列下),应该不用安装,下面介绍一下手动安装:
1)从xmlsoft站点或ftp(ftp.xmlsoft.org)站点下载libxml压缩包(libxml2-xxxx.tar.gz)
2)对压缩包进行解压缩
tarxvzflibxml2-xxxx.tar.gz
3)进入解压缩后的文件夹中运行
./configure--prefix/home/user/myxml/xmlinst(此处为待安装的路径)或者直接使用./configure
make
makeinstall
4)
添加路径
exportPATH=/home/user/myxml/xmlinst/bin:
$PATH
说明:
为了结构清晰,最好将libxml2不安装在解压目录中。
安装完成后就可以使用简单的代码解析XML文件,包括本地和远程的文件,但是在编码上有一些问题。
Libxml默认只支持UTF-8的编码,无论输入输出都是UTF-8,所以如果你解析完一个XML得到的结果都是UTF-8的,如果需要输出GB2312或者其它编码,需要ICONV来做转码(生成UTF-8编码的文件也可以用它做),如果系统中没有安装iconv的话,需要安装libiconv。
1)下载libiconv压缩包(例如libiconv-1.11.tar.gz)
2)对压缩包进行解压缩
tarxvzflibiconv-1.11.tar.gz
3)进入解压缩后的文件夹中运行
./configure
三、关于XML:
在开始研究Libxml2库之前,先了解一下XML的相关基础。
XML是一种基于文本的格式,它可用来创建能够通过各种语言和平台访问的结构化数据。
它包括一系列类似HTML的标记,并以树型结构来对这些标记进行排列。
例如,可参见清单1中介绍的简单文档。
为了更清楚地显示XML的一般概念,下面是一个简化的XML文件。
清单1.一个简单的XML文件
xmlversion="
1.0"
encoding="
UTF-8"
>
files>
owner>
root<
/owner>
action>
delete<
/action>
ageunits="
days"
10<
/age>
/files>
清单1中的第一行是XML声明,它告诉负责处理XML的应用程序,即解析器,将要处理的XML的版本。
大部分的文件使用版本1.0编写,但也有少量的版本1.1的文件。
它还定义了所使用的编码。
大部分文件使用UTF-8,但是,XML设计用来集成各种语言中的数据,包括那些不使用英语字母的语言。
接下来出现的是元素。
一个元素以开始标记开始(如<
),并以结束标记结束(如<
),其中使用斜线(/)来区别于开始标记。
元素是Node的一种类型。
XML文档对象模型(DOM)定义了几种不同的Nodes类型,包括:
Elements(如files或者age)
Attributes(如units)
Text(如root或者10)
元素可以具有子节点。
例如,age元素有一个子元素,即文本节点10。
XML解析器可以利用这种父子结构来遍历文档,甚至修改文档的结构或内容。
LibXML2是这样的解析器中的其中一种,并且文中的示例应用程序正是使用这种结构来实现该目的。
对于各种不同的环境,有许多不同的解析器和库。
LibXML2是用于UNIX环境的解析器和库中最好的一种,并且经过扩展,它提供了对几种脚本语言的支持,如Perl和Python。
四、
Libxml2中的数据类型和函数
一个函数库中可能有几百种数据类型以及几千个函数,但是记住大师的话,90%的功能都是由30%的内容提供的。
对于libxml2,我认为搞懂以下的数据类型和函数就足够了。
1)
内部字符类型xmlChar
xmlChar是Libxml2中的字符类型,库中所有字符、字符串都是基于这个数据类型。
事实上它的定义是:
xmlstring.h
typedefunsignedcharxmlChar;
使用unsignedchar作为内部字符格式是考虑到它能很好适应UTF-8编码,而UTF-8编码正是libxml2的内部编码,其它格式的编码要转换为这个编码才能在libxml2中使用。
还经常可以看到使用xmlChar*作为字符串类型,很多函数会返回一个动态分配内存的xmlChar*变量,使用这样的函数时记得要手动删除内存。
2)
xmlChar相关函数
如同标准c中的char类型一样,xmlChar也有动态内存分配、字符串操作等相关函数。
例如xmlMalloc是动态分配内存的函数;
xmlFree是配套的释放内存函数;
xmlStrcmp是字符串比较函数等等。
基本上xmlChar字符串相关函数都在xmlstring.h中定义;
而动态内存分配函数在xmlmemory.h中定义。
3)
xmlChar*与其它类型之间的转换
另外要注意,因为总是要在xmlChar*和char*之间进行类型转换,所以定义了一个宏BAD_CAST,其定义如下:
#defineBAD_CAST(xmlChar*)
原则上来说,unsignedchar和char之间进行强制类型转换是没有问题的。
4)文档类型xmlDoc、指针xmlDocPtr
xmlDoc是一个struct,保存了一个xml的相关信息,例如文件名、文档类型、子节点等等;
xmlDocPtr等于xmlDoc*,它搞成这个样子总让人以为是智能指针,其实不是,要手动删除的。
xmlNewDoc函数创建一个新的文档指针。
xmlParseFile函数以默认方式读入一个UTF-8格式的文档,并返回文档指针。
xmlReadFile函数读入一个带有某种编码的xml文档,并返回文档指针;
细节见libxml2参考手册。
xmlFreeDoc释放文档指针。
特别注意,当你调用xmlFreeDoc时,该文档所有包含的节点内存都被释放,所以一般来说不需要手动调用xmlFreeNode或者xmlFreeNodeList来释放动态分配的节点内存,除非你把该节点从文档中移除了。
一般来说,一个文档中所有节点都应该动态分配,然后加入文档,最后调用xmlFreeDoc一次释放所有节点申请的动态内存,这也是为什么我们很少看见xmlNodeFree的原因。
xmlSaveFile将文档以默认方式存入一个文件。
xmlSaveFormatFileEnc可将文档以某种编码/格式存入一个文件中。
5)
节点类型xmlNode、指针xmlNodePtr
节点应该是xml中最重要的元素了,xmlNode代表了xml文档中的一个节点,实现为一个struct,内容很丰富:
tree.h
typedefstruct_xmlNodexmlNode;
typedefxmlNode*xmlNodePtr;
struct_xmlNode{
void
*_private;
/*applicationdata*/
xmlElementType
type;
/*typenumber,mustbesecond!
*/
constxmlChar
*name;
/*thenameofthenode,ortheentity*/
struct_xmlNode*children;
/*parent->
childslink*/
struct_xmlNode*last;
/*lastchildlink*/
struct_xmlNode*parent;
/*child->
parentlink*/
struct_xmlNode*next;
/*nextsiblinglink
*/
struct_xmlNode*prev;
/*previoussiblinglink
struct_xmlDoc
*doc;
/*thecontainingdocument*/
/*Endofcommonpart*/
xmlNs
*ns;
/*pointertotheassociatednamespace*/
xmlChar
*content;
/*thecontent*/
struct_xmlAttr*properties;
/*propertieslist*/
*nsDef;
/*namespacedefinitionsonthisnode*/
*psvi;
/*fortype/PSVIinformations*/
unsignedshort
line;
/*linenumber*/
extra;
/*extradataforXPath/XSLT*/
};
可以看到,节点之间是以链表和树两种方式同时组织起来的,next和prev指针可以组成链表,而parent和children可以组织为树。
同时还有以下重要元素:
●
节点中的文字内容:
content;
节点所属文档:
doc;
节点名字:
name;
节点的namespace:
ns;
节点属性列表:
properties;
Xml文档的操作其根本原理就是在节点之间移动、查询节点的各项信息,并进行增加、删除、修改的操作。
xmlDocSetRootElement函数可以将一个节点设置为某个文档的根节点,这是将文档与节点连接起来的重要手段,当有了根结点以后,所有子节点就可以依次连接上根节点,从而组织成为一个xml树。
6)
节点集合类型xmlNodeSet、指针xmlNodeSetPtr
节点集合代表一个由节点组成的变量,节点集合只作为Xpath的查询结果而出现(XPATH的介绍见后面),因此被定义在xpath.h中,其定义如下:
/*
*Anode-set(anunorderedcollectionofnodeswithoutduplicates).
typedefstruct_xmlNodeSetxmlNodeSet;
typedefxmlNodeSet*xmlNodeSetPtr;
struct_xmlNodeSet{
intnodeNr;
/*numberofnodesintheset*/
intnodeMax;
/*sizeofthearrayasallocated*/
xmlNodePtr*nodeTab;
/*arrayofnodesinnoparticularorder*/
/*@@with_nstocheckwethernamespacenodesshouldbelookedat@@*/
可以看出,节点集合有三个成员,分别是节点集合的节点数、最大可容纳的节点数,以及节点数组头指针。
对节点集合中各个节点的访问方式很简单,如下:
xmlNodeSetPtrnodeset=XPATH查询结果;
for(inti=0;
i<
nodeset->
nodeNr;
i++)
{
nodeset->
nodeTab[i];
}
注意,libxml2是一个c函数库,因此其函数和数据类型都使用c语言的方式来处理。
如果是c++,我想我宁愿用STL中的vector来表示一个节点集合更好,而且没有内存泄漏或者溢出的担忧。
五、使用Libxml2
项目中要实现一个管理XML文件的后台程序,需要对XML文件进行创建,解析,修改,查找等操作,下面介绍如何利用libxml2提供的库来实现上述功能。
1、创建XML文档:
我们使用xmlNewDoc()来创建XML文档,然后使用xmlNewNode(),xmlNewChild(),xmlNewProp(),xmlNewText()等函数向XML文件中添加节点及子节点,设置元素和属性,创建完毕后用xmlSaveFormatFileEnc()来保存XML文件到磁盘(该函数可以设置保存XML文件时的编码格式)。
示例1:
#include<
stdio.h>
libxml/parser.h>
libxml/tree.h>
intmain(intargc,char**argv)
{
xmlDocPtrdoc=NULL;
/*documentpointer*/
xmlNodePtrroot_node=NULL,node=NULL,node1=NULL;
/*nodepointers*/
//Createsanewdocument,anodeandsetitasarootnode
doc=xmlNewDoc(BAD_CAST"
);
root_node=xmlNewNode(NULL,BAD_CAST"
root"
xmlDocSetRootElement(doc,root_node);
//createsanewnode,whichis"
attached"
aschildnodeofroot_nodenode.
xmlNewChild(root_node,NULL,BAD_CAST"
node1"
BAD_CAST"
contentofnode1"
//xmlNewProp()createsattributes,whichis"
toannode.
node=xmlNewChild(root_node,NULL,BAD_CAST"
node3"
BAD_CAST"
nodehasattributes"
xmlNewProp(node,BAD_CAST"
attribute"
BAD_CAST"
yes"
//Heregoesanotherwaytocreatenodes.
node=xmlNewNode(NULL,BAD_CAST"
node4"
node1=xmlNewText(BAD_CAST"
otherwaytocreatecontent"
xmlAddChild(node,node1);
xmlAddChild(root_node,node);
//Dumpingdocumenttostdioorfile
xmlSaveFormatFileEnc(argc>
1?
argv[1]:
"
-"
doc,"
1);
/*freethedocument*/
xmlFreeDoc(doc);
xmlCleanupParser();
xmlMemoryDump();
//debugmemoryforregressiontests
return(0);
}
编译:
gcc
-oxmlCreator
xmlCreator.cpp
-I
/home/usr/libxml2/xmlinst/include/libxml2/
-L/home/usr/libxml2/xmlinst/lib/-lxml2
(绿色文字为libxml2安装路径)
-I后接头文件目录-L后接lib库目录
2、解析XML文档
解析文档时仅仅需要文件名并只调用一个函数,并有错误检查,常用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 日志 配置 方法