지금까지 솔트 관련 이벤트를 위해 이벤트 버스를 모니터링하는 방법과 몇 가지 추가 이벤트를 활성화하는 방법에 대해 알아봤습니다. 이 시점에서는 “Salt 이벤트를 실시간으로 모니터링하고 대응할 수 있는 동적 통신 인프라를 이미 설정했으므로 시스템 로그인, 디스크 사용량, 데이터베이스 서비스 등의 다른 사항도 모니터링할 수 있다면 더 좋을 것입니다.”라고 생각할 수 있습니다. (그렇지 않을 수도 있습니다.)
그 말들이든 아니든, 넌 운이 좋은 거야, 그게 바로 비콘이 하는 일이니까!
비콘을 사용하면 솔트와 관련이 없는 항목에 대해 이벤트를 모니터링하고 발생시킬 수 있습니다. 비콘 시스템은 미니언이 다양한 시스템 프로세스에 접속하고 이러한 프로세스를 지속적으로 모니터링할 수 있도록 합니다. 시스템 프로세스에서 모니터링되는 활동이 발생하면 소금 이벤트 버스를 통해 이벤트가 전송됩니다.
솔트 비콘은 현재 다음과 같은 많은 시스템 활동을 위해 솔트 이벤트를 모니터링하고 전송할 수 있습니다.
- 파일 시스템 변경사항
- 시스템 부하
- 근무 상태
- 셸 활동(예: 사용자 로그인)
- 네트워크 및 디스크 사용량
비콘 활성화
솔트 비콘은 모니터링 중인 시스템 프로세스를 변경할 필요가 없으며 모든 항목이 솔트를 사용하여 구성됩니다.
일반적으로 비콘은 미니언 구성 파일에 최상위 beacons 섹션을 배치하여 활성화합니다.
beacons
inotify
home/user/importantfile
mask
modify
비콘 모니터링 간격
비콘은 기본적으로 1초 간격으로 모니터링됩니다. 다른 간격을 설정하려면 비콘에 간격 인수를 제공하십시오. 다음 비콘은 5초 및 10초 간격으로 실행됩니다.
beacons
inotify
/etc/httpd/conf.d
/opt
interval5
load
1m
0.0
2.0
5m
0.0
1.5
15m
0.1
1.0
interval10
비콘이 구성된 후에는 다른 솔트 프로세스와 마찬가지로 이벤트를 트리거합니다.
이벤트 루프 방지
비콘 원자로가 비콘을 다시 트리거하는 변경을 할 수 있는 경우 disable_during_state_run 인수를 추가하여 True로 설정합니다.
beacons
inotify
home/user/importantfile
mask
modify
disable_during_state_run True
대부분의 루프 조건과 마찬가지로, 이 루프 조건을 추가해야 할 때 어려운 방법을 알게 될 것입니다.
비콘 추가
우리는 파일에 변경 사항을 지켜보는 비콘을 추가할 것입니다. 이를 위해 inotify beacon과 python-pyinotify 패키지를 사용할 것입니다. 이 패키지는 저희 솔트 미니언 제품이 아니기 때문에 먼저 솔트를 사용해서 설치하겠습니다.
PYINOTIFY 설치 및 이벤트 러너 시작
salt-vagrant-demo 디렉터리에 대한 명령 프롬프트를 열고 마스터에 ssh:
vagrant ssh master
minion1에 python-pyinotify 패키지를 설치합니다.
sudo salt 'minion1' pkg.install python-pyinotify
다음과 유사한 출력이 표시됩니다.
vagrant@saltmaster:~$ sudo salt 'minion1' pkg.install python-pyinotify
minion1
----------
python-pyinotify
----------
new
0.9.4-1build1
old
python2.7-pyinotify
----------
new
1
old
곧 이벤트를 생성할 예정이므로 Salt Master에 로그인한 상태로 이벤트 러너를 시작하십시오.
salt-run state.event pretty=True
터미널에서 실행 상태로 두고 계속 진행하십시오.
비콘 설정
salt-vagrant-demo 디렉토리에 대한 다른 명령 프롬프트를 열고 minion1에 ssh를 추가합니다.
vagrant ssh minion1
minion1에서 /etc/salt/minion 파일을 편집하고 하단에 다음 내용을 추가합니다.
beacons
inotify
/home/vagrant/importantfile
mask
modify
파일을 저장한 다음 솔트 미니언 서비스를 다시 시작합니다.
sudo service salt-minion restart
이제 비콘이 저장되고 활성화됩니다. 다음으로, 변경 사항을 모니터링할 파일을 만들 수 있습니다. /home/vagrant/ 디렉토리에 importantfile을 작성합니다.
touch importantfile
echo "some content" > importantfile
솔트 마스터로 돌아가서 다음과 유사한 이벤트를 선택했어야 합니다.
salt/beacon/minion1/inotify//home/vagrant/importantfile
"_stamp""2016-02-03T22:32:09.592113"
"data"
"change""IN_MODIFY"
"id""minion1"
"path""/home/vagrant/importantfile"
"tag""salt/beacon/minion1/inotify//home/vagrant/importantfile"
파일을 수정하기 전에 이벤트 러너를 시작해야 합니다. 그렇지 않으면 이벤트가 표시되지 않습니다(이벤트가 계속 트리거되므로 이벤트가 표시되지 않습니다).
이제 신호등도 작동되고 다른 솔트 이벤트도 생성되고 있으니 솔트 리액터를 사용하여 이 이벤트를 수행할 때입니다.
출처 : https://docs.saltproject.io/en/getstarted/event/beacons.html