salt自定义returner+fluent+mysql进行数据采集
转自:http://bbs.linuxtone.org/forum.php?mod=viewthread&tid=24213&fromuid=15864
背景:
salt自带的有很多可选的returner,但是都需要在minion做配置,我感觉这点挺操蛋,
而且正好我们平台上在使用fluent做采集,于是就自定义一个reutren,然后用fluent采集,处理,入库
过程如下:
# 1:mysql表结构:
<pre>
CREATE TABLE `fluent`;
CREATE TABLE `salt_returns` (
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
`jid` char(20) DEFAULT NULL,
`host_id` varchar(48) DEFAULT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`fun` varchar(30) DEFAULT NULL,
`return` text,
`success` char(5) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_host_id` (`host_id`)
)
</pre>
#2:自定义returner
创建默认自定义return的目录,这个目录虽然是默认的,但是默认并没有创建
<pre>
mkdir /srv/salt/_returners
</pre>
## 自定义reuters:
主要就是returner(ret) 这个函数的定义
<pre>
cat /srv/salt/_returners/lcoal_return.py
#coding=utf8
import json
def __virtual__():
return 'local_return'
def returner(ret):
'''
Return data to the local file
'''
result_file = '/var/local/salt/returner'
result = file(result_file,'a+')
result.write(str(json.dumps(ret.values()))[1:-1]+'\n')
result.close()
</pre>
同步到所有节点:
<pre>
salt '*' saltutil.sync_returners
</pre>
执行命令
<pre>
salt '*' cmd.run 'ls /var' --return local_return
</pre>
查看结果:
<pre>
cat /var/log/salt/returner
"cmd.run", "20130524052158870765", "cache\ncvs\ndb\nempty\ngames\nlib\nlocal\nlock\nlog\nmail\nnis\nopt\npreserve\nrun\nspool\ntmp\nwww\nyp", "minion1", true
</pre>
# 3fluent采集
## 客户端配置:
<pre>
<source>
type tail
path /var/log/salt/returner
pos_file /tmp/return_pos.log
tag os.salt
format /\"(?<fun>.*)\", \"(?<jid>\d+)\", (?<return>.*), \"(?<id>.*)\", (?<success>.*)/
</source>
<match os.*>
type forward
flush_interval 1s
<server>
host {{ pillar['host'] }}
port {{ pillar['port'] }}
</server>
</match>
</pre>
服务端配置:
<pre>
<source>
type forward
port 24224
bind 0.0.0.0
</source>
<match host.os.salt>
type mysql
host localhost
database fluent
username fluent
password fluent
key_names jid,id,fun,return,success
sql INSERT INTO salt_returns (jid,host_id,fun,`return`,success) VALUES (?,?,?,?,?)
flush_interval 5s
</match>
</pre>
结果查询:
<pre>
select * from salt_returns where success is not NULL and fun='cmd.run' limit 1;
+------+----------------------+-----------------------------------------+---------------------+---------+---------+---------+
| id | jid | host_id | time | fun | return | success |
+------+----------------------+-----------------------------------------+---------------------+---------+---------+---------+
| 2571 | 20130531184127393793 | test | 2013-05-31 10:38:29 | cmd.run | "/root" | true |
+------+----------------------+-----------------------------------------+---------------------+---------+---------+---------+
</pre>
salt自定义returner+fluent+mysql进行数据采集相关推荐
- 最稳定的Nginx绿色环境,可无限自定义PHP和mysql版本、同时运行N个版本
应学生要求,我最近更新了PHPWAMP,新版PHPWAMP添加了强大的Nginx站点管理 核心经过重新编译.完美解决不同版本和不同组件间的兼容,自动智能匹配系统所需的组件. 纯绿色解压即可使用,默认集 ...
- 数据库连接池之自定义连接池(mysql)
数据库连接池之自定义连接池(mysql) 上一篇博文是"基于mysql的JDBC的增删改查的封装":点击可查看 今天本仙在昨天JDBC封装增删改查的基础上实现自定义的数据库连接池: ...
- 混合云备份利用自定义Workflow保护MySQL的实践
众所周知数据库的保护面临着诸多问题,其中之一就是维护数据底层文件的一致性.除了与数据库应用的深度集成的备份方案(如SAP HANA Backint等),松耦合的通用备份软件较难做到完美的数据库的一致性 ...
- mysql 8.0 自定义函数_PHP+Mysql防止SQL注入的方法(life)
这篇文章介绍的内容是关于PHP+Mysql防止SQL注入的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我的官方群点击此处. 方法一: mysql_real_escape_str ...
- mysql写入监控_zabbix 自定义key 监控mysql增删查改
vim /etc/zabbix/zabbix_agentd.d/mysql.conf ##zabbix_agentd.d在这个文件夹下的.conf,都会被agent读取,我们这里新建的一个配置文件方便 ...
- 5-13自定义sink到MySQL.
addSink - Invokes a custom sink function. Flink comes bundled with connectors to other systems (such ...
- kafka结合mysql_logstash集成kafka,mysql实现数据采集
logstash是一个非常灵活好用的数据采集框架工具,可以通过简单的配置满足绝大多数数据采集场景的需求. 采集数据一个非常典型的场景就是将数据先放到kafka队列里削峰,然后从kafka队列里读取数据 ...
- mysql 自定义查询函数,mysql自定义函数与动态查询
摘要 腾兴网为您分享:mysql自定义函数与动态查询,智学网,夜读小说,小睡眠,西餐菜谱等软件知识,以及猫语翻译器,江西校讯通,刷qq业务的网站,房洽洽,学士服照,爱站seo工具包,虚拟声卡驱动,隐藏 ...
- SpringBoot中Logback常用配置以及自定义输出到MySql数据库
之前基于SpringBoot开发的项目运行一段时间后,客户使用网站偶尔会出现接口调用失败的情况,每次产品经理询问是怎么回事的时候,都需要让运维提下最近的日志才能分析具体原因,这样时效性和便利性不能满足 ...
- zabbix自定义key监控mysql主从同步超简单!
原理:利用在slave上运行show slave status获取Slave_IO_Running和Slave_SQL_Running的值 1.在zabbix客户端配置文件中加入: 首先要对mysql ...
最新文章
- Delphi真的没落了吗?_说Delphi母语Pascal的另一个应用
- Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台
- 六十八、SpringBoot连接MongoDB操作
- 【easy】206. Reverse Linked List 链表反转
- 完整的JS表单验证封装类
- xay loves trees
- SQL Server 2008 R2:error 26 开启远程连接详解
- Git中的“起源”是什么?
- 神经网络 测试集loss不下降_代码实践 | 全连接神经网络回归---房价预测
- 网上阅卷系统服务器,网上阅卷系统是什么?
- 【frida】lxhToolHTTPDecrypt安装使用问题
- Android开发之自定义DataTimePicker(日期时间选择器)
- 谷歌io大会 android p,十年最大革新 Android P现身谷歌I/O大会
- 蓝牙(BLE)自动配对
- 解决!适用黑苹果解决充电和使用电池中黑苹果自动睡眠
- Invalid header signature; read 0x3C0A0D0A0DBFBBEF, expected 0xE11AB1A1E011CFD0
- Vue官网2文档笔记
- AcWing 217. 绿豆蛙的归宿(期望dp)
- 20世纪最好的10个算法(转)
- Python由来以及用途
热门文章
- 支付宝客户端拉起支付
- mysql5.7.26搭建MGR单主及多主模式
- CSDN版主考核方案
- Android AdMob教程
- UVa 106 Fermat vs. Pythagoras(毕达哥拉斯定理)
- 论文阅读--SAP-SSE: Protecting Search Patterns and Access Patterns in Searchable Symmetric Encryption
- 如何把录音生成二维码,用微信扫一下就能听?分享语音音频转二维码的方法和技术原理
- 游戏手柄(JoyStick)的延时处理
- MATLAB神经网络工具箱(简单操作介绍)
- 网页版在线公式编辑器