saltstack:将推送结果存储到mysql中

为进行命令安全审计,需将saltstack推送信息长期保存到mysql。介绍两种方法,方法一需在master安装数据库和mysql - python,minion安装mysql - python;方法二则所有操作在master进行,都要对用户授权、编辑配置文件,最后可在数据库查看存储信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

saltstack的每次推送信息都会在相应的minion中保存24小时,但是为了之后进行命令安全审计,我们需要将这些信息长期的保存起来,我么可以将信息保存到mysql中,这里会出现两个角色,mysql负责存储数据,mysql-python负责收集数据,我们在master中安装mysql与mysql-python,在所有的minion中安装mysql-python,这里介绍两种方法:

方法一

1、在master中安装数据库
yum install mysql-server -y
2、登陆数据库并对salt用户进行授权
grant all on salt. to salt@‘172.25.66.%’ identified by ‘Guodong+0306’*
在这里插入图片描述
3、在minion端(server2)安装MySQL-python
yum install MySQL-python -y
4、编辑minion的配置文件/etc/salt/minion

vim /etc/salt/minion
810 return:
811   - mysql
812   - hipchat
813   - slack
814 mysql.host: '172.25.66.1'
815 mysql.user: 'salt'
816 mysql.pass: 'Guodong+0306'
817 mysql.db: 'salt'
818 mysql.port: '3306'
819 

在这里插入图片描述
重启minion
5、在master的数据库中创建数据库与数据表,我们可以参考官方文档,复制相关内容到文件中,然后导入数据库即可。
https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

vim test.sql
CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;

USE `salt`;

--
-- Table structure for table `jids`
--

DROP TABLE IF EXISTS `jids`;
CREATE TABLE `jids` (
  `jid` varchar(255) NOT NULL,
  `load` mediumtext NOT NULL,
  UNIQUE KEY `jid` (`jid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- CREATE INDEX jid ON jids(jid) USING BTREE;

--
-- Table structure for table `salt_returns`
--

DROP TABLE IF EXISTS `salt_returns`;
CREATE TABLE `salt_returns` (
  `fun` varchar(50) NOT NULL,
  `jid` varchar(255) NOT NULL,
  `return` mediumtext NOT NULL,
  `id` varchar(255) NOT NULL,
  `success` varchar(10) NOT NULL,
  `full_ret` mediumtext NOT NULL,
  `alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  KEY `id` (`id`),
  KEY `jid` (`jid`),
  KEY `fun` (`fun`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Table structure for table `salt_events`
--

DROP TABLE IF EXISTS `salt_events`;
CREATE TABLE `salt_events` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`tag` varchar(255) NOT NULL,
`data` mediumtext NOT NULL,
`alter_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`master_id` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `tag` (`tag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

执行:mysql -uroot -pwestos < test.sql
在这里插入图片描述
6、向minion中推送命令,并将信息返回到数据库
salt ‘server2’ cmd.run ‘df -h’ --return mysql
在这里插入图片描述
7、在数据库中salt库的salt_returns表中查看存储的信息
在这里插入图片描述

方法二

这种方法所有的操作都在master中进行,这种方法需要在master中同时安装mysql与MySQL-python
1、在master中安装MySQL-python
yum install MySQL-python -y
2、在数据库中对本地用户进行授权,因为所有操作均在master中,因此只需要对localhost进行授权即可
grant all on salt. to salt@localhost identified by ‘Guodong+0306’*
在这里插入图片描述
3、编辑master的配置文件

vim /etc/salt/master
1057 #return: mysql
1058 master_job_cache: mysql
1059 mysql.host: '172.25.66.1'
1060 mysql.user: 'salt'
1061 mysql.pass: 'Guodong+0306'
1062 mysql.db: 'salt'
1063 mysql.port: 3306

重启master
4、使用salt对任意一个minion推送命令
salt ‘server3’ cmd.run 'df -h’
5、在数据库中进行查看
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值