当前位置 : 主页 > 操作系统 > centos >

解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)

来源:互联网 收集:自由互联 发布时间:2022-06-20
环境: ********************* Adiscon LogAnalyzer Version 3.4.3 [root@centos100 ~]# cat /etc/issue CentOS release 5.6 (Final) ********************* 看到标题,可能有些人会不屑,答案无非是新建view,建立DBMappings。我很

 环境:

*********************

 Adiscon LogAnalyzer Version 3.4.3

[root@centos100 ~]# cat /etc/issue

CentOS release 5.6 (Final)

*********************

看到标题,可能有些人会不屑,答案无非是新建view,建立DBMappings。我很负责任的告诉你,不是。我这里是修改PHP源码的方法,来实现的。费话不多说,直接开搞

最近在搞rsyslog+loganalyzer来实现集中型日志管理,但是在安装完之后,发现只显示了主机名,没有IP,网上找了一些文章参考,要么可以只显示IP,要么只显示主机名,还有就是两者同时显示需要添加view,我在添加view的时候,发现不能搞多个字段。于是乎想到了修改数据库,修改完数据库发现还是不对。

添加第一个字段还算正常

解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_日志管理系统

添加第二个字段的时候,我惊讶的发现,FUCK,这泥玛什么情况

解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_rsyslog_02

第一个字段为啥变成Array了呢?泥玛,叫雅咩碟也不管用啊。再继续添加,就一个一个的覆盖,我了个去。搞毛线?

本来是想修正这个BUG的,再怎么说咱也看了几天的PHP,以为以老夫的本事,能搞定。结果发现,实在是头大,学习的时候MVC没学好,直接修改view.php看来要流产。但也不能这么就放弃。结果就想修改它本身自带的view,发现以下

解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_rsyslog_03

 

黑呀,真黑呀。黑的就代表不让改。妹的,view.php的源码我看不懂也就不必了,难度这个也会一样的悲剧么?于是就找这个在哪里改,发现页面还是view.php,发现里面没有这些view,它本身又include了一堆的php,泥玛,看的蛋疼,越是蛋疼的时候越要蛋定。直接在linux下面使用grep找

  • [root@centos100 log]# grep 'Syslog Fields' ./ -r 
  • ./include/functions_config.php:                                                                 'DisplayName' =>"Syslog Fields", 
  • 找到后编译它

    解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_日志管理系统_04

    添加红色框里的内容。

    完了之后,发现还是不行,因为点到DBMappings里面的时候,发现根本就没这个字段,要以还要改一个文件来实现关连。

  • [root@centos100 log]# grep 'MonitorWare' ./ -r 
  • ./classes/msgparsers/msgparser.eventlog.class.php:      public $_ClassDescription = 'This is a parser for a special format which can be created with Adiscon Eventreporter or MonitorWare Agent.'
  • ./include/constants_logstream.php:$dbmapping['monitorware']['DisplayName'] = "MonitorWare"; 
  • ./include/functions_config.php:                         $mysource['ObjRef']->DBTableType = "monitorware"; // Convert to MonitorWare! 
  • ./include/constants_general.php:// --- MonitorWare InfoUnit Defines | Messagetypes 
  • ./doc/install.html:     MonitorWare Line of products.</P> 
  • ./doc/install.html:     MonitorWare Line of products.</P> 
  • ./doc/install.html:LogAnalyzer supports Adiscon's MonitorWare database schema. The schema 
  • ./doc/manual.html:<a href="http://www.mwagent.com">MonitorWare Agent</a>
  • ./doc/windowsevent.html:<a href="http://www.mwagent.com">MonitorWare Agent</a> software. These Agents are 
  • ./doc/basics.html:For the database, tabels in either MonitorWare format or the format used by 
  • ./doc/basics.html:you set up something new, be sure the use MonitorWare schema. If you use 
  • ./doc/basics.html:that rsyslog uses MonitorWare schema by default, too. So you probably need not to 
  • ./doc/basics.html:<a href="http://www.msagent.com/">MonitorWare Agent</a> 
  • ./doc/basics.html:<a href="http://kb.monitorware.com">MonitorWare Knowledge Base</a> to aid you 
  • 结果就一个一个的看,一个一个的找,html的肯定不是,结果就被我找到了./include/constants_logstream.php

    进去就发现,又是一个数组,结果新增一个即可

    解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_rsyslog_05

     

    添加352行的内容。

    解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_loganalyzer_06

     发现IP和主机名都有显示了。

    当然了,做以上操作之前,肯定在要数据库里插入这个字段,这样才能显示得出来。

  • mysql> USE Syslog; 
  • mysql> ALTER TABLE SystemEvents ADD FromIP VARCHAR(60) DEFAULT NULL AFTER FromHost; 
  •  修改日志的配置文件

  • # vi /etc/rsyslog.conf 
  • $template insertpl,"insert into SystemEvents (Message, Facility, FromHost, FromIP,Priority, DeviceReportedTime, ReceivedAt, InfoUnitID, SysLogTag) values ('%msg%', %syslogfacility%,'%HOSTNAME%', '%fromhost-ip%', %syslogpriority%, '%timereported:::date-mysql%', '%timegenerated:::date-mysql%', %iut%, '%syslogtag%')",SQL 
  • 改完以上之后,还要添加FromIP到现有的字段里面

    解决rsyslog+loganalyzer不能同时显示IP和主机名(原创)_linux rsyslog_07

     

    完成后不要忘记重启rsyslog的服务

     

     说明:

    Adiscon LogAnalyzer Version 3.6.3已经修复添加view的时候,不能添加多个字段的BUG,本人新测可用。

    3.6.3如果想同时显示IP和主机名,要把修改的不太一样。 

     

     

    上一篇:linux网络配置命令之ifconfig、ip和route
    下一篇:没有了
    网友评论