每台minion跟存储服务器连接后发送返回数据。在大规模的Minion环境下并不适合企业级应用。也有网友通过event事件实现Master端直接Return到存储服务器。参考地址为:http://pengyao.org/salt-stack_master_retuner_over_event_system.html

使用redis 存储
修改minion的/etc/salt/minion配置文件
redis.db: '0'                    #redis数据库
redis.host: 'vps.shencan.net'    #redis主机(ip地址和域名都行)
redis.port: 6379                 #redis端口
minion按照redis客户端  pip install redis
python -c 'import redis; print redis.VERSION'
salt 'Minion' cmd.run 'hostname' --return redis

mysql存储
/usr/lib/python2.6/site-packages/salt/returners/
具体的配置   cat mysql.py
vim /etc/salt/minion(冒号后有空格)
mysql.host:  '10.255.254.221'
mysql.user:  'salt'
mysql.pass:  '123'
mysql.db:  'salt'
mysql.port:  3306

在10.255.254.221这台mysql服务器上
启动mysql服务
设置mysql用户,salt,密码,123
GRANT ALL PRIVILEGES ON *.* TO 'salt'@'%' IDENTIFIED BY ‘123’;

把以下sql语句保存到/tmp/salt.sql文件中,执行mysql -u root < /tmp/salt.sql
(创建一个salt库,然后在salt库里面创建两个表jids,salt_returns)
GRANT ALL PRIVILEGES ON *.* TO 'salt'@'%' IDENTIFIED BY ‘123’;

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;

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` varchar(1024) 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;

保证你的python能够操作mysql数据库
yum install MySQL-python -y

使用mysql作为returner,将结果放入mysql
[root@node1 ~]# salt 'node2' test.ping --return mysql
node2:
    True
----------------------------------------------------------------
可以通过salt的schedule去收集minion上的信息。
schedule:
  uptime:
    function: status.uptime
    seconds: 60
    returner: mysql
  meminfo:
    function: status.meminfo
    minutes: 5
    returner: mysql

results matching ""

    No results matching ""