1. 程式人生 > >saltstack-把執行結果存儲到mysql服務內

saltstack-把執行結果存儲到mysql服務內

targe general 負責 character 收集 rgs art args brush

saltstack把執行的結果保存到mysql中,以便進行命令安全審計

  mysql負責存儲數據,mysql-python負責收集數據

  master需要安裝mysql和MySQL-python,minion端安裝MySQL-python

系統環境

 CentOS Linux release 7.4

   master 10.0.0.111

   minion 10.0.0.112

1、master 端操作:

參考網址:https://docs.saltstack.com/en/latest/ref/returners/all/salt.returners.mysql.html

參考博客:https://www.cnblogs.com/zzzhfo/p/5867771.html

  1.1、安裝mysql

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-server MySQL-python

#啟動mysql
systemctl start  mysqld.service
systemctl enable mysqld.service
systemctl status mysqld.service

#修改mysql密碼
[root@salt-server ~]# grep "password" /var/log/mysqld.log
技術分享圖片
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;

#修改完密碼後再依次輸入以下內容:
##########################################################
CREATE DATABASE  `salt`
  DEFAULT CHARACTER SET utf8
  DEFAULT COLLATE utf8_general_ci;
##########################################################
USE `salt`;
##########################################################
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;
############################################################
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;
############################################################
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;
#############################################################
grant all on salt.* to salt@‘%‘ identified by ‘123456‘;

#以下是上邊操作的截圖
技術分享圖片

  技術分享圖片

  技術分享圖片

  技術分享圖片

 

  1.2、測試mysql是否設置完成

技術分享圖片

  1.3、修改master主配置文件

[root@salt-server ~]# vim /etc/salt/minion
mysql.host: ‘10.0.0.111‘
mysql.user: ‘salt‘
mysql.pass: ‘123456‘
mysql.db: ‘salt‘
mysql.port: 3306

技術分享圖片

#重啟配置文件

systemctl restart salt-minion  

    

2、minion端修改內容如下:

yum -y install MySQL-python
[root@minion02 ~]# vim /etc/salt/minion
mysql.host: ‘10.0.0.111‘
mysql.user: ‘salt‘
mysql.pass: ‘123456‘
mysql.db: ‘salt‘
mysql.port: 3306

#重啟minion服務
systemctl restart salt-minion

  

總測試:

[root@salt-server ~]# salt ‘*‘ test.ping --return mysql
技術分享圖片

[root@salt-server ~]# salt ‘*‘ cmd.run ‘df -h‘ --return mysql

技術分享圖片



 在master的mysql服務查看:

[root@salt-server ~]# mysql -uroot -p
Enter password: 
mysql> use salt;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> mysql> select * from salt_returns\G;

技術分享圖片

方法2

master端安裝MySQL-python和mysql-server
minion端不需要安裝MySQL-python包

操作步驟略(與發一相同)

[root@salt-master /]# vim /etc/salt/master   追加如下內容
master_job_cache: mysql      #每次執行不加--return mysql由master端將返回的數據寫入數據庫 不需要minion

重啟服務
[root@salt-master /]# /etc/init.d/salt-master restart


測試:
[root@salt-master /]# salt ‘salt-minion‘ test.ping
salt-minion:
    True
[root@salt-master /]# salt ‘salt-minion‘ cmd.run ‘df -h‘ salt-minion: Filesystem Size Used Avail Use% Mounted on /dev/sda3 18G 935M 16G 6% / tmpfs 495M 12K 495M 1% /dev/shm /dev/sda1 194M 27M 158M 15% /boot
root@salt-master /]# mysql -u salt -p -h 192.168.161.131 Enter password: mysql> use salt; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select * from salt_returns; +-----------+----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+ | fun | jid | return | id | success | full_ret | alter_time | +-----------+----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+ | test.ping | 20160826200517605155 | true | salt-minion | 1 | {"fun_args": [], "jid": "20160826200517605155", "return": true, "retcode": 0, "success": true, "fun": "test.ping", "id": "salt-minion"} | 2016-08-26 20:05:17 | | test.ping | 20160826202029989457 | true | salt-minion | 1 | {"fun_args": [], "jid": "20160826202029989457", "return": true, "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2016-08-26T12:20:30.138166", "fun": "test.ping", "id": "salt-minion"} | 2016-08-26 20:20:30 | | cmd.run | 20160826202045948708 | "Filesystem Size Used Avail Use% Mounted on\n/dev/sda3 18G 935M 16G 6% /\ntmpfs 495M 12K 495M 1% /dev/shm\n/dev/sda1 194M 27M 158M 15% /boot" | salt-minion | 1 | {"fun_args": ["df -h"], "jid": "20160826202045948708", "return": "Filesystem Size Used Avail Use% Mounted on\n/dev/sda3 18G 935M 16G 6% /\ntmpfs 495M 12K 495M 1% /dev/shm\n/dev/sda1 194M 27M 158M 15% /boot", "retcode": 0, "success": true, "cmd": "_return", "_stamp": "2016-08-26T12:20:45.984974", "fun": "cmd.run", "id": "salt-minion"} | 2016-08-26 20:20:46 | +-----------+----------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+---------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------+ 3 rows in set (0.00 sec)

  

 

saltstack-把執行結果存儲到mysql服務內