sequoiasql-mysql 部署审计插件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sequoiasql-mysql 部署审计插件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4424字,纯文字阅读大概需要7分钟。
内容图文
本部署动作,均是在sdbadmin 用户下执行
增加审计功能
首先拷贝审计的 plugin 插件
cp /opt/sequoiasql/mysql/tools/lib/server_audit.so /opt/sequoiasql/mysql/lib/plugin/
获取当前的环境信息
获取当前机器的 sequoiasql-mysql 实例,并且确定其具体路径,例如
> sdb_sql_ctl listinst
NAME SQLDATA SQLLOG
my1 /data/ssd/sdb/mysql/inst/3309 /opt/sequoiasql/mysql/my1.log
这台服务器的sequoiasql-mysql 实例的具体路径就是 /data/ssd/sdb/mysql/inst/3309,对应这个实例的配置文件为 /data/ssd/sdb/mysql/inst/3309/auto.cnf。
Note:
my1 是作者当前服务器的sequoiasql-mysql 实例的名字,大家记住这个名字,后续启动、停止、重启都需要使用到这个 my1 名字
为sequoiasql-mysql 配置审计日志
在实例的数据目录下增加一个保存审计日志的目录
mkdir -p /opt/sequoiasql/mysql/database/auditlog/
打开 auto.cnf 配置文件,在 [mysqld] 参数下增加以下内容
# 加载审计插件
plugin-load=server_audit=server_audit.so
# 审计记录的审计,建议只记录需要同步的DCL和DDL操作
server_audit_events=CONNECT,QUERY_DDL,QUERY_DCL
# 开启审计
server_audit_logging=ON
# 审计日志路径及文件名
server_audit_file_path=/opt/sequoiasql/mysql/database/auditlog/server_audit.log
# 强制切分审计日志文件
server_audit_file_rotate_now=OFF
# 审计日志文件大小10MB,超过该大小进行切割,单位为byte
server_audit_file_rotate_size=10485760
# 审计日志保留个数,超过后会丢弃最旧的
server_audit_file_rotations=999
# 输出类型为文件
server_audit_output_type=file
# 限制每行查询日志的大小为100kb,若表比较复杂,对应的操作语句比较长,建议增大该值
server_audit_query_log_limit=102400
重启 sequoiasql-mysql 实例
sdb_sql_ctl restart my1
检查 /opt/sequoiasql/mysql/database/auditlog/ 路径是否生成了新的审计日志。如果没有生成 server_audit.log 审计日志,大家自己仔细梳理前面步骤。
配置解析审计日志及同步程序
本解析审计日志及同步程序,由Python 语言编写,兼容 Python 2.* 版本,暂时不支持Python 3.* 版本。
切换到工具所在路径 /opt/sequoiasql/mysql/tools/metaSync
cd /opt/sequoiasql/mysql/tools/metaSync
拷贝一个配置文件
cp config.sample config
修改config 配置文件里面的内容
[mysql]
# mysql节点主机名,只能填主机名
hosts = sdb1,sdb2,sdb3
# mysql服务端口
port = 3306
# 密码类型,0代表密码为明文,1代表密码为密文,初次使用配置为 0,密码使用明文,工具启动后会自动加密并更新此处配置
mysql_password_type = 0
# mysql用户
mysql_user = root
# mysql密码
mysql_password = mysql
# mysql安装目录
install_dir = /opt/sequoiasql/mysql
# 审计日志存储目录
audit_log_directory = /opt/sequoiasql/mysql/database/auditlog
# 审计日志文件名
audit_log_file_name = server_audit.log
[execute]
# 同步间隔,取值范围:[1-3600]
interval_time = 2
# 出错时是否忽略,如为 false,会一直重试
ignore_error = true
# 出错的情况下,忽略前的重试次数,取值范围:[1-1000]
max_retry_times = 5
直接拷贝程序 log 输出配置文件
cp log.config.sample log.config
启动程序
/usr/bin/python /opt/sequoiasql/mysql/tools/metaSync/meta_sync.py >/dev/null 2>&1 &
为系统设置一个周期性定时执行的任务,以防止程序宕机,或者服务器重启后审计日志解析及同步程序无法自动启动。
crontab -e
在里面增加以下内容
*/1 * * * * /usr/bin/python /opt/sequoiasql/mysql/tools/metaSync/meta_sync.py >/dev/null 2>&1 &
重置 metaSync 同步程序
如果因为一些特殊原因,例如通过连接 Keepalived + Nginx 虚拟IP 地址,然后再建表,会导致 metaSync 程序无法正常同步,并且会造成 metaSync 程序一直处于 ERROR 状态。
此时就需要对 metaSync 程序进行重置。
重置方式如下
1 暂时关闭系统的 crontab 定时任务
直接执行 crontab -e 命令,然后把启动 metaSync 程序的命令删除即可。
2 暂停 metaSync 程序
快速删除 metaSync 进程,可以使用以下命令
ps -ef | grep python | grep meta_sync.py | awk -F ' ' '{print $2}' | xargs kill -15
3 停止各个服务器上的 MySQL 实例,例如
sdb_sql_ctl stop my1
4 删除各个服务器上的 MySQL 实例上的审计日志,例如
rm -rf /opt/sequoiasql/mysql/database/auditlog/server_audit.log
5 删除各个服务器上的 metaSync 程序的状态文件,例如
rm -rf /opt/sequoiasql/mysql/tools/metaSync/sync.stat
6 删除metaSync 原来的运行日志
rm -rf /opt/sequoiasql/mysql/tools/metaSync/logs/run.log
7 以上步骤全部执行完毕后,就可以重新启动MySQL 实例,重启metaSync 程序。大家千万别忘记了设置 crontab -e 定时任务。
更多的详细信息,可以参考 /opt/sequoiasql/mysql/tools/metaSync/README.md 介绍文件。
sequoiasql-mysql 部署审计插件
标签:shel port 出错 plugin direct 密文 定时任务 red mit
本文系统来源:https://www.cnblogs.com/chenfool/p/sequoiasqlmysql-bu-shu-shen-ji-cha-jian.html
内容总结
以上是互联网集市为您收集整理的sequoiasql-mysql 部署审计插件全部内容,希望文章能够帮你解决sequoiasql-mysql 部署审计插件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。