ubuntu16.04下搭建rsyslog+mysql+loganalyzer日志服务器

时间:2024-03-22 22:48:41

笔者因毕设要求,从零开始搭rsyslog+mysql+loganalyzer日志服务器,本人不才,耗时两天才搭成功,中间走了不少弯路,网上已有的教程大多是CentOs下搭建的,在Ubuntu16.04下还是有些许不同,现在记录下搭建过程,相当于做个笔记。

(搭建环境:ubuntu16.04,rsyslog,mysql, php5.6(ubuntu自带的源是php7.0,下文会说),apache2,loganalyzer-3.6.5,由于身边暂时没有多余机器,先只搭建服务器,客户机随后再补充)

1.第一步:配置服务器rsyslog

   安装rsyslog: sudo apt-get install rsyslog //不过一般Linux发行版本都会默认安装

   打开其配置文件:sudo vim /etc/rsyslog.conf //没有vim的可以用别的编辑器,也可以通过apt-get下载

   ubuntu16.04下搭建rsyslog+mysql+loganalyzer日志服务器  去掉下面行的注释#,如下

   module(load="imudp")

   input(type="imudp" port="514")//udp

   module(load="imtcp")

   input(type="imtcp" port="514")//tcp

 并加上:(本身有的就不加)

$ActionFileDefaultTemplateRSYSLOG_TraditionalFileFormat

$IncludeConfig /etc/rsyslog.d/*.conf

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

authpriv.*                                             /var/log/secure

mail.*                                                 -/var/log/maillog

cron.*                                                 /var/log/cron

*.emerg                                                 *

uucp,news.crit                                         /var/log/spooler

local7.*                                               /var/log/boot.log

$templateSpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag% %syslogseverity-text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

:programname, startswith,"spice-vdagent"  /var/log/spice-vdagent.log;SpiceTmpl

重启rsyslog服务:sudo /etc/init.d/rsyslog restart

测试端口是否打开:sudo netstat -nultp|grep 514 //正常会出现如下画面

ubuntu16.04下搭建rsyslog+mysql+loganalyzer日志服务器


2.mysql

 思路: 

1、安装mysql服务器,且要安装rsyslog连接mysql的驱动

2、解决生成rsyslog服务器的日志特定的格式,

3、在rsyslog配置文件中加载连接mysql的模块,把日志存储到mysql中

 具体步骤:sudo apt-get install mysql-server

                 sudo apt-get install mysql-client

                 sudo apt-get install libmysqlclient-dev

                测试mysql是否安装成功 :sudo netstat -tap|grep mysql,成功画面入下

ubuntu16.04下搭建rsyslog+mysql+loganalyzer日志服务器

安装驱动:sudo apt-get install rsyslog-mysql

重启rsyslog: sudo /etc/init.d/rsyslog restart

设置mysql密码: sudo mysqladmin -u root password 123456 //用户名为root,密码123456

进入mysql:  sudo mysql -u root -p 123456

mysql> show databases; 会显示已有的数据库,我的自动建了一个Syslog数据库,用来记录日志文件

mysql> use Syslog;  #Syslog即是记录日志文件的数据库

ubuntu16.04下搭建rsyslog+mysql+loganalyzer日志服务器

如图所示

mysql> grant all on Syslog.* to 'syslogroot01'@'localhost' identified by '123456';  #设置用户访问数据库服务器中Syslog数据库的用户名和密码,主机localhost(我这里没别的机器,只拿本地主机做测试,若有客户机则可以把它localhost换成主机ip地址)上的用户syslogroot01,密码为123456

mysql> flush privileges;  #重读授权表,及时生效

mysql>exit; //离开mysql服务

再sudo vim /etc/ryslog.conf打开rsyslog配置文件

添加 module(load="onmysql")

添加  *.*      :ommysql:localhost,Syslog,syslogroot01,123456 //添加这行表示把所有的设施的所有日志都记录到数据库服务器中的Syslog数据库中,以syslogroot01为用户,123456密码访问数据库

重启rsyslog:sudo service rsyslog restart

(ps:如果有其他的客户机,把日志传输到日志服务器主机上,在客户机的rsyslog.conf里添加(若已有的就不加)

 *.*      @xxx.xxx.xxx.xxx #添加这行用于和服务器通信xxx.xxx.xxx.xxx是服务器主机的ip

 *.*      :ommysql:xxx.xxx.xxx.xxx,Syslog,syslogroot01,123456 #添加这行,这行表示把所有的设施的所有日志都记录到数据库 服务器中的Syslog数据库中,以syslogroot01用户,123456密码访问数据库

 $templateSpiceTmpl,"%TIMESTAMP%.%TIMESTAMP:::date-subseconds% %syslogtag%%syslogseverity- text%:%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"

 :programname, startswith, "spice-vdagent"   /var/log/spice-vdagent.log;SpiceTmpl)

记得每次修改配置文件之后都重启下sudo service rsyslog restart