一、日志服务器 Kiwi-Syslog-Server-9.5.0
1、日志服务器的设置
1.1 设置日志保存路径、日志文件名称格式、周转设置

1.2 设置日志服务器监听端口(采用默认设置)

2、日志收集
网络保障:产生日志的设备到日志服务器的监听端口是通的。
1.1 网络设备
cisco:

华为:


天清汉马:


1.2 操作系统
Linux:
(1)在/etc/syslog.conf或rsyslog.conf文件中增加 *.* @remote-loghost-ip。日志来源和等级可自定。

(2)重启syslogd或rsyslog服务使syslog.conf文件的更改生效。

Windows: 使用evtsys程序




1.3 日志乱码

wireshark抓包发现:

这是什么格式?
网上一查,有人问道:

------------------------
再找啊找,发现了所谓的url解码与编码。
上图红线部分的源内容是:尝试登录的用户
下面对这7个字进行Url编码:

选中utf-8,然后按”UrlEncode编码“按键,汉字转换成了%x%x%x的型式。结果如下:

把上图中的%x%x%x...中的x转换成8进制后,恰好 对应了包中的数据:
\345\260\235\350\257\225\347\231\273\345\275\225\347\232\204\347\224\250\346\210\267
utf-8,什么鬼??不懂!!!
紧接着,看到了各种编码的区别
2、unicode,ansi,utf-8,unicode big endian编码的区别
竟然说到notepad记事本中输入联通二个字,然后保存再打开,竟然不见了!好神奇啊
按如下设置了没用。请高手帮忙!
将默认的Data encoding从System改为UTF-8

二、自制日志服务器 Hd-Syslog-Server
算了,自己弄一个吧,用C#写个console
1.1 下载:Hd-Syslog-Server




1.2 将程序注册为服务,让其开机后自动运行
(1)支持软件
(2)操作步骤:
1、用instsrv.exe安装srvany.exe
将instsrv.exe和srvany.exe拷贝到"C:\WINDOWS\system32"目录下(如果是64bit系统,则将其拷贝到C:\WINDOWS\SysWOW64),用instsrv.exe安装srvany.exe,进入dos界面:
C:\Documents and Settings\administrator>C:\WINDOWS\SysWOW64\instsrv.exe MyService C:\WINDOWS\SysWOW64\srvany.exe
注:Myservice是自定义的服务的名称,可以根据应用程序名称任意更改。
2、对srvany.exe进行配置
点击"开始-运行-regedit"打开注册列表,定位到以下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
MyService是你安装srvany.exe时定义的名称。
一般情况下该服务名下没有Parameters项目,需要手动建立:对服务名称项目右击新建项,名称为
Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。
名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。
名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
(3)操作:



准备启动服务,可失败了。为啥?

install.bat内容如下:
@echo off
cd /d %~dp0
call run-install.bat "Hd Syslog Server" Hd-Syslog-Server.exe
pause
run-install.bat内容如下:
@echo off
rem 参数依次为 服务名称 可执行文件名称 @echo 服务名称:%1 @echo 程序名称:%2
rem 定义需要运行的程序路径 set curExe=%~dp0%2 rem 定义注册表路径 set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters\ rem 定义srvany.exe文件路径 set sourcePath=%~dp0srvany.exe
rem 进入当前目录 cd /d "%~dp0" rem 安装引导服务 instsrv %1 "%sourcePath%" @echo 服务添加完成
rem 添加注册表语法: reg add 注册表路径 /v 项名称 /t 值类型 /d 数据 /f 表示强行修改不提示
rem 名称 Application 值为你要作为服务运行的程序地址 /d对应的参数有斜杠不是为了转义引号,而是路径还有斜杠,默认将引号转义了,额外添加斜杠是为了保留引号 reg add %regpath% /v AppDirectory /t REG_SZ /d "%~dp0\" /f
rem 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径 reg add %regpath% /v Application /t REG_SZ /d "%curExe%" /f
rem 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数 reg add %regpath% /v AppParameters /t REG_SZ /f @echo 注册表添加完成
-----------------------------------
仔细到网上找了下关于srvany和instsrv的东东。
使用srvany.exe将任何程序作为Windows服务运行
srvany.exe是什么?
srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行。也就是说srvany只是其注册程序的服务外壳,这个特性对于我们来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等。
如何获取?
你可以通过下载并安装Microsoft Windows Resource Kits获得或者可以通过我分享的下载地址1(国内线路)、下载地址2(国外线路)得到。
如何使用?
当你获取到srvany后并决定将某程序作为服务启动后,请先将srvany安装为系统服务,具体的安装方法有很多,比如说可以通过Microsoft Windows Resource Kits中另外一个实用的小工具instsrv.exe进行安装(下载地址),将srvany.exe和instsrv.exe拷贝到C:\Windows\System32\后,我们可以通过下面的命令行进行srvany.exe的服务安装:
instsrv ServiceName C:\Windows\System32\srvany.exe
ServiceName即你自己定义的服务名称,可以是要作为系统服务启动的应用程序的名称。
安装完毕后,我们需要对srvany.exe进行配置,以便于能够加载我们指定的程序,配置的方法是,开始 – 运行 – regedit,打开注册表,定位到下面的路径。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
同样的ServiceName是你刚才安装服务时自定义的服务名称。
如果该服务名下没有Parameters项目,则对服务名称项目右击新建项,名称为Parameters,然后定位到Parameters项,新建以下几个字符串值。
名称 Application 值为你要作为服务运行的程序地址。 名称 AppDirectory 值为你要作为服务运行的程序所在文件夹路径。 名称 AppParameters 值为你要作为服务运行的程序启动所需要的参数。
上文来自:http://wangye.org/blog/archives/42/
看完后,我决定打开regedit看一下。发现:

服务名是对的,可是该服务名下没有Parameters项目!!!!
再看一下作者的bat,发现错在红箭头处:

算了算了,bat知识以后再研究,当务之急是把服务化做好。决定试一下上文作者做的软件。哈哈,程序转服务看起来相当简单啊。
工具与介绍:http://wangye.org/blog/archives/644/
可是,问题又来了,即使弄好了,可是怎么让用户输入参数呢?界面怎么弄出来???看了下网上说,要把服务->属性->登录中的"允许服务与桌面交互"勾上。可是然并卵。
于是,干脆弄个配置文件,从配置文件中读吧。



效果如下:


测试监听ip是127.0.0.1没问题。于是我部署到正式机器上。可竟然没看到日志文件。???? 纳尼?
看了下作者说srvany.exe这东西最好放在系统文件夹下。于是我把这东西从作者软件安装目录中移入WINDOWS\SysWOW64中。再试一下重启服务。
又报了个错误:
再看一下此服务->属性->常规中的可执行文件路径,srvany这东西竟然要求在system32目录中有。于是我赶紧放一个到system32目录。
再启服务,一切,终于正常!


浙公网安备 33010602011771号