美文网首页
记录一次在centos7.8.2003上搭建rsyslog日志服

记录一次在centos7.8.2003上搭建rsyslog日志服

作者: 梵雲魔羅 | 来源:发表于2020-05-13 19:31 被阅读0次

    使用两台虚拟机:

    虚拟机10.10.10.200以下简称:(S) 作为数据库服务器+日志服务器 系统使用 "CentOS Linux release 7.8.2003 (Core)"

    虚拟机10.10.10.206 以下简称:(C) 作为客服端 系统使用 "CentOS release 6.10 (Final)"


    前面按照标准配置在(S)上

    搭建Mysql服务器,

    安装rsyslog-mysql rpm包,导入/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql

    在数据库上建立日志库管理账号,并使用常规授权对上述脚本生成的库Syslog进行管理(由于是mysql8.0+的版本,这里已经掉入坑里)

    编辑/etc/rsyslog.conf

    ```

    #### MODULES ####

    # Provides UDP syslog reception

    $ModLoad imudp

    $UDPServerRun 514 (打开日志服务器监听端口)

    # Provides TCP syslog reception

    $ModLoad imtcp

    $InputTCPServerRun 514(打开日志服务器监听端口)

    $ModLoad ommysql (加载日志传输至mysql模块)

    #### RULES ####

    *.info;mail.none;authpriv.none;cron.none :ommysql:<Mysql服务器IP地址>,Syslog(由/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql生成),<日志库管理账户名>,<日志库管理账户密码>

    ```

    由于本人使用的(S) 既是数据库服务器又是日志服务器,所以此处设置之后本机的日志信息也存储至数据库中;

    配置完成之后重启rsyslog服务


    在(C) 上只需要在/etc/rsyslog.conf中设置

    ````

    #### RULES ####

    *.info;mail.none;authpriv.none;cron.none                  @<日志服务器IP地址>

    ````

    这里前面的@符号是必须要添加的,由于(S)开启了监听端口514,故此时(C) 所产生的日志会成功发送到(S)。

    建议关闭(S),(C)上的selinux及防火墙,以免不必要的困惑; 

    配置完成之后重启rsyslog服务


    此时问题出现了,不管是在(S)还是在(C),产生的事件都无法在日志库Syslog生成信息;排查了所有的配置及语法;最后在(S)上运行

    systemctl status rsyslog.service的时候发现如下代码:

    ````

    systemctl status rsyslog.service

    ● rsyslog.service - System Logging Service

      Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)

      Active: active (running) since Wed 2020-05-13 18:37:07 CST; 11s ago

        Docs: man:rsyslogd(8)

              http://www.rsyslog.com/doc/

    Main PID: 62844 (rsyslogd)

        Tasks: 9

      CGroup: /system.slice/rsyslog.service

              └─62844 /usr/sbin/rsyslogd -n

    May 13 18:37:07 mysql_cloudclouded systemd[1]: Starting System Logging Service...

    May 13 18:37:07 mysql_cloudclouded rsyslogd[62844]:  [origin software="rsyslogd" swVersion="8.24.0-52.el7" x-pid="62844" x-...start

    May 13 18:37:07 mysql_cloudclouded systemd[1]: Started System Logging Service.

    May 13 18:37:07 mysql_cloudclouded rsyslogd[62844]: db error (2059): Authentication plugin 'caching_sha2_password' cannot b....el7]

    May 13 18:37:07 mysql_cloudclouded rsyslogd[62844]: action 'action 0' suspended, next retry is Wed May 13 18:37:37 2020 [v8...007 ]

    Hint: Some lines were ellipsized, use -l to show in full.

    ````

    注意加粗部分,原来是日志库管理员账号的认证除了问题,在查阅了资料之后发现。

    可以看到MySQL8.0.+版本默认的认证方式是caching_sha2_password ,而在MySQL5.7版本则为mysql_native_password。

    个人猜测就是rsyslog或rsyslog-mysql不支持新的认证方法,导致了该错误。

    这里提供2种解决方法,本人使用的是第二种;

    1、修改/etc/my.conf配置文件将默认的认证方法改为老版本的

    [mysqld]

    default_authentication_plugin=mysql_native_password

    并且重新授权日志库管理员

    2、使用数据库root账号运行

    ALTER USER 日志库管理账号 IDENTIFIED WITH mysql_native_password BY 密码;

    至此,问题解决了,(S)能够正常存储(C)发送过来的日志信息,(S)本机的日志信息也能存储到Syslog库中;

    相关文章

      网友评论

          本文标题:记录一次在centos7.8.2003上搭建rsyslog日志服

          本文链接:https://www.haomeiwen.com/subject/atzkqxtx.html