আমি আমার সেকেন্ডে-হোস্ট নাগিওগুলি লবণের সাথে খনি পর্যবেক্ষণ এবং চেক_মেকের মাধ্যমে আমার ভ্রমণটি এখানে রূপরেখা করেছি:
http://garthwaite.org/saltmine_check_mk_agent.html
নিবন্ধটি কয়েক সপ্তাহ ধরে চলতে থাকে এবং এগুলি সব কাজ করে যেতে থাকে ink আমি সমাধানটির সংক্ষিপ্তসার করব:
সমস্ত মিনিনের জন্য একটি কাস্টম চেক_এমকে মডিউল তৈরি করুন:
#!/usr/bin/env python
''' Support for running check_mk_agent over salt '''
import os
import salt.utils
from salt.exceptions import SaltException
def __virtual__():
''' Only load the module if check_mk_agent is installed '''
if os.path.exists('/usr/bin/check_mk_agent'):
return 'check_mk'
return False
def agent():
''' Return the output of check_mk_agent '''
return __salt__['cmd.run']('/usr/bin/check_mk_agent')
মিনিনের খনি ব্যবধানটি এক মিনিটে সেট করুন:
salt '*' file.append /etc/salt/minion.d/mine.conf "mine_interval: 1"
সমস্ত মিনিনের চেক_এমকে_এজেন্ট আউটপুটটিকে একক জেসন ফাইলে টানতে পর্যবেক্ষণ সার্ভারটি কনফিগার করুন, তারপরে কোনও নেটওয়ার্ক প্রশ্নের পরিবর্তে সেই ফাইলটি জিজ্ঞাসা করতে চেক_এমকে কনফিগার করুন। সমস্ত পর্যবেক্ষণ মিনিনে নিম্নলিখিত স্ক্রিপ্ট দিয়ে সম্পন্ন:
#!/usr/bin/env python
import sys
import json
import fcntl
DATAFILE="/dev/shm/cmk.json"
NAG_UID = 105
NAG_GID = 107
def do_update():
import os
import salt.client
caller = salt.client.Caller()
data = caller.function('mine.get', '*', 'check_mk.agent')
lockfile = open(DATAFILE+".lock", "w")
fcntl.flock(lockfile, fcntl.LOCK_EX)
datafile = open(DATAFILE, "w")
datafile.write(json.dumps(data))
for f in (DATAFILE, DATAFILE+".lock"):
os.chmod(f, 0644)
os.chown(f, NAG_UID, NAG_GID)
def get_agent(minion):
lockfile = open(DATAFILE+".lock", "w")
fcntl.flock(lockfile, fcntl.LOCK_SH)
data = json.load(file(DATAFILE))
return data[minion]
if __name__ == '__main__':
if len(sys.argv) != 2:
print "Usage: mine_agent.py --update | <minion id>"
elif sys.argv[1] in ['--update', '-u']:
do_update()
else:
minion = sys.argv[1]
print get_agent(minion)
প্রতি মিনিটে আপডেট করুন:
$ cat /etc/cron.d/retrieve_mined_minion_data
*/1 * * * * root /etc/check_mk/mine_agent.py --update
শেষ অবধি: /etc/check_mk/main.mk- এ সমস্ত নাগিও লক্ষ্যগুলির জন্য ডেটাসোর্স পরিবর্তন করুন:
datasource_programs = [
( '/etc/check_mk/mine_agent.py <HOST>', ['mine'], ALL_HOSTS ),
]