使用redis作为Return存储方式
Return组件可以理解为SaltStack系统对执行Minion返回后的数据进行存储或者返回给其他程序,它支持多种存储方式,比如MySQL、Redis、Memcache等,通过Return我们可以对SaltStack的每次操作进行记录,对以后日志审计提供了数据来源。
Return的流程:Return是在Master端触发任务,然后Minion接受处理任务后直接与Return存储器建立连接,然后把数据Return存到存储服务器,整个过程都是Minion端操作存储服务器。
接下来选择Redis作为Return结果的存储方式(Redis和master部署到了一起)
<1>在master端部署redis
[root@master ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
[root@master install]# tar xf redis-3.0.6.tar.gz
[root@master install]# cd redis-3.0.6
[root@master redis-3.0.6]# make
[root@master redis-3.0.6]# cd src/
[root@master src]# make install
[root@master src]# mkdir -p /usr/local/redis/bin/
[root@master src]# mkdir -p /usr/local/redis/etc
[root@master src]# mv ../redis.conf /usr/local/redis/etc/
[root@master src]# mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/
[root@master src]# vim /usr/local/redis/etc/redis.conf
daemonize yes //设置为后台方式运行
[root@master src]# cd /usr/local/redis/bin/
[root@master src]# ./redis-server /usr/local/redis/etc/redis.conf //启动redis
[root@master src]# netstat -anpt | grep redis
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 5802/./redis-server
tcp 0 0 :::6379 :::* LISTEN 5802/./redis-server
<1>在minion端部署redis客户端
[root@minion-1 install]# wget –no-check-certificate https://pypi.python.org/packages/source/r/redis/redis-2.8.0.tar.gz
[root@minion-1 install]# tar xf redis-2.8.0.tar.gz
[root@minion-1 install]# cd redis-2.8.0
[root@minion-1 redis-2.8.0]# python setup.py install
[root@minion-1 redis-2.8.0]# python -c 'import redis; print redis.VERSION' //确定安装没有问题
(2, 8, 0)
<3>修改minion端的配置文件,并重新启动服务
[root@minion-1 redis-2.8.0]# vim /etc/salt/minion
redis.db: '0'
redis.host: '192.168.200.101'
redis.port: 6379
[root@minion-1 redis-2.8.0]# service salt-minion restart
<4>在master端执行一个操作
[root@master ~]# salt 'minion-1' cmd.run 'hostname' --return redis
<5>查看redis的输出
[root@master ~]# redis-cli monitor
OK
1504161420.535733 [0 192.168.200.102:49207] "SELECT" "0"
1504161420.535990 [0 192.168.200.102:49207] "SET" "minion-1:20170831143700483708" "{\"fun_args\": [\"hostname\"], \"jid\": \"20170831143700483708\", \"return\": \"minion-1\", \"retcode\": 0, \"success\": true, \"fun\": \"cmd.run\", \"id\": \"minion-1\"}"
1504161420.536240 [0 192.168.200.102:49207] "LPUSH" "minion-1:cmd.run" "20170831143700483708"
1504161420.536545 [0 192.168.200.102:49207] "SADD" "minions" "minion-1"
1504161420.536704 [0 192.168.200.102:49207] "SADD" "jids" "20170831143700483708"
这就是本次小实验的内容,每台minion跟存储服务器连接后发送返回数据,所以说在有大规模的minion端的环境下不适合使用。
使用redis作为Return存储方式的更多相关文章
- Redis之数据存储结构
今天去中关村软件园面试,被问到:你做项目用到的Redis处理数据用的什么结构?顿时石化,”用到的结构,不就是key-value嘛,还有什么结构?“.面试官说:“平时除了工作,要加强学习,下面的面试我觉 ...
- Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式)
Redis入门 – Jedis存储Java对象 - (Java序列化为byte数组方式) 原文地址:http://alanland.iteye.com/admin/blogs/1600685(欢迎转载 ...
- Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程
待解决的问题 Spring session(redis存储方式)监听导致创建大量redisMessageListenerContailner-X线程 解决办法 为spring session添加spr ...
- 讨论两种Redis中Token的存储方式
摘要:本文讨论一个问题:存储token时,token与对应用户id谁来作为key? 问题起源问题起源于要给公司的后台管理系统添加权限管理,选用的是开源框架shiro,而原本系统上是采用token做了登 ...
- Redis与KV存储(RocksDB)融合之编码方式
Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Re ...
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
1.NOSQL简介 nosql的产生并不是要彻底的代替关系型数据库,而是作为传统关系型数据库的一个补充. Facebook和360使用Cassandra来存储海量社交数据 Twitter在其url抓取 ...
- C# redis 分布式session存储
https://github.com/uliian/SessionExtentionStore 一个基于Redis的Session存储扩展方案,解决ASP.NET中Session的局限性和跨应用程序使 ...
- 基于Redis+MySQL+MongoDB存储架构应用
摘 要: Redis+MySQL+MongoDB技术架构实现了本项目中大数据存储和实时云计算的需求.使用MongoDB切片的水平动态添加,可在不中断平台业务系统的同时保障扩容后的查询速度和云计算效能 ...
- iOS开发系列--C语言之存储方式和作用域
概述 基本上每种语言都要讨论这个话题,C语言也不例外,因为只有你完全了解每个变量或函数存储方式.作用范围和销毁时间才可能正确的使用这门语言.今天将着重介绍C语言中变量作用范围.存储方式.生命周期.作用 ...
随机推荐
- springboot快速开发(简单web)
这是一个springboot基础配置文件介绍的demo.只涉及到 控制层与前端的简单交互,用于验证代码的畅通. spring-boot pom.xml解释 <?xml version=&quo ...
- "HTML编码规范" 笔记
转自学习网站(百度原创):https://github.com/ecomfe/spec/blob/master/html-style-guide.md 本文是百度培训网站上关于HTML编码规范的笔记, ...
- cocos-lua3.17 Lua tablrView工具类
local MyTableView = class("MyTableView") MyTableView.__index = MyTableView MyTableView.pro ...
- 使用EFCore处理并发冲突
一.首先添加并发处理标记 在需要进行并发处理的类中添加版本号,并在版本号上使用[Timestamp]标记: public class Department { public int Id { get; ...
- Java并发知识分享
volatile的内存语义 从JSR-133(即从JDK1.5开始),volatile变量的写-读可以实现线程之间的通信 当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷 ...
- 芯片烧录器编程AT24C02
网上买了两款芯片烧录器,因为项目用的到.芯片以后的类型可能是IIC 接口的.就选则了一个IIC接口的AT24C02EEPROM.进行尝试.手头上没有这款芯片. 就想起自己单片机上有这款芯片.然后就开始 ...
- 万维网(WWW)
简介:万维网(WWW)是 Internet上最为普及的一种应用服务,它是由成千上万万维网站点(简称网站)组成的一个联机信息存储系统. 万维网的工作模式采用客户机/服务器方式,在用户计算机上运行浏览器作 ...
- 关于SpringMVC的配置流程以及一些细节
首先说道SpringMvc是什么,SpringMVC是Spring框架里面的一个子框架,它对网站前后端的代码分层做了一套实现,这套实现给我们带来了几个好处,首先第一,SpringMVC实现了一个请求对 ...
- Supervisor使用(启动nginx/tomcat/redis)
官方文档:http://supervisord.org/ 一.安装 yum install -y supervisor 二.开机自启动 执行以下命令: systemctl enable sup ...
- 一个http请求从用户输入网址开始到结束都发生了什么
一个http请求从用户输入网址开始到结束都发生了什么 一.一个http请求从开始到Django后台,到结束发生了什么 通过用户输入的域名解析出IP地址 TCP/IP 三次握手 进入nginx--- ...