美文网首页
记录一次在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