গ্রাফাইট, গাংলিয়া বা জেনোসের জন্য সল্ট (সালটস্যাক) ডেটা সংগ্রহ এবং রিলে করতে পারে?


11

আমি একটি নতুন প্রকল্প শুরু করছি এবং মোতায়েনের অটোমেশন এবং সম্ভবত আরও পরিশীলিত অর্কেস্টেশন (সার্ভার ম্যানেজমেন্ট এবং ফেডারেশন) এর জন্য উত্তরযোগ্য বা লবণ ব্যবহার করার বিষয়ে বিবেচনা করছি ।

লবণ আমি যদি সেখানে এটি এবং মধ্যে কোনো ইন্টিগ্রেশন এর হতাশ করছি গ্রাফাইট বা Zenoss বা ganglia ... লবণ ব্যবহার 0mq সংযোগ পর্যবেক্ষণের জন্য লবণ "পুলিশ" / ডাটাবেসের / সংগ্রাহক গ্রাফিং থেকে তথ্য রিলে করা হয়।

অন্য কেউ কি এই দিকে তাকিয়ে আছে?


আপনি আরও বিস্তারিতভাবে যা করতে চাইছেন তা ব্যাখ্যা করতে পারেন, দয়া করে? আপনার কী ধরণের জিজ্ঞাসাবাদ দরকার?
জামেব

3
সলমন নামে একটি নতুন প্রকল্প রয়েছে যার লক্ষ্য হল লবণের ডেটা সংগ্রহের প্রক্রিয়া এবং বার্তা পরিবহন হিসাবে সল্টকে ব্যবহার করে একটি পূর্ণ-বিকাশ ব্যবস্থা করা। এটি তার ডাটাবেস হিসাবে হুইস্পার ব্যবহার করে, তাই আপনি যদি সত্যিই চান তবে আপনি এটি সহজেই গ্রাফাইটে সংহত করতে পারেন।
jgoldschrafe

উত্তর:


9

40+ নোড পরিচালনা করতে আমি 6 মাসেরও বেশি সময় ধরে লবণের স্ট্যাক ব্যবহার করেছি।

আমার বর্তমান সেটআপে আমি ব্যবহার করি:

  • মনিটরিং সার্ভার হিসাবে Icinga
  • নোডগুলিতে চেকগুলি কার্যকর করার জন্য এনআরপিই
  • গ্রাফাইট সংগ্রহ করা নোডগুলি থেকে ডেটা সংগ্রহ করে
  • collectd গ্রাফাইট থেকে সংগ্রহ ও বৈশিষ্ট্যের মান ঠেলাঠেলি জন্য
  • গ্রাহাইট মেট্রিক্স ভিজ্যুয়ালাইজ করার জন্য একটি দুর্দান্ত ড্যাশবোর্ডের জন্য জিডিএস
  • প্রতিটি নোডে এনআরপিই / সংগ্রহের জন্য কনফিগারগুলি রোল আউট করার জন্য লবণের স্ট্যাক এবং শেষ পর্যন্ত লবণের স্ট্যাক

ALS এটি CentOS 6.x এর অধীনে চলে

আমার এতক্ষণের কাফফারাটি হ'ল লবণের স্ট্যাক সব কিছুতে নথিভুক্ত করা ভাল। তবে দীর্ঘমেয়াদী ডেমোনের নোডগুলিতে চালিত হওয়ার কারণে এটি স্থিতিশীল নয়।

আমার প্রায়শই লাস্ট মিনিনসে মাস্টার বা স্মৃতি ফুলে যাওয়া না পৌঁছাতে সমস্যা হয়। এটি প্রতি 24 ঘন্টা / একবারে লবণ-মিনিটগুলি পুনরায় চালু করার সাথে স্থির করা যায় এবং সহজেই কাজ করা যায়।

তবে লবণ-মিনিয়ানের এই সমস্যাটি 0 এমকিউ ফ্রেমওয়ার্কের মাধ্যমে ডেটা সংগ্রহ করা ব্যবহারযোগ্য করে তোলে না।

আমার বর্তমান সেটআপটি নিরাপদে চলছে। আমি লবণের স্ট্যাকের সাথে পরিবর্তনগুলি খুব দ্রুত নথিভুক্ত করতে পারি এবং নোডগুলিতে সংগ্রহ করা কৌতুকটি করে।


আমি এটিকে উজ্জীবিত করতে চাইনি , তবে সততা এবং শালীনতা আমাকে এটি করতে বাধ্য করেছিল। তারা অবশ্যই মেট্রিকের জন্য একটি সাধারণ পরিবহণ সরবরাহের দুর্দান্ত সম্ভাবনা সম্পর্কে সচেতন। আমি ইতিমধ্যে লবণ-খনি মাধ্যমে এটি কিছু।
ড্যান গার্থওয়েট

