Events&Reactor系统—BEACONS

Beacons let you use the Salt event system to monitor non-Salt processes. The beacon system allows the minion to hook into a variety of system processes and continually monitor these processes. When monitored activity occurs in a system process, an event is sent on the Salt event bus that can be used to trigger a reactor.

beacons使您可以使用Salt事件系统来监视非Salt进程。 beacon系统允许minion进入各种系统进程并持续监控这些进程。 当监视的活动发生在系统进程中时,Salt事件总线上会发送一个事件,用于触发反应堆。

Salt beacons can currently monitor and send Salt events for many system activities, including:

Salt beacons目前可以监视和发送Salt事件以用于许多系统活动,包括:

  • file system changes 
  • system load  
  • service status
  • shell activity, such as user login
  • network and disk usage

See beacon modules for a current list. 请参阅当前列表的beacon模块。

Note
Salt beacons are an event generation mechanism. Beacons leverage the Salt reactor system to make changes when beacon events occur.
Salt beacons是一种事件生成机制。beacons事件发生时,beacons利用Salt反应堆系统进行更改。

configuring beacons

Salt beacons do not require any changes to the system components that are being monitored, everything is configured using Salt.

Salt beacons不需要对正在监测的系统组件进行任何更改,所有内容均使用Salt进行配置。

Beacons are typically enabled by a beacons: top level block in /etc/salt/minion or any file in /etc/salt/minion.d/ such as /etc/salt/minion.d/beacons.conf or add it to pillars for that minion:

beacons通常通过放置beacons:在/etc/salt/minion或/etc/salt/minion.d/中的任何文件(如/etc/salt/minion.d/beacons.conf)来启用或将那个minion添加到pillars:

 beacons:
inotify:
- files:
/etc/important_file: {}
/opt: {}

The beacon system, like many others in Salt, can also be configured via the minion pillar, grains, or local config file.

像Salt中的许多其他系统一样,Beacon系统也可以通过pillar, grains或本地配置文件进行配置。

Note
The inotify beacon only works on OSes that have inotify kernel support. Currently this excludes FreeBSD, macOS, and Windows.
inotify beacon只适用于具有inotify内核支持的操作系统。 目前这不包括FreeBSD,macOS和Windows。

create watched file

Create the file named /etc/important_file and add some simple content:

创建名为/etc/important_file的文件并添加一些简单的内容:

important_config: True

add beacon configs to minion

On the Salt minion, add the following configuration to /etc/salt/minion.d/beacons.conf:

在Salt minion上,将以下配置添加到/etc/salt/minion.d/beacons.conf中:

 beacons:
inotify:
- files:
/etc/important_file:
mask:
- modify
- disable_during_state_run: True

Save the configuration file and restart the minion service. The beacon is now set up to notify salt upon modifications made to the file.

保存配置文件并重新启动minion的服务。beacon现在设置为在对文件进行修改时通知salt。

Note
The disable_during_state_run: True parameter prevents the inotify beacon from generating reactor events due to salt itself modifying the file.
disable_during_state_run:True参数可以防止inotify beacon生成反应器事件,因为salt本身会修改文件。

view events on the master

On your Salt master, start the event runner using the following command:

在你的Salt master上,使用以下命令启动事件执行器:

salt-run state.event pretty=true

This runner displays events as they are received by the master on the Salt event bus. To test the beacon you set up in the previous section, make and save a modification to /etc/important_file. You'll see an event similar to the following on the event bus:

这个执行在Salt事件总线上由maser接收时显示事件。 要测试您在前一节中设置的beacon,请对/etc/important_file进行修改并保存。 您将在事件总线上看到与以下内容类似的事件:

 {
"_stamp": "2015-09-09T15:59:37.972753",
"data": {
"change": "IN_IGNORED",
"id": "larry",
"path": "/etc/important_file"
},
"tag": "salt/beacon/larry/inotify//etc/important_file"
}

This indicates that the event is being captured and sent correctly. Now you can create a reactor to take action when this event occurs.

这表示事件正在被捕获并正确发送。 现在,您可以创建一个反应堆,在发生此事件时采取行动。

create a reactor

This reactor reverts the file named /etc/important_file to the contents provided by salt each time it is modified.

该反应器在每次修改时将名为/etc/important_file的文件恢复为salt提供的内容。

reactor sls

On your Salt master, create a file named /srv/reactor/revert.sls.

在Salt master端,创建一个名为/srv/reactor/revert.sls.

Note
If the /srv/reactor directory doesn't exist, create it.
mkdir -p /srv/reactor

Add the following to /srv/reactor/revert.sls:

 revert-file:
local.state.apply:
- tgt: {{ data['data']['id'] }}
- arg:
- maintain_important_file
Note
In addition to setting disable_during_state_run: True for an inotify beacon whose reaction is to modify the watched file, it is important to ensure the state applied is also idempotent.
除了设置disable_during_state_run:True对于反应修改观察文件的inotify beacon而言,重要的是要确保所应用的状态也是幂等的。
Note
The expression {{ data['data']['id'] }} is correct as it matches the event structure shown above.
表达式{{data ['data'] ['id']}}是正确的,因为它匹配上面显示的事件结构。

