ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. ¼Ò°³
È®À强À» È®º¸Çϱâ À§ÇÑ ¹æ¹ýÀº ¿©·¯°¡Áö°¡ ÀÖÀ» °ÍÀÌ´Ù. ¿©±â¿¡¼´Â ±×Áß PlugIn ¹æ½ÄÀ» ÀÌ¿ëÇÑ È®À强Ȯº¸¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·ê °ÍÀÌ´Ù.
Agent&Manager ¹æ½ÄÀÇ ÇÁ·Î±×·¥À» ¸¸µç´Ù°í °¡Á¤Çغ¸ÀÚ. SNMP ÇÁ·ÎÅäÄÝÀ» ÀÀ¿ëÇÑ Net SNMP°¡ °¡Àå ´ëÇ¥ÀûÀÎ °æ¿ì°¡ µÉ °ÍÀÌ´Ù. ÀÌ¿Õ Net SNMP¸¦ ¿¹·Î µé¾úÀ¸´Ï, Agent&Manager ¹æ½ÄÀÇ SMSÀ» ¸¸µå´Â °ÍÀ¸·Î °¡´ÚÀ» Àâ¾Æº¸°Ú´Ù.
ÀÌ·¯ÇÑ ½Ã½ºÅÛ¿¡¼ Agent ÇÁ·Î±×·¥À» ¸¸µé·Á°í ÇÑ´Ù¸é, ¼³°è´Ü°è¿¡¼ °¡Àå Áß¿äÇÏ°Ô »ý°¢ÇØ¾ß ÇÒ°Ô È®À强ÀÇ È®º¸°¡ µÉ °ÍÀÌ´Ù. ¿Ö³Ä¸é ½Ã½ºÅÛ °ü¸®ÀÇ ¹üÀ§°¡ ¸Å¿ì ³ÐÀº °ü°è·Î Çʿ信 µû¶ó °ü¸® ¿ä¼Ò°¡ °è¼Ó Ãß°¡µÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ´çÀå »ý°¢³ª´Â°Ô, CPU, Memory, Disk °ü¸®ÂëÀÌ µÉ°ÍÀÌ´Ù. ¹°·Ð Ãʱ⿡ ¿ÏÀüÇÏ°Ô °ü¸®¿ä¼Ò¸¦ ¸ù¶¥ ¿¹»óÇÏ°í ¼³°è¸¦ ÇÏ´Â ¹æ¹ýµµ ÀÖ°ÚÁö¸¸, ±×·¸°Ô µÉ °æ¿ì ¼³°è¿¡ Áö³ªÄ¡°Ô ¸¹Àº ½Ã°£À» ¼ÒºñÇØ¾ß ÇÒ °ÍÀÌ´Ù. ¸·»ó ±×·¸°Ô ¸¸µé¾ú´Ù°í ÇØµµ, Áß°£Âë ¸¸µé´Ù º¸¸é °ü¸®¿ä¼Ò°¡ »õ·Î Ãß°¡µÉ ¼öµµ ÀÖ´Ù. ½ÉÁö¾î´Â ¸ðµÎ ¸¸µé°í ³ª¼ °ü¸®¿ä¼Ò°¡ Ãß°¡µÉ ¼öµµ ÀÖÀ» °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ °æ¿ì PlugIn ¹æ½ÄÀ¸·Î °¢°¢ÀÇ ¼º´ÉÀ» ¸ðµâÈ ½ÃÄѼ ºÙÀÌ´Â ¹æ½ÄÀ¸·Î °³¹ß½Ã°£À» ¾Æ³¥ ¼ö ÀÖ´Ù. °Å±â¿¡ ´ýÀ¸·Î À¯¿¬Çϰí È®À强 ÁÁÀº ½Ã½ºÅÛÀ» ¸¸µé ¼öµµ ÀÖ´Ù. ´ë·« ´ÙÀ½°ú °°Àº ½Ã½ºÅÛ ±¸¼ºÀ» °¡Áö°Ô µÈ´Ù. ![]() ÇÊ¿äÇÑ ±â¼ú
ÀÌ ¹®¼¸¦ Àбâ À§Çؼ´Â ÇÔ¼öÆ÷ÀÎÅÍ, STL, ¶óÀ̺귯¸®¸¦ Á¦¾îÇϱâ À§ÇÑ ±â¼úµéÀ» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. Dynamic Module Loading
µ¿ÀûÀ¸·Î ¸ðµâÀ» ·ÎµùÇÏ´Â PlugIn¹æ½ÄÀ» ±¸ÇöÇϱâ À§ÇÑ ±âº»ÀûÀÎ ±â¼ú¿ä±¸ »çÇ×Àº ±×¸® º¹ÀâÇÏÁö ¾Ê´Ù. µ¿Àû¶óÀ̺귯¸®¸¦ ÀÌ¿ëÇϸé, ½±°Ô ±¸ÇöÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì Áß¿äÇÑ °ÍÀº ¸ðµâ°ú Agent¿ÍÀÇ ÀÎÅÍÆäÀ̽º¸¦ ÅëÀÏÇÏ´Â°Ô µÉ °ÍÀÌ´Ù. ¾î¶°ÇÑ ±â´ÉÀÌ ¸ðµâÇüÅ·ΠÃß°¡µÇ´õ¶óµµ, Agent¿Í ManagerÀÇ ¼Ò½ºÄÚµå ¼öÁ¤¾øÀÌ ¸ðµâÀÌ ·ÎµùµÉ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.
ÀÎÅÍÆäÀ̽º À̸§À» ¸ÂÃß´Â °ÍÀº ¹®Á¦°¡ µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. ¹®Á¦´Â ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ¼ À̵¿ÇÏ´Â µ¥ÀÌÅͰ¡ µÉ°ÍÀÌ´Ù. ÀÌ´Â °¢°¢ÀÇ ¼º´É¸¶´Ù º¸¿©Áà¾ß ÇÏ´Â Á¤º¸°¡ ´Ù¸¦ ¼ö Àֱ⠶§¹®Àε¥, CPUÀÇ °æ¿ì¶ó¸é »ç¿ëÀ²À» Disk¶ó¸é ÀåÄ¡¸í,¸¶¿îÆ®À̸§,»ç¿ëÀ²À» º¸³»¾ß Çϱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ¿¹»ó°¡´ÉÇÑ ¸ðµç Á¾·ùÀÇ µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ÁغñµÇ¾î¾ß ÇÑ´Ù. ÀÌ ¹®Á¦´Â ¼¼°¡Áö Á¤µµÀÇ ¹æ½ÄÀ¸·Î ÇØ°áÇÒ ¼ö ÀÖ´Ù.
Module Config
ÀÌÁ¦ ¼³Á¤ÆÄÀÏÀ» ¸¸µé¾î¾ß ÇÑ´Ù. ÀÌ ¼³Á¤ÆÄÀÏÀº Key¶ó°í ÇÒ ¼ö ÀÖ´Â ¸ðµâ ID¿Í È£ÃâÇØ¾ßÇÒ ¶óÀ̺귯¸®ÀÇ À̸§µéÀ» °¡Áø´Ù. ´ÙÀ½°ú °°Àº ±¸Á¶¸¦ °¡Áöµµ·Ï ÇϰڴÙ. [plugin] CPU=libmycpu.so MEM=libmymem.so¼³Á¤ÆÄÀÏÀ» ÀÐÀ» ¼ö ÀÖ´Â ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÒ °Í °°¾Æ¼, ±ÞÁ¶ÇÑ Äڵ尡 ÀÖ´Ù. °£´Ü ¼³Á¤ÆÄÀÏ Reader¸¦ Âü°íÇϱ⠹ٶõ´Ù. ÀÌ Äڵ带 ±×´ë·Î »ç¿ëÇÒ °ÍÀÌ´Ù. ÇÁ·Î½ÃÁ®
°øÅë ÀÎÅÍÆäÀ̽º
°øÅë ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇØº¸µµ·Ï ÇÏÀÚ. ÃÖ´ëÇÑ °£´ÜÇÏ°Ô Á¤ÀÇÇϵµ·Ï ÇϰڴÙ.
Å×½ºÆ®¿ë Ç÷¯±×ÀÎ ¸ðµâ
libmycpu ¿Í libmysms ¸¦ À§ÇÑ ¸ðµâÀ» ÀÛ¼ºÇÒ °ÍÀÌ´Ù. À̵éÀº °øÀ¯¶óÀ̺귯¸® ÇüÅ·ΠÀÛ¼ºµÉ °ÍÀÌ´Ù. ÀÛ¼ºµÈ À̵é Ç÷¯±×ÀÎ ¸ðµâÀº dlopen(2) ÇÔ¼ö¸¦ ÀÌ¿ëÇØ¼ µ¿ÀûÀ¸·Î ÀûÀç µÈ´Ù.
¿©±â¿¡¼´Â ´Ü¼øÈ÷ ¹®ÀÚ¿À» ¸®ÅÏÇÏ´Â dummy ¸ðµâÀ» ÀÛ¼ºÇÒ °ÍÀÌ´Ù. Ç÷¯±×ÀÎ ±â´ÉÀ» Áö¿øÇÏ´Â Agent ÇÁ·Î±×·¥
´ÙÀ½Àº Agent ÇÁ·Î±×·¥ÀÌ´Ù. #include <iostream> #include <cstdlib> #include <qosconfig.h> #include <dlfcn.h> #include <vector> using namespace std; typedef char *(*Function)(); int main(int argc, char *argv[]) { Config *agentCfg; int rtv; char *key; char *value; void *handle; agentCfg = new Config(); Function myFunc; // Ç÷¯±×ÀÎÀ» ÀúÀåÇÒ Vector·Î ÇÔ¼ö Æ÷ÀÎÅ͸¦ ¿ø¼Ò·Î °¡Áø´Ù. vector<Function> FuncPList; // ¼³Á¤ÆÄÀÏÀ» Open ÇÑ´Ù. rtv = agentCfg->openCfg("config.cfg"); if (rtv == -1) { perror("Config Read Error"); } // Ç÷¯±×ÀÎ ¼½¼Ç¿¡¼ Ç÷¯±×ÀÎ ¸ñ·ÏÀ» Àоî¿Â´Ù. if (agentCfg->findSection("PLUGIN")) { while(key = agentCfg->NextItem()) { printf("Loding Module %s:%s\n", key, agentCfg->NextValue()); // Ç÷¯±×ÀÎÀ» ·ÎµåÇÑ´Ù. handle = dlopen(agentCfg->NextValue(), RTLD_NOW); if (!handle) { fputs(dlerror(), stderr); } else { // °øÅëÀÎÅÍÆäÀ̽ºÀÎ Read ÇÔ¼ö¸¦ ÇÔ¼öÆ÷ÀÎÅÍ·Î ¾ò¾î¿À°í // vector¿¡ push ÇÑ´Ù. myFunc = (char *(*)())dlsym(handle, "Read"); FuncPList.push_back(myFunc); } } } // 1ÃÊ °£°ÝÀ¸·Î ·ÎµùµÈ Ç÷¯±×ÀÎ ¸ðµâ·Î ºÎÅÍ, µ¥ÀÌÅ͸¦ Àоî¿Â´Ù. while(1) { for (int i = 0; i < FuncPList.size(); i++) { printf("%s",FuncPList[i]()); } printf("==============\n"); sleep(1); } return EXIT_SUCCESS; } ¸ðµâ ÇÁ·Î±×·¥
ÀÌ ÇÁ·Î±×·¥Àº dummy ÇÁ·Î±×·¥À¸·Î, °øÅë ÀÎÅÍÆäÀ̽º Æ÷¸ä¿¡ ¸Â´Â ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù. #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> char *rtvstr = NULL; int count; int Init() { rtvstr = (char *)malloc(80); count = 0; return 1; } char *Read() { sprintf(rtvstr, "%s=%d\n", count); count++; } int RowNum() { return 1; } int Close() { if (rtvstr != NULL) free(rtvstr); count = 0; }ÀÌ ÄÚµå´Â °øÀ¯¶óÀ̺귯¸®·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù. ¶óÀ̺귯¸®ÀÇ À̸§Àº libdummy.so ·Î ÇϰڴÙ. °øÀ¯¶óÀ̺귯¸®¸¦ ¸¸µå´Â ¹æ¹ýÀº ¶óÀ̺귯¸® ¸¸µé±â ¹®¼¸¦ Âü°íÇϱ⠹ٶõ´Ù.
ÀÌÁ¦ ¾Æ·¡¿Í °°Àº ¼³Á¤ÆÄÀÏ ¸¸µé°í, ½ÇÇàÇÏ¸é µÈ´Ù.
[PLUGIN] DUMMY=libdummy.so °á·Ð
µ¿Àû¶óÀ̺귯¸®¸¦ ÅëÇÑ È®Àå°¡´ÉÇÑ ÇÁ·Î±×·¥À» ¸¸µå´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¾Ë¾Æº¸¾Ò´Ù. ÀÌ °æ¿ì¿¡´Â µ¥ÀÌÅ͸¦ ´Ü¼øÇÏ°Ô Á¦ÇÑÇ߱⠶§¹®¿¡, ºñ±³Àû ¼Õ½±°Ô ÀÎÅÍÆäÀ̽º¸¦ ¼³°èÇÒ ¼ö ÀÖ¾úÁö¸¸ ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡ µµÀÔÇØ¼ »ç¿ëÇÒ¶§´Â XMLÀ» ÀÌ¿ëÇϰųª, µ¥ÀÌÅÍ Ã³¸® ÇÔ¼ö¸¦ ¸¸µé¾î¾ß ÇÏ´Â µî, Á»´õ º¹ÀâÇÏ°Ô ±¸ÇöµÉ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|