[পাই] স্ট্যাটাসডের উপরে কেন সংগ্রহ করা হয়েছে?
ড্যান গার্থওয়েট

4

আমি মনে করি যে সল্ট বা উত্তরীয় সেই কাজের জন্য তৈরি করা হয়নি এবং আমি মনে করি সেগুলি সে উদ্দেশ্যে ব্যবহার করা যাবে না।

আমি বেশ কয়েক মাস ধরে লবণ ব্যবহার করছি এবং আপনার প্রয়োজনীয় ফাংশনগুলির বিকল্পগুলি (কনফিগারেশন এবং নথিপত্রগুলিতে) খেয়াল করিনি। তবে আমি মনে করি যে অজগরে লবণের লিখিতভাবে আপনি আপনার প্রয়োজনীয়তাগুলি "যুক্ত" করতে পারেন - যদি এটি কোনও বিকল্প হয়।

সবচেয়ে সহজ উপায় ইনস্টল করার লবণ হয় collectd যা সিস্টেমের সম্পর্কিত ডেটা সংগ্রহ করতে পারেন (এবং গ্রাফাইট থেকে সংযোগকারীগুলিকে আছে)

সম্পাদনা: আমি একটি প্রকল্প পেয়েছি যা লবণ ব্যবহার করে মনিটরিং প্রয়োগ করে - সালমন - একবার দেখুন।


সংগ্রহ আমার প্রথম চিন্তা ছিল।
জে অ্যাডামস

লবণ-মনিটর github.com/thatch45/salt-monitor
Itai Frenkel

3

আপনি সেনসুতে একবার নজর রাখতে চাইতে পারেন , এটি অন্যদের মধ্যে গ্রাফাইট সহ প্রচুর সম্প্রদায় প্লাগইন সহ একটি মনিটরিং সমাধান প্লাগেবল ।

তবে সেনসু বার্তা সরবরাহের জন্য আরেকটি বার্তাপ্রেরণ সারি ব্যবহার করে, রাবিট এমকিউ । হয়তো কিছু কোডিংয়ের কাজ প্রয়োজন, তবে আপনি দুটি বার্তাবাহকের সারিটির একটি প্রতিস্থাপনের চেষ্টা করতে পারেন, যেহেতু উভয়েরই বার্তা আদান-প্রদানের জন্য এএমকিউ প্রোটোকল ব্যবহার করা উচিত।


2

আমি আপনাকে দুটি জিনিস খতিয়ে দেখার পরামর্শ দিই: সল্ট মাইন - http://docs.saltstack.com/topics/mine/ লবণের ইভেন্ট - http://docs.saltstack.com/topics/event/index.html

যদি আপনি এগুলি গ্রাফাইটে বা আপনার তালিকাভুক্ত অন্য যে কোনও একটিতে ফলাফল সংরক্ষণের জন্য আপনার নিজস্ব রিটার্নার কনফিগারেশন সেটআপের সাথে একত্রিত করেন। আপনি টপ ডাউন 'প্রোবিং' এবং নীচে 'ইভেন্টিং' পরিচালনা করতে লবণ ব্যবহার করতে পারেন। আমি এই জাতীয় ব্যবস্থার কার্যকারিতা সম্পর্কে মন্তব্য করতে সক্ষম হব না, তবে নীতিগতভাবে এটির সম্ভাবনা রয়েছে বলে মনে হয়।


এখনও লবণের অবাস্তবহীন বৈশিষ্ট্যটি হ'ল এটি একটি নিরাপদ তারকা টপোলজি ইভেন্ট বাস। আমি চেক_এমকে_এজেন্ট চালাতে এবং সঞ্চয় করতে লবণের খনি ব্যবহার করি এবং নাগিওস সার্ভারে একটি চেক_এমকে এটি খনি থেকে টান দেয়।
ড্যান গারথওয়েট

2

আমি আমার সেকেন্ডে-হোস্ট নাগিওগুলি লবণের সাথে খনি পর্যবেক্ষণ এবং চেক_মেকের মাধ্যমে আমার ভ্রমণটি এখানে রূপরেখা করেছি: 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 ),
]

খুব খারাপ মাইন_ইন্টারওয়াল হ'ল একটি বৈশ্বিক কনফিগারেশন প্রতি মাইন ফাংশন নয়, আমার কিছু ভারী খনি ফাংশন রয়েছে যা এক মিনিটের জন্য সেট করা থাকলে ভাল নাও হতে পারে।
জাগুলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.