【SaltStack官方版】—— Events&Reactor系统—BEACONS的更多相关文章

  1. 【SaltStack官方版】—— Events&Reactor系统—EVENT SYSTEM

    Events&Reactor系统 EVENT SYSTEM The Salt Event System is used to fire off events enabling third pa ...

  2. 【SaltStack官方版】—— EVENTS & REACTOR指南

    EVENTS & REACTOR Event System Event Bus Event types Salt Master Events Authentication events Sta ...

  3. 【SaltStack官方版】—— returners——返回器

    ETURNERS 返回器 By default the return values of the commands sent to the Salt minions are returned to t ...

  4. 【SaltStack官方版】—— STORING JOB RESULTS IN AN EXTERNAL SYSTEM

    STORING JOB RESULTS IN AN EXTERNAL SYSTEM After a job executes, job results are returned to the Salt ...

  5. 【SaltStack官方版】—— MANAGING THE JOB CACHE

    MANAGING THE JOB CACHE The Salt Master maintains a job cache of all job executions which can be quer ...

  6. 【SaltStack官方版】—— job management

    JOB MANAGEMENT New in version 0.9.7. Since Salt executes jobs running on many systems, Salt needs to ...

  7. 【SaltStack官方版】—— states教程, part 3 - 定义,包括,延伸

    STATES TUTORIAL, PART 3 - TEMPLATING, INCLUDES, EXTENDS 本教程建立在第1部分和第2部分涵盖的主题上.建议您从此开始.这章教程我们将讨论更多  s ...

  8. 【SaltStack官方版】—— states教程, part 2 - 更复杂的states和必要的事物

    states tutorial, part 2 - more complex states, requisites 本教程建立在第1部分涵盖的主题上.建议您从此处开始. 在Salt States教程的 ...

  9. 【SaltStack官方版】—— states教程, part 4 - states 说明

    STATES TUTORIAL, PART 4 本教程建立在第1部分.第2部分.第3部分涵盖的主题上.建议您从此开始.这章教程我们将讨论更多 sls 文件的扩展模板和配置技巧. This part o ...

随机推荐

  1. hibernate+spring mvc,解决hibernate对象懒加载,json序列化失败

    在使用spring MVC时,@ResponseBody 注解的方法返回一个有懒加载对象的时候出现了异常,以登录为例: @RequestMapping("login") @Resp ...

  2. Linux监控命令之==>vmstat

    一.使用说明 vmstat 可以对操作系统的内存信息.进程状态.CPU 活动.磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析. 二.用法及参数说明 -a:显示活跃和非活跃内存 -f:显示从系 ...

  3. ContextLoader

    // // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler ...

  4. Linux系统常用命令之top

    top - 06:58:37 up 7 days, 23:36, 2 users, load average: 0.00, 0.01, 0.05Tasks: 716 total, 1 running, ...

  5. Mailx安装与使用

    1.卸载sendmail与postfix yum -y install mailx 2.安装mailx yum -y remove sendmail postfix 3.配置mail.rc vim / ...

  6. CentOS 7.6 RPM 方式安装Oracle19c 后 使用 systemd 的方式设置开机自动启动Oracle数据库

    1. 方法简介: 使用systemd 来进行 oracle数据库的启动和关闭操作. 使用的脚本为 lsnrctl和dbstart 2. 修改事项. 需要先修改一下 oracle 的启动脚本配置: vi ...

  7. python UnicodeEncodeError: 'gbk' codec can't encode character ...

    使用Python写文件的时候,或者将网络数据流写入到本地文件的时候,大部分情况下会遇到:UnicodeEncodeError: 'gbk' codec can't encode character ' ...

  8. [LOJ 6253] Yazid 的新生舞会

    link $solution:$ 不知道为什么别人的代码能写的非常短,难道就是写差分的好处? 这种题肯定是算每个众数的贡献,考虑通过暴力众数求出个数. 现在考虑众数 $x$ ,则在序列 $a$ 中将等 ...

  9. IDEA--错误:找不到或无法加载XXXXX--解决方法--创建javafx或其他项目出现的问题

    今天一上午超厂长在学习javafx的时候,总是创建一个然后运行就会出现 出现错误:找不到或无法加载主类 找了二个小时,都说是jdk或者其他环境配置问题 按照那些改了也没用重新创建一个也提示出现错误:找 ...

  10. 发布一本用 GitBook 编辑的书

    在上一篇的文章里,我们已经写好了一本名叫 erdong-first-book 的书,但是在本地浏览很不方便,我们希望放到网络上,可以随时.方便的访问这个书籍.这个需求可以使用多种方式来实现,比如第一种 ...