rsyslog+loganalyzer+mysql的IP添加与中文乱码解决

因为看见许多朋友也都遇到过我这种情况,所以拿出来供大家参考下,我用的loganalyzer版本是Installed version: 3.6.5

这里先贴下效果图:

添加ip字段

1.php文件添加字段

vim ./include/constants_logstream.php +354 修改这个PHP文件

2.视图添加字段

3.数据库添加字段

修改/etc/rsyslog.conf 文件添加一下2行。

$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 
*.*     :ommysql:localhost,Syslog,logger,123456;insertpl

mysql> USE Syslog; 
mysql> ALTER TABLE SystemEvents ADD FromIP VARCHAR(60) DEFAULT NULL AFTER FromHost;
这里要注意看下database mapping 数据库对应映射关系。要是映射不对,IP列会显示不出来。

rsyslog配置有修改,所以完成要记得重启rsyslog服务。

到这里IP问题基本都可以解决了。rsyslog记录模板化IP字段--mysql写入字段--loganalyzer前端显示。

解决中文显示乱码的问题:

1.源码文件编码改为utf8

编辑网站里的include/functions_common.php文件,找到含有return htmlentities字段的行;
return htmlentities($myStr, ENT_NOQUOTES, $content[‘HeaderDefaultEncoding‘]);// "UTF-8");
修改为:
return htmlentities($myStr, ENT_NOQUOTES, $content[‘HeaderDefaultEncoding‘], "UTF-8");
注意小挂号有去除,分号改逗号。

2.视图首选项改为utf8

admin center -->preference-->global options only 设置默认字符为utf-8

3.查看mysql是否编码为utf8

mysql> status
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3771
Current database: syslog
--------------
mysql  Ver 14.14 Distrib 5.5.21, for Linux (x86_64) using  EditLine wrapper
Connection id:          3771
Current database:       syslog
Current user:           [email protected]
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ‘‘
Using delimiter:        ;
Server version:         5.5.21-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 1 hour 38 min 30 sec
Threads: 29  Questions: 257366  Slow queries: 3726  Opens: 669  Flush tables: 1  Open tables: 179  Queries per second avg: 43.547

但是这里的客户端字符为latin1,改为utf8后,查看systemevents发现插入的数据全是乱码。

Server version:         5.5.21-log Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

由此发现rsyslog插入mysql用的编码是latin1.

5.客户端插入和数据初始化为utf8 编码

于是在my.cnf里设置为

init_connect=‘SET NAMES utf8‘

强制连接用到编码为utf8重启mysql后解决了乱码的问题

时间: 2024-09-29 09:03:28

rsyslog+loganalyzer+mysql的IP添加与中文乱码解决的相关文章

CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取,所以LogAnalyzer不需要改变现有的记录架构.基于当前的日志数据,它可以处理syslog日志消息,Windows事件日志记录,支持故障排除,使用户能够快速查找日志数据中看出问题的解决方案. LogAnalyzer 获取客户端日志会有两种保存模式,一种是直接读取客户端/var/log/目录下的

搭建[ rsyslog+loganalyzer+mysql ] lamp组合型日志服务器

          ******************理论部分***************** 前言:   在数据为王的时代,日志管理是一个绕不开的话题,相应的开源软件有不少,比如热门的三件套:Logstash.ElasticSearch.Kibana,虽然功能强大,但是配置复杂.相比较而言,rsyslog更容易快速上手. Rsyslog:   rsyslog是一款自由软件,GPL(General Public License)的lincesed增强的syslogd.功能强大,有开源web

Centos6.5安装rsyslog+loganalyzer+mysql部署日志服务器

Centos6.5安装rsyslog+loganalyzer+mysql部署日志服务器 系统环境: [[email protected] ~]# uname -r 2.6.32-431.el6.x86_64 rsyslog版本:(Centos6.5系统自带的版本都是这个5.8.10) [[email protected] ~]# rsyslogd -v rsyslogd 5.8.10, compiled with: FEATURE_REGEXP: Yes FEATURE_LARGEFILE: N

navicat for mysql 显示中文乱码解决办法

navicat for mysql 显示中文乱码解决办法   最近遇到一个问题,用navicat for mysql 打开数据库时全都显示的是乱码(在用程序代码插入数据之前确保字符不是乱码),遇到问题就的寻求解决之道,百度了好长时间也没解决,网上那些解决办法都不 适合我的问题,网上的大多数解决方法是在navicat里右击一个连接,选择连接属性,切换到高级选项卡,去掉“使用mysql字符集”前的对勾,在编码 里选择utf-8,这种方法对于部分问题可能适合,但是我的乱码问题依然存在,于是乎我又将ut

MySQL客户端输出窗口显示中文乱码问题解决办法

转载:http://www.cnblogs.com/xdp-gacl/p/4008095.html 只为成功找方法,不为失败找借口! MySQL客户端输出窗口显示中文乱码问题解决办法 最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示: 上网查了一下原因:之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码 1 show variables like 'char%';

[转]mysql导入导出数据中文乱码解决方法小结

本文章总结了mysql导入导出数据中文乱码解决方法,出现中文乱码一般情况是导入导入时编码的设置问题,我们只要把编码调整一致即可解决此方法,下面是搜索到的一些方法总结,方便需要的朋友. linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 代码如下: mys

Linux下Tomcat向MySQL插入数据中文乱码解决办法

Linux下Tomcat向MySQL插入数据中文乱码解决办法 一.问题 在windows上面使用eclipse开发的项目在windows上面运行一切正常,部署到腾讯云时出现向MySQL数据库中插入数据是中文乱码 二.解决办法 1.尝试一直接在linux上面使用insert语句插入中文,正常2.尝试二在tomcat配置文件server.xml中加入useBodyEncodingForURI="true",不行3.尝试三在tomcat配置文件server.xml中再加入URIEncodin

PHP中文乱码解决办法

一.         首先是PHP网页的编码 1.     php文件本身的编码与网页的编码应匹配 a.     如果欲使用gb2312编码,那么php要输出头:header("Content-Type: text/html; charset=gb2312"),静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,所有文件的编码格式为ANS

【转】sublime text 2 中文乱码解决办法

sublime text 2是一款非常优秀的跨平台文本及源代码编辑器,本人非常喜欢,但是不支持GB2312和GBK编码在某些时候比较麻烦.可以通过向sublime text 中添加编码类型转换包(比如“ConvertToUTF8")来解决这一问题.具体方法如下: 首先声明:这一方法前提是sublime text 2的安装路径没有中文字符,且系统路径的%username%中不包含中文字符.否则需要手动添加转换包,这个稍后说明. 1. 安装Sublime Package Control: 在Subl