| ¹ã ¸æ λ Öà |
|
|
|
 |
| Õ¾ ÄÚ ËÑ Ë÷ |
|
|
|
 |
|
|
|
|
ÏÂÒ»´úϵͳÈÕÖ¾¹¤¾ß(syslog-ng)
À´Ô´£ºLinux¼¼ÊõÖмáÕ¾ µÈ¼¶£ºÄ¬Èϵȼ¶
·¢²¼ÓÚ2005-05-28 22:17 ±»¶Á5187´Î ¡¾×ÖÌ壺´ó ÖРС¡¿
|
|
1.syslog-ng¼ò½é
ÔÚUNIXϵͳµÄά»¤ÖУ¬¾³£»áºöÂÔϵͳʼþµÄ´¦Àí¡£¾³£¼ì²éϵͳÈÕÖ¾¶ÔÓÚ±£³ÖϵͳµÄ°²È«ºÍÕý³£ÔËÐÐÊÇÖÁ¹ØÖØÒªµÄ¡£µ«ÊÇ£¬ÏµÍ³ÈÕÖ¾ÖÐÓÐÌ«¶àµÄÔëÒô£¬Ò»Ð©²»ÊǺÜÖØÒªµÄÐÅÏ¢»áÑÚ¸ÇÖØÒªµÄÐÅÏ¢¡£Ä¿Ç°µÄ¹¤¾ßºÜÄÑÕç±ð³öϵͳ¹ÜÀíÕ߸ÐÐËȤµÄÐÅÏ¢¡£
Óû§¿ÉÒÔͨ¹ýÖ¸¶¨facility/priority£¬°ÑÏûÏ¢·¢µ½²»Í¬µÄµØ·½¡£ÏµÍ³Ô¤Ïȶ¨ÒåÁË12+8¸ö(mail¡¢news¡¢authµÈ)facility£¬°Ë¸ö²»Í¬µÄÓÅÏȼ¶(alertµ½debug)¡£
ÕâÆäÖдæÔÚÒ»¸öÎÊÌ⣬´óÁ¿µÄ³ÌÐòʹÓÃͬÑùµÄfacility(daemon)£¬°ÑÈÕÖ¾¶¼±£´æµ½Ò»¸öÎļþÖÐ(messages)£¬¼´Ê¹ËüÃǺÁÎÞ¹ØÁª¡£ÕâÑù¾ÍÔì³ÉÓû§ºÜÄÑɸѡ³ö×Ô¼º¸ÐÐËȤµÄ¶«Î÷¡£
µÚ¶þ¸öÎÊÌâÊÇ£¬´ó¶àÊýµÄ³ÌÐòÎÞ·¨¸Ä±äÈÕÖ¾ÅäÖã¬Ö»ÄÜÐÞ¸ÄÈí¼þµÄÔ´´úÂë¡£
Òò´Ë£¬Ê¹ÓÃfacility×÷Ϊ¹ýÂ˲»ÊÇÒ»¸öºÃ°ì·¨¡£×îºÃÄܹ»ÓÐһЩruntimeÑ¡ÏʹÓÃÕâЩѡÏîÖ¸¶¨ÈÕÖ¾facility£¬½¨Á¢ÐµÄfacility¡£
syslog-ngµÄÒ»¸öÉè¼ÆÔÔò¾ÍÊǽ¨Á¢¸üºÃµÄÏûÏ¢¹ýÂËÁ£¶È¡£syslog-ngÄܹ»½øÐлùÓÚÄÚÈݺÍÓÅÏÈȨ/facilityµÄ¹ýÂË¡£ÁíÒ»¸öÉè¼ÆÔÔòÊǸüÈÝÒ×½øÐв»Í¬·À»ðÇ½Íø¶ÎµÄÐÅϢת·¢£¬ËüÖ§³ÖÖ÷»úÁ´£¬¼´Ê¹ÈÕÖ¾ÏûÏ¢¾¹ýÁËÐí¶à¼ÆËã»úµÄת·¢£¬Ò²¿ÉÒÔÕÒ³öÔ·¢Ö÷»úµØÖ·ºÍÕû¸öת·¢Á´¡£×îºóµÄÒ»¸öÉè¼ÆÔÔò¾ÍÊǾ¡Á¿Ê¹ÅäÖÃÎļþÇ¿´óºÍ¼ò½à¡£
2.ÏûϢ·¾¶
Ò»¸öÏûϢ·¾¶ÊÇÓÉÒ»¸ö»òÕß¶à¸öÈÕÖ¾ÏûÏ¢Ô´¡¢Ò»¸ö»òÕß¶à¸ö¹ýÂ˹æÔòÒÔ¼°Ò»¸ö»òÕß¶à¸öÈÕÖ¾ÏûϢĿµÄ×é³ÉµÄ¡£À´×Ôij¸öÈÕÖ¾ÏûÏ¢Ô´µÄÏûÏ¢½øÈësyslog-ng£¬Èç¹ûÏûÏ¢ÃüÖÐijÌõ¹æÔò£¬syslog-ng¾Í°ÑËü·¢Ë͵½¶ÔÓ¦µÄÈÕÖ¾ÏûϢĿµÄ¡£
ÏûÏ¢Ô´
һЩÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷(source driver)×é³ÉÒ»¸öÏûÏ¢Ô´£¬ÕâЩÇý¶¯Æ÷ʹÓøø¶¨µÄ·½·¨ÊÕ¼¯ÈÕÖ¾ÏûÏ¢¡£Æ©È磬ÓеÄsyslog()ϵͳµ÷ÓÃʹÓõÄAF_UNIX¡¢SOCK_STREAM·ç¸ñµÄÌ×½Ó×ÖÔ´Çý¶¯Æ÷¡£
ÔÚÅäÖÃÎļþÖУ¬Äã¿ÉÒÔʹÓÃÏÂÃæµÄÓï·¨ÉùÃ÷Ò»¸öÈÕÖ¾ÏûÏ¢Ô´£º
source <identifier> { source-driver(params); source-driver(params); ... };
identifierÊǸø¶¨ÏûÏ¢Ô´µÄΨһ±êÖ¾£¬µ«ÊÇÕâ¸ö±êÖ¾·û²»Äܺͱ£Áô×ÖÓгåÍ»¡£
Äã¿ÉÒÔ¿ØÖÆÊ¹ÓÃÄĸöÇý¶¯Æ÷À´ÊÕ¼¯ÈÕÖ¾ÏûÏ¢£¬Òò¶øÄãÐèÒªÖªµÀÄãµÄϵͳºÍËûµÄÄÚ²¿syslogdÊÇÈçºÎͨѶµÄ¡£ÏÂÃæ½éÉÜÒ»ÏÂijЩƽ̨ÖУ¬syslogdÊÇÈçºÎ¹¤×÷µÄ¡£
Linux Ò»¸ö½Ð×÷/dev/logµÄSOCK_STREAM unixÌ×½Ó×Ö BSD Ò»¸ö½Ð×÷/var/run/logµÄSOCK_STREAM unixÌ×½Ó×Ö Solaris(2.5»òÒÔÏÂ) Ò»¸ö½Ð×ö/dev/logµÄSVR4·ç¸ñµÄSTREAMSÉ豸 solaris(2.6»òÒÔÉÏ) ³ýÁË2.6֮ǰ°æ±¾Ê¹ÓõÄSTREAMSÉ豸֮Í⣬ʹÓÃÁËÒ»ÖÖеĶàÏß³ÌIPC·½·¨µ÷ÓÃÃÅ¡£Ä¬ÈÏÇé¿öÏ£¬Õâ¸öµ÷ÓÃÃÅÊÇ/etc/syslog_door£¬ÓÉsyslogdʹÓá£
ÔÚsyslog-ngÖУ¬Ã¿¸ö¿ÉÄܵÄͨѶ»úÖÆ¶¼ÓжÔÓ¦µÄÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷¡£ÀýÈ磺Èç¹ûÒª´ò¿ªÒ»¸öSOCK_DGRAM·ç¸ñµÄUNIXÌ×½Ó×Ö½øÐÐͨѶ£¬Äã¾Í»áÓõ½unix-dgramÇý¶¯Æ÷£¬Í¬ÑùSOCK_STREAMʽµÄͨѶÐèÒªunix-streamÇý¶¯Æ÷¡£
Àý2-1.LinuxÖеÄÒ»¸öÔ´Ö¸Áî
source src { unix-stream("/dev/log"); internal(); udp(ip(0.0.0.0) port(514)); };
Çý¶¯Æ÷¿ÉÒÔʹÓòÎÊý£¬²ÎÊýÓÐЩÊDZØÐèµÄ£¬ÓÐЩÊÇ¿ÉÑ¡µÄ¡£±ØÐèµÄ²ÎÊýÒ»°ãÔÚÇ°Ãæ¡£ÉÏÃæµÄÖ¸ÁîÖУ¬/dev/log¾ÍÊDZØÐè²ÎÊý¡£
ÏÂÃæÊÇ¿ÉÓõÄÔ´Çý¶¯Æ÷£º
internal syslog-ngÄÚ²¿²úÉúµÄÏûÏ¢ unix-stream ´ò¿ªÖ¸¶¨µÄSOCK_STREAMģʽµÄunixÌ×½Ó×Ö£¬½ÓÊÕÈÕÖ¾ÏûÏ¢ unix-dgram ´ò¿ªÖ¸¶¨µÄSOCK_DGRAMģʽµÄunixÌ×½Ó×Ö£¬½ÓÊÕÈÕÖ¾ÏûÏ¢ file ´ò¿ªÖ¸¶¨µÄÎļþ¶ÁÈ¡ÈÕÖ¾ÐÅÏ¢ pipe,fifo ´ò¿ªÖ¸¶¨µÄ¹ÜµÀ»òÕßFIFOÉ豸£¬¶ÁÈ¡ÈÕÖ¾ÐÅÏ¢ tcp ÔÚÖ¸¶¨µÄTCP¶Ë¿Ú½ÓÊÕÈÕÖ¾ÏûÏ¢ udp ÔÚÖ¸¶¨µÄUDP¶Ë¿Ú½ÓÊÕÈÕÖ¾ÏûÏ¢ sun-stream(s) ÔÚsolarisϵͳÖУ¬´ò¿ªÒ»¸ö(¶à¸ö)Ö¸¶¨µÄSTREAMÉ豸£¬´ÓÆäÖжÁÈ¡ÈÕÖ¾ÏûÏ¢
ÔÚÏÂÒ»ÕÂÖУ¬ÎÒÃǽ«Ïêϸ½éÉÜÿ¸öÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷¡£
¹ýÂËÆ÷
ÔÚsyslog-ngÖУ¬¹ýÂËÆ÷Ö´ÐÐÈÕ־·ÓÉ¡£Äã¿ÉÒÔʹÓÃsyslog-ngµÄÄÚ²¿º¯Êý±àд²¼¶û±í´ïʽ£¬À´¾ö¶¨ÈÕÖ¾ÐÅÏ¢ÊÇ·ñͨ¹ý¡£
¹ýÂËÆ÷Ò²¶¼ÓÐΨһµÄ±êÖ¾·û£¬Óï·¨ÈçÏ£º
fileter <identifier> { expression;};
±í´ïʽÖпÉÒÔ°üº¬Âß¼²Ù×÷·û(and¡¢or¡¢not)ºÍº¯Êý¡£
Àý2-2.Ò»¸öËÑË÷À´×ÔblurpÖ÷»ú£¬°üº¬denyµÄÈÕÖ¾ÏûÏ¢µÄ¹ýÂËÖ¸Áî
filter f_blurp_deny { host("blurp") and match("deny"); };
ÏÂÃæÊÇsyslog-ngµÄ¹ýÂ˺¯Êý£º
facility() ¸ù¾ÝÉ豸ѡÔñÈÕÖ¾ÏûÏ¢ level()»òÕßpriority() ¸ù¾ÝÓÅÏȼ¶Ñ¡ÔñÈÕÖ¾ÏûÏ¢ program() ÈÕÖ¾ÏûÏ¢µÄ³ÌÐòÃûÊÇ·ñÆ¥ÅäÒ»¸öÕýÔò±í´ïʽ host() ÈÕÖ¾ÏûÏ¢µÄÖ÷»úÃûÊÇ·ñºÍÒ»¸öÕýÔò±í´ïʽƥÅä match() ¶ÔÈÕÖ¾ÏûÏ¢µÄÄÚÈݽøÐÐÕýÔòÆ¥Åä filter() µ÷ÓÃÁíÒ»Ìõ¹ýÂ˹æÔò²¢ÅжÏËüµÄÖµ
¹ØÓÚÕâЩº¯Êý£¬ºóÃæµÄÕ½ÚÖн«ÓиüΪÏêϸµÄ½éÉÜ¡£
ÓÐÒ»¸öÌØÊâµÄ¹ýÂËÆ÷±êÖ¾·ûDEFAULT£¬ÓÃÓÚ²¶»ñËùÓÐûÓд¦ÀíµÄÈÕÖ¾ÏûÏ¢¡£ÀýÈ磺
options { keep_hostname(yes); };
source src { unix-stream("proba2"); internal(); };
destination ftpd { file("ftplog"); }; destination named { file("namedlog"); }; destination daemon { file("daemonlog"); };
filter f_ftpd { match("ftp"); }; filter f_named { match("named"); }; filter f_daemon { facility(daemon); };
log { source(src); filter(f_ftpd); destination(ftpd); }; log { source(src); filter(f_named); destination(named); }; log { source(src); filter(f_daemon); filter(DEFAULT); destination(daemon); };
ÔÚÕâ¸öÀý×ÓÖУ¬default¹ýÂËÆ÷²¶»ñËùÓÐûÓб»f_ftpdºÍf_named¹ýÂËÆ÷²¶»ñµÄfacilityÊÇdaemonµÄÈÕÖ¾ÏûÏ¢¡£
ÈÕÖ¾ÏûϢĿµÄ
destinationÖ¸¶¨Æ¥Åä¹ýÂ˹æÔòµÄÈÕÖ¾ÏûÏ¢µÄÈ¥´¦¡£ºÍÈÕÖ¾ÏûÏ¢Ô´ÀàËÆ£¬ÈÕÖ¾ÏûϢĿµÄ¿ÉÒÔ°üÀ¨Ò»Ð©Ä¿µÄÇý¶¯Æ÷£¬Ö¸¶¨ÈÕÖ¾µÄÅÉ·¢·½Ïò¡£ÄãÐèҪʹÓÃÈçÏÂÓï·¨À´ÉùÃ÷ÈÕÖ¾ÏûϢĿµÄ£º
destination <identifier> { destination-driver(params); destination-driver(params); ... };
ÏÂÃæÊÇsyslog-ngÖ§³ÖµÄÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷£º
file ÈÕÖ¾ÏûϢдµ½Ö¸¶¨µÄÎļþ fifo,pipe °ÑÈÕÖ¾ÏûϢдµ½Ö¸¶¨µÄ¹ÜµÀ unix-stream °ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½¸ø¶¨µÄSOCK_STREAMÀàÐ͵ÄUNIXÌ×½Ó×Ö(Linux) unix-dgram °ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½¸ø¶¨µÄSOCK_DGRAMÀàÐ͵ÄUNIXÌ×½Ó×Ö(BSD) udp °ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½Ö¸¶¨Ö÷»úµÄUDP¶Ë¿Ú TCP °ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½Ö¸¶¨Ö÷»úµÄTCP¶Ë¿Ú usertty Èç¹ûÓû§µÇ¼£¬°ÑÈÕÖ¾·¢Ë͵½Ö¸¶¨µÄÖÕ¶Ë program fork²¢Æô¶¯Ö¸¶¨µÄ³ÌÐò£¬°ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½Õâ¸ö½ø³ÌµÄ±ê×¼Êä³ö¡£
ÏêÇéÇë²Î¿¼ÏÂÃæµÄÕ½ڡ£
ÈÕ־·¾¶
Ç°ÃæµÄÕ½ÚÖУ¬ÎÒÃÇѧϰÁËÈçºÎ¶¨ÒåÏûÏ¢Ô´¡¢¹ýÂËÆ÷ºÍÏûϢĿµÄ¡£ÏÖÔÚÎÒÃÇÒª°ÑÕâЩ½áºÏÆðÀ´ÐγÉÒ»ÌõÍêÕûµÄÖ¸Áî¡£·²ÊÇÀ´Ô´ÓÚÖ¸¶¨µÄÏûÏ¢Ô´£¬Æ¥ÅäËùÓÐÖ¸¶¨µÄ¹ýÂËÆ÷£¬²¢Ë͵½Ö¸¶¨µÄµØÖ·¡£ÆäÓï·¨ÈçÏ£º
log { source(s1); source(s2); ... filter(f1); filter(f2); ... destination(d1); destination(d2); ... };
ÈÕ־·¾¶ÖеijÉÔ±ÊÇ˳ÐòÖ´Ðеġ£
Ñ¡Ïî
Äã¿ÉÒÔͨ¹ýÉèÖÃһЩѡÏîÀ´¸Ä±äsyslog-ngµÄÐÐΪ¡£ÉèÖÃÑ¡ÏîµÄÓï·¨Ò»°ãÊÇ£º
options { option1(params); option2(params); ... };
ÿ¸öÑ¡ÏîÒ²¿ÉÒÔÓÐ×Ô¼ºµÄ²ÎÊý¡£
ÒÔÏÂÊÇsyslog-ngÖ§³ÖµÄ²ÎÊý£º
Ãû×Ö ²ÎÊýÀàÐÍ ÃèÊö time_reopen() Êý×Ö Ò»¸ö¶Ï¿ªµÄÁ¬½ÓÖØÐÂÁ¬½Ó֮ǰÐèÒªµÈ´ýµÄʱ¼ä time_reap() Êý×Ö Ò»¸öÏÐÖõÄÄ¿±êÎļþ¹Ø±Õ֮ǰÐèÒªµÈ´ýµÄʱ¼ä sync_freq() Êý×Ö ÔÚдÈëÎļþ֮ǰ£¬¿ÉÒÔ»º³åµÄÈÕÖ¾ÏûÏ¢ÐÐÊý mark_freq() Êý×Ö Ä¿Ç°ÉÐδʵÏÖ log_fifo_size() Êý×Ö Êä³ö¶ÓÁеÄÐÐÊý chain_hostnames() yes/no ´ò¿ª/¹Ø±ÕÖ÷»úÃûÁ´(ÓÃÓÚÈÕ־ת·¢) use_time_recvd() yes/no ʹÓÃÊÕµ½ÈÕÖ¾ÏûÏ¢µÄʱ¼ä£¬²»ÓÃÈÕÖ¾ÏûÏ¢ÖÐÖ¸¶¨µÄʱ¼ä use_dns() yes/no ´ò¿ª/¹Ø±ÕDNS²éѯ¹¦ÄÜ¡£ÒòΪDNS²éѯÎÞ·¨·µ»Ø»áÔì³Ésyslog-ng´¦ÓÚ×èÈû״̬£¬´Ó¶øÔì³É¾Ü¾ø·þÎñ¹¥»÷¡£ÎªÁ˱ÜÃâÕâÖÖÇé¿öµÄ³öÏÖ£¬Ó¦¸ÃʹÓ÷À»ðǽÑϸñ±£»¤Ê¹ÓÃsyslog-ngµÄÍøÂç½Úµã£¬²¢È·ÈÏsyslog-ngʹÓõÄËùÓÐÖ÷»ú¶¼ÊÇ¿ÉÒÔ½âÎöµÄ¡£ use_fqdn() yes/no ʹÓÃÍêÕûµÄÓòÃû gc_idle_threshold() Êý×Ö µ±syslog-ng¿ÕÏÐʱ£¬ÉèÖÃÆä½øÈëÀ¬»øÐÅÏ¢ÊÕ¼¯×´Ì¬µÄ·§Öµ¡£Ò»µ©·ÖÅäµÄ¶ÔÏóÊý´ïµ½ÁËÕâ¸öÊý×Ö£¬syslog-ng¾ÍÆô¶¯À¬»øÐÅÏ¢ÊÕ¼¯×´Ì¬¡£Ä¬ÈÏÖµÊÇ1000¡£ gc_busy_threshold() Êý×Ö µ±syslog-ngæʱ£¬ÉèÖÃÆä½øÈëÀ¬»øÐÅÏ¢ÊÕ¼¯×´Ì¬µÄ·§Öµ¡£Ò»µ©·ÖÅäµÄ¶ÔÏóÊý´ïµ½Õâ¸öÊý×Ö£¬syslog-ng¾ÍÆô¶¯À¬»øÐÅÏ¢ÊÕ¼¯×´Ì¬¡£Ä¬ÈÏÖµÊÇ3000¡£
3.²Î¿¼
±¾Õ£¬½«Ïêϸ½éÉÜÅäÖÃÎļþÖÐʹÓõÄÇý¶¯Æ÷ºÍÑ¡Ïî¡£
ÏûÏ¢Ô´Çý¶¯Æ÷
internal()
ËùÓÐsyslog-ngÄÚ²¿²úÉúµÄÈÕÖ¾ÏûÏ¢¶¼À´×ÔÕâ¸öÈÕÖ¾ÏûÏ¢Ô´¡£Èç¹ûÄãÐèÒªsyslog-ng×ÔÉíɽ³ÇµÄ¾¯¸æ¡¢´íÎóºÍÌáÐÑÐÅÏ¢£¬¾ÍÐèÒªÔÚÅäÖÃÎļþÖмÓÈëÒÔÏÂÉùÃ÷£º
Declaration: internal()
Èç¹ûÕâ¸öÏûÏ¢Ô´Çý¶¯Æ÷ûÓб»ÒýÓã¬syslog-ng»áÏòÄãÊä³ö±¨¾¯ÐÅÏ¢¡£
Àý3-1.ʹÓÃinernal()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷
source s_local { internal(); };
unix-stream()ºÍunix-dgram()
ÕâÁ½¸öÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷±È½ÏÏàËÆ£¬¶¼´ò¿ªAF_UNIXÀàÐ͵ÄÌ×½Ó×Ö£¬ÔÚÌ×½Ó×ÖÉϼàÌýÈÕÖ¾ÏûÏ¢¡£unix-stream()Ö÷ÒªÓÃÔÚLinux£¬Ê¹ÓÃSOCK_STREAM²ÎÊý£¬ÊÇÃæÏòÁ¬½ÓµÄ£¬²»»áÔì³ÉÈÕÖ¾ÏûÏ¢µÄ¶ªÊ§£»unix-dgram()ÓÃÔÚBSDϵͳÉÏ£¬Ê¹ÓÃSOCK_DGRAM²ÎÊý£¬ÊÇÎÞÁ¬½ÓµÄ£¬Èç¹ûϵͳ¹ýÔØ£¬»áÔì³ÉÈÕÖ¾ÏûÏ¢¶ªÊ§¡£
ÔÚʹÓÃÃæÏòÁ¬½ÓµÄÐÒéʱ£¬ÎªÁ˱ÜÃâÔì³É¾Ü¾ø·þÎñ¹¥»÷£¬ÐèÒª¶Ôͬʱ½ÓÊܵÄÁ¬½ÓÊýÁ¿½øÐÐÏÐÖá£ÕâÓÉmax-connections()²ÎÊýʵÏÖ¡£
Declaration: unix-stream(filename [options]); unix-dgram(filename [options]);
ÒÔÏÂÑ¡Ïî¿ÉÒÔÓÃÓÚunix-streamºÍunix-dgramÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷µÄÉùÃ÷£º
Ãû×Ö ²ÎÊýÊý¾ÝÀàÐÍ ÃèÊö owner() ×Ö·û´® ÉèÖÃÌ×½Ó×ÖµÄuid£¬Ä¬ÈÏÊÇ£ºroot group() ×Ö·û´® ÉèÖÃÌ×½Ó×ÖµÄgid£¬Ä¬ÈÏÊÇ£ºroot perm() Êý×Ö ÉèÖÃȨÏÞÑÚÂë¡£°Ë½øÖÆÊý×ÖÒÔ0¿ªÍ·£¬ÀýÈ磺0755±íʾrwxr-xr-x¡£ keep-alive() yes/no µ±syslog-ngÖØÆô¶¯£¬Ñ¡ÔñÊÇ·ñ±£³ÖÁ¬½Ó£¬Ö»ÓÃÓÚunix-stream()¡£Ä¬ÈÏÊÇyes max-connections()Êý×Ö Í¬Ê±´ò¿ªµÄÁ¬½ÓµÄÊýÄ¿ÏÞÖÆ£¬Ö»ÓÃÓÚunix-stream()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷¡£Ä¬ÈÏÊÇ10¡£
Àý3-2.ʹÓÃunix-stream()ºÍunix-dgram()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷
source s_stream { unix-stream("/dev/log" max-connections(10)); }; source s_dgram { unix-dgram("/var/run/log"); };
tcp()ºÍudp()
ʹÓÃÕâÁ½¸öÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷£¬Äã¿ÉÒÔʹÓÃTCP»òÕßUDPÐÒé´ÓÍøÂçÉϽÓÊÜÈÕÖ¾ÏûÏ¢¡£
UDPÊÇÒ»ÖÖ¼òµ¥µÄÓû§Êý¾Ý±¨ÐÒ飬ʹÓÃÕâÖÖÐÒé¿ÉÄܻᷢÉúÈÕÖ¾ÏûÏ¢µÄ¶ªÊ§£¬¶øÇÒÕâÖÖÐÒéûÓÐÖØ´«»úÖÆ£»TCPÊÇÒ»ÖÖÃæÏòÁ¬½ÓµÄ´«Êä²ãÐÒ飬²»»áÔì³ÉÈÕÖ¾ÏûÏ¢µÄ¶ªÊ§¡£
ÕâÁ½ÖÖÏûÏ¢Ô´Çý¶¯Æ÷¶¼²»ÐèҪλÖòÎÊý¡£Ä¬ÈÏÇé¿öÏ£¬syslog-ng»á°ó¶¨µ½0.0.0.0:514£¬ÔÚËùÓÐÓÐЧµÄ¶Ë¿ÚÉϼàÌý¡£¿ÉÒÔʹÓÃlocalip()²ÎÊýÀ´ÏÞÖÆÆä½ÓÊÜÁ¬½ÓµÄ¶Ë¿Ú¡£
×¢Ò⣺514¶Ë¿ÚÊÇrshellʹÓõĶ˿ڣ¬Òò´ËÈç¹ûsyslog-logºÍrshellͬʱʹÓã¬ÄãÐèҪΪsyslog-ngÑ¡ÔñÁíÍâµÄ¶Ë¿Ú¡£
Declaration: tcp([options]); udp([options]);
ÏÂÃæÊÇudp()ºÍtcp()¿ÉÓõÄÑ¡Ï
Ñ¡ÏîÃû Êý¾ÝÀàÐÍ ÃèÊö ĬÈÏÖµ ip»òÕßiplocalip ×Ö·û´® °ó¶¨µÄIPµØÖ· 0.0.0.0
udp()ºÍtcp()ʹÓÃʾÀý£º
source s_tcp { tcp(ip(127.0.0.1) port(1999); max-connections(10); }; source s_udp { udp(); };
file()
ͨ³££¬Äں˻á°Ñ×Ô¼ºµÄÏûÏ¢Ë͵½Ò»¸öÌØÊâµÄÎļþ(BSDϵͳÊÇ/dev/kmsg£¬LinuxϵͳÊÇ/proc/kmsg)£¬Òò´ËÄãÐèҪʹÓÃfile()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷À´Ö¸¶¨Õâ¸öÎļþ¡£ÔÚLinuxÖУ¬klogd»á¶ÁÈ¡ÄÚºËÐÅÏ¢£¬²¢×ª·¢µ½syslogd½ø³Ì£¬klogdÔÚת·¢Ö®Ç°»á¶ÔÄÚºËÏûÏ¢½øÐд¦Àí£¬Ê¹ÓÃ/boot/System.mapÎļþÖеķûºÅÃû´úÌæÔÀ´µÄµØÖ·¡£Èç¹ûÄã²»ÐèÒªÕâÖÖ¹¦ÄÜ£¬¿ÉÒÔʹÓÃ-x²ÎÊýÔËÐÐklogd¡£
Declaration: file(filename);
file()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷ʾÀý£º
source s_file { file("/proc/kmsg"); };
pipe()
pipeÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷´ò¿ªÒ»¸öÃüÃû¹ÜµÀ£¬ÔÚÕâ¸öÃüÃû¹ÜµÀ¼àÌýÈÕÖ¾ÏûÏ¢¡£ÔÚHP-UXϵͳÖУ¬ËüÓÃÓÚÄÚ²¿ÈÕÖ¾ÏûÏ¢µÄ»ñµÃ¡£
Declaration: pipe(filename);
×¢ÒâÊ×ÏÈÄãÐèҪʹÓÃmkfifo½¨Á¢ÃüÃû¹ÜµÀ¡£
Àý3-6.ʹÓÃpipe()ÈÕÖ¾ÏûÏ¢Ô´Çý¶¯Æ÷
source s_pipe { pipe("/dev/log"); );
sun-streams()
solarisʹÓÃSTREAMS API°ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½syslogd½ø³Ì¡£Äã±ØÐëÔÚ±àÒësyslog-ngʱ¼ÓÈëÕâ¸öÌØÕ÷¡£
аæsolaris(>=2.51)ÖУ¬STREAMSʹÓÃÒ»¸öеÄIPCµ÷ÓÃÃÅÀ´Í¶µÝÈÕÖ¾ÏûÏ¢¡£syslog-ngÖ§³ÖÕâÖÖIPC»úÖÆ¡£
ÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷
ÈÕ־ĿµÄÇý¶¯Æ÷°ÑÈÕÖ¾ÏûÏ¢´Ósyslog-ngÊä³öµ½ÆäËüµØ·½£ºÒ»¸öÎļþ»òÕßÒ»¸öÍøÂçÌ×½Ó×Ö¡£
file()
fileÊÇsyslog-ng×îÖØÒªµÄÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷Ö®Ò»¡£Ê¹ÓÃËü£¬Äã¿ÉÒÔ°ÑÈÕÖ¾ÏûÏ¢¶¨Ïòµ½Ò»Ð©ÎļþÖС£
ÔÚÉèÖÃÈÕ־ĿµÄÎļþʱ£¬¿ÉÒÔʹÓú꣬´Ó¶øÊ¹ÓÃÒ»¸ö¼òµ¥µÄfileÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷¾Í¿ÉÒÔÉèÖúܶàÄ¿µÄÎļþ¡£ºÍPHP/PERLÒ»Ñù£¬ºêÒ²ÊÇÒÔ $¿ªÍ·¡£
Èç¹ûÎļþËùÔÚµÄĿ¼²»´æÔÚ£¬ÔòÓÉcreate_dirs()À´¾ö¶¨ÊÇ·ñ´´½¨Õâ¸öĿ¼¡£
¾¯¸æ£ºÓÉÓÚsyslog-ng±ØÐë¸ú×Ù½¨Á¢µÄÿ¸öÎļþ£¬Òò´Ë»áÏûºÄһЩÄÚ´æ¡£Èç¹ûÔÚ60ÃëÖÓÄÚ(Ò²¿ÉÒÔÓÉtime_reapÑ¡ÏîÉèÖÃ)ûÓÐеÄÏûÏ¢µ½´ïij¸öÎļþ£¬syslog-ng¾Í»á¹Ø±ÕÕâ¸öÎļþ£¬ÊÍ·ÅÕ¼ÓõÄ×ÊÔ´¡£Èç¹ûÄ¿µÄÎļþÊýºÍËùÐèÄڴ泬³öÈÕÖ¾·þÎñÆ÷µÄµÄÄÜÁ¦£¬¾Í»áÔì³É¾Ü¾ø·þÎñ¹¥»÷¡£
×îΣÏյĺêÊÇ $PROGRAM£¬Òò´ËÔÚ²»¿ÉÐŵĻ·¾³Öв»ÒªÊ¹ÓÃÕâ¸öºê¡£
ÒÔÏÂÊÇ¿ÉÒÔÓÃÓÚÀ©Õ¹fileµÄºê£º
HOST ÈÕÖ¾ÏûÏ¢µÄÔ´·¢Ö÷»úÃû¡£Èç¹ûÈÕÖ¾ÏûÏ¢´©¹ý¼¸¸öÖ÷»ú£¬²¢ÇÒchain_hostname()¹¦ÄÜÒѾ´ò¿ª£¬¾ÍʹÓõÚÒ»¸öÖ÷»úÃû¡£ FACILITY ÈÕÖ¾ÏûÏ¢À´×ÔµÄÈÕÖ¾É豸 PRIOPRITY/LEVEL ÈÕÖ¾ÏûÏ¢µÄÓÅÏȼ¶ PROGRAM ·¢ËÍÈÕÖ¾ÏûÏ¢µÄ³ÌÐò YEAR ·¢ËÍÈÕÖ¾ÏûÏ¢µÄÄê·Ý£¬Õâ¸öºê¼È¿ÉÒÔÖ¸¶¨ÈÕÖ¾ÏûÏ¢ËͳöµÄʱ¼ä£¬Ò²¿ÉÒÔÖ¸¶¨ÈÕÖ¾ÏûÏ¢ÊÕµ½µÄʱ¼ä¡£ÕâÓÉuse_time_recvd()Ñ¡Ïî¿ØÖÆ MONTH ·¢ËÍÈÕÖ¾ÏûÏ¢µÄÔÂ·Ý DAY ·¢ËÍÈÕÖ¾ÏûÏ¢µÄÈÕ×Ó HOUR ¹ËÃû˼Ò壬ºÙºÙ:) MIN ͬÉÏ SEC µ±È»ÊÇÃëÁË^_^
file()ÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷µÄÑ¡Ï
Ñ¡Ïî Êý¾ÝÀàÐÍ ÃèÊö ĬÈÏÖµ log_file_size() Êý×Ö Êä³öÎļþµÄÌõÄ¿Êý ʹÓÃÈ«¾ÖÉ趨 sync_freq() Êý×Ö µ±ÈÕÖ¾ÏûÏ¢´ïµ½Ò»¶¨ÊýÄ¿¾ÍдÈëÎļþ ʹÓÃÈ«¾ÖÉ趨 encrypt() yes/no ¸øÈÕÖ¾Îļþ¼ÓÃÜ Ê¹ÓÃÈ«¾ÖÉ趨 compress() yes/no ѹËõÈÕÖ¾Îļþ ʹÓÃÈ«¾ÖÉ趨 owner() ×Ö·û´® Ö¸¶¨ÈÕÖ¾ÎļþµÄËùÓÐÕß root group() ×Ö·û´® Ö¸¶¨ÈÕÖ¾ÎļþËùÓÐÕßµÄ×é root perm() Êý×Ö ½¨Á¢Ê±ÈÕÖ¾ÎļþµÄȨÏÞÑÚÂë 0600 dir_per() Êý×Ö ½¨Á¢Ä¿Â¼Ê±µÄȨÏÞÑÚÂë 0600 create_dirs() yes/no Èç¹ûĿ¼²»´æÔھͽ¨Á¢ no
pipe()
syslog-ngͨ¹ýpipe()ÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷°ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½/dev/xconsoleÖ®ÀàµÄÃüÃû¹ÜµÀ¡£
unix-stream()ºÍunix0dgram()
syslog-ngͨ¹ýÕâÁ½¸öÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷°ÑÈÕÖ¾ÏûÏ¢·¢Ë͵½Ò»¸öSOCK_STREAM»òÕßSOCK_DGRAMģʽµÄUNIXÌ×½Ó×Ö¡£
udp()ºÍtcp()
ʹÓÃTCP»òÕßUDPÐÒé°ÑÈÕÖ¾ÏûÏ¢Ë͵½±¾µØÍøÂçÉÏ»òÕßinternetÉϵÄÁíÍâµÄÖ÷»ú¡£
usertty()
syslog-ngʹÓÃÕâ¸öÈÕÖ¾ÏûϢĿµÄÇý¶¯Æ÷°ÑÈÕÖ¾ÏûÏ¢Ë͵½Ò»¸öµÇ¼Óû§Ê¹ÓõÄÖÕ¶Ë¡£
program()
program()Çý¶¯Æ÷fork³öÒ»¸ö½ø³Ì£¬Ê¹Óøø¶¨µÄ²ÎÊýÖ´ÐÐÒ»¸öÌØ¶¨µÄ³ÌÐò£¬È»ºó°ÑÈÕÖ¾ÏûÏ¢Ë͵½Õâ¸ö½ø³ÌµÄ±ê×¼ÊäÈëÉ豸¡£
4.ÓÅ»¯syslog-ng
syslog-ngµÄĬÈÏÉèÖÃÊÇÕë¶Ôµ¥·þÎñÆ÷»òÕß¹¤×÷Õ¾µÄ£¬¶ø¶ÔÓÚÒ»¸öÍøÂçµÄÖÐÑëÈÕÖ¾Ö÷»úÈ´Ô¶Ô¶²»¹»¡£Òò´Ë£¬ÐèÒª¶ÔÆä½øÐÐһЩµ÷ÕûºÍÓÅ»¯¡£
ÉèÖÃÀ¬»øÊÕ¼¯²ÎÊý
syslog-ngÓÐ×Ô¼ºµÄÀ¬»øÊÕ¼¯Æ÷£¬¶øÇÒÒ»µ©½øÈëÀ¬»øÊÕ¼¯×´Ì¬¾Í²»ÔÙ½ÓÊÜÈÕÖ¾ÏûÏ¢¡£´Ó¶øÔì³É·ÇÁ¬½ÓµÄ´«ÊäÐÒéµÄÐÅÏ¢¶ªÊ§¡£Òò´Ë£¬ÐèÒª¶Ôsyslog-ngµÄÀ¬»øÊÕ¼¯×´Ì¬½øÐпØÖÆ£¬Äã¿ÉÒÔͨ¹ýÒÔÏÂÁ½¸öÑ¡ÏîÀ´¿ØÖÆÆäÀ¬»øÊÕ¼¯×´Ì¬¡£
gc_idle_threshold()
Õâ¸öÑ¡ÏîÄܹ»ÉèÖÃÀ¬»øÊÕ¼¯Æ÷ÔÚsyslog-ng´¦ÓÚ¿ÕÏÐ״̬ʱµÄ·§Öµ¡£Èç¹û·ÖÅäµÄµÄ¶ÔÏó´ïµ½Õâ¸öÊý×Ö£¬¶øÇÒϵͳ´¦ÓÚ¿ÕÏÐ״̬(100msecÄÚûÓÐÈÕÖ¾ÏûÏ¢µ½´ï)£¬syslog-ng¾ÍÆô¶¯À¬»øÊÕ¼¯Æ÷¡£´Ëʱϵͳ´¦ÓÚ¿ÕÏÐ״̬£¬Òò´Ë»ù±¾²»»áÔì³ÉÈÕÖ¾ÐÅÏ¢µÄ¶ªÊ§¡£Õâ¸öÖµÓ¦¸Ã±È½ÏС£¬²»¹ýÒª´óÓÚÒÑ·ÖÅä¶ÔÏóµÄ×îСֵ¡£ÒÑ·ÖÅä¶ÔÏóµÄ×îСֵȡ¾öÓÚÄãµÄÅäÖã¬Ò²¿ÉÒÔͨ¹ý-vÃüÁîÐвÎÊýÖ¸¶¨¡£
gc_busy_threshold()
Èç¹ûsyslog-ngÕýæÓÚ½ÓÊÜÈÕÖ¾ÏûÏ¢(ÈÕÖ¾ÏûÏ¢µÄ¼ä¸ôСÓÚ100msec)£¬ÎªÁË·ÀÖ¹Æä³ÔµôËùÓÐÄڴ棬ҲӦ¸ÃÔËÐÐÀ¬»øÊÕ¼¯Æ÷¡£Õâ¸öÖµÓ¦¸Ã±È½Ï¸ß£¬ÒÔ±ãÔÚÕý³£Çé¿öϲ»´ò¶ÏÈÕÖ¾ÏûÏ¢µÄ½ÓÊÕ¡£
ÉèÖÃÊä³ö¶ÓÁеĴóС
ΪÁË·ÀÖ¹·¢ËÍÈÕÖ¾µÄdaemon³ÌÐò×èÈû£¬syslog-ngÒ»Ö±ÔÚ¶ÁÈ¡ÆäÏòÄÚµÄÈÕ־ͨµÀ¡£Èç¹ûÊä³ö¶ÓÁÐÒÑÂú£¬¾Í¿ÉÄÜÔì³ÉÈÕÖ¾ÏûÏ¢µÄ¶ªÊ§¡£Òò´Ë£¬ÉèÖÃÊä³ö¶ÓÁеĴóС·Ç³£ÖØÒª£¬Äã¿ÉÒÔÉèÖÃÈ«¾ÖÊä³ö¶ÓÁеĴóС£¬Ò²¿ÉÒÔΪÿ¸öÈÕÖ¾ÏûÏ¢Çý¶¯Æ÷ÉèÖÃÊä³ö¶ÓÁеĴóС¡£
options { log_fifo_size(1000); };
»òÕß
destination d_dmessages { file("/var/log/messages" log_fifo_size(1000); };
Êä³ö¶ÓÁеĴóСӦ¸ÃºÏÀí£¬Õâ¶ÔÓÚ´óÁ¿µÄÈÕÖ¾ÏûÏ¢Ó¿À´ÌرðÖØÒª¡£Èç¹û·äÓµ¶øÖÁµÄÈÕÖ¾ÐÅÏ¢Õ¼¾ÝÁËÄ¿±êͨµÀµÄËùÓдø¿í£¬syslog-ngÄܹ»°ÑÈÕÖ¾ÏûÏ¢ÏûÏ¢±£´æµ½Êä³ö¶ÓÁÐÖУ¬µÈ¸ß·å¹ýÈ¥ÔÙ·¢³ö¡£
µ±È»£¬syslog-ng²»ÄܲâÊÔÄãµÄÍøÂç´ø¿í£¬Òò´ËÈç¹ûÄ¿µÄÖ÷»úÔÚÒ»¸öÔëÒôºÜ´óµÄÍøÂçÉÏ£¬¶øÇÒÈÕÖ¾Á÷Á¿³¬¹ýÍøÂç´ø¿í£¬syslog-ngÒ²ÎÞÄÜΪÁ¦¡£
ÉèÖÃͬ²½(sync)²ÎÊý
syslog-ngÒ»°ãÏȶÔÈÕÖ¾ÏûÏ¢½øÐлº´æ¡£µ±´ïµ½Ò»¶¨µÄÊýÁ¿£¬¾ÍдÈë´ÅÅÌ¡£×¢Òâsyslog-ngÊǶÔÿÌõÈÕÖ¾ÏûÏ¢·Ö±ðʹÓÃwrite()ϵͳµ÷Ó㬶ø²»ÊÇ³ÉÆ¥Ð´Èë(why?I can't understand*_*)¡£
|
Ïà¹Ø×¨Ì⣺ÔÝÎÞÏà¹Ø×¨Ìâ
ÉÏһƪ£ºÔõÑù±ä¸üÊÕÈ¡µÄÓʼþµÄĬÈϴ洢λÖà ÏÂһƪ£º³õѧÕß°²×°RPM°ü¿ìËÙÓ¦¼±ÊÖ²á
|
¹²ÓÐÆÀÂÛ 0 Ìõ ÍøÓÑÆÀ·Ö ²é¿´È«²¿
|
|
|