±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚinfoq£¬ÎÄÕÂÖ÷Òª´ÓһЩ¼òµ¥½éÉÜ£¬¼Ü¹¹¼°ÅäÖ÷½·¨£¬ÔõôʹÓõȵȷ½Ãæ½éÉܵġ£
|
|
Ò»¡¢¼¯ÖÐʽÈÕÖ¾
ÈÕÖ¾¿É·ÖΪϵͳÈÕÖ¾¡¢Ó¦ÓÃÈÕÖ¾ÒÔ¼°ÒµÎñÈÕÖ¾£¬ÏµÍ³ÈÕÖ¾¸øÔËάÈËԱʹÓã¬Ó¦ÓÃÈÕÖ¾¸øÑз¢ÈËԱʹÓã¬ÒµÎñÈÕÖ¾¸øÒµÎñ²Ù×÷ÈËԱʹÓá£ÎÒÃÇÕâÀïÖ÷Òª½²½âÓ¦ÓÃÈÕÖ¾£¬Í¨¹ýÓ¦ÓÃÈÕÖ¾À´Á˽âÓ¦ÓõÄÐÅÏ¢ºÍ״̬£¬ÒÔ¼°·ÖÎöÓ¦ÓôíÎó·¢ÉúµÄÔÒòµÈ¡£
Ëæ×ÅϵͳµÄÈÕÒæ¸´ÔÓ£¬´óÊý¾Ýʱ´úµÄÀ´ÁÙ£¬ÐèÒª¼¸Ê®ÉõÖÁÉϰŲ̀µÄ·þÎñÆ÷Êdz£ÓеÄÊ£¬Òò´ËÆÈÇÐÐèÒªÓÐÒ»Ì×Õë¶ÔÈÕÖ¾¡¢ÇÒÄܹ»¼¯ÖÐʽ¹ÜÀíµÄ²úÆ·¡£ELK
¾ÍʵÏÖÁ˼¯ÖÐʽÈÕÖ¾¹ÜÀíÆ½Ì¨£¬¸Ãƽ̨ͳһº¸ÇÁË·Ö²¼Ê½ÈÕÖ¾ÊÕ¼¯¡¢¼ìË÷¡¢Í³¼Æ¡¢·ÖÎöÒÔ¼°¶ÔÈÕÖ¾ÐÅÏ¢µÄ Web
¹ÜÀíµÈ¼¯Öл¯¹Ü¿Ø¡£
1.1¡¢ELK ¼ò½é
ELK ÊÇ Elasticsearch¡¢Logstash¡¢Kibana µÄ¼ò³Æ£¬ÕâÈýÌ׿ªÔ´¹¤¾ß×éºÏÆðÀ´ÄܴһÌ×Ç¿´óµÄ¼¯ÖÐʽÈÕÖ¾¹ÜÀíÆ½Ì¨¡£
Elasticsearch ÊǸö¿ªÔ´µÄ·Ö²¼Ê½ËÑË÷ÒýÇæ£¬ÌṩËÑË÷¡¢·ÖÎö¡¢´æ´¢Êý¾ÝÈý´ó¹¦ÄÜ¡£ËüµÄÌØµãÓУº·Ö²¼Ê½¡¢×Ô¶¯·¢ÏÖ¡¢Ë÷Òý×Ô¶¯·ÖƬ¡¢Ë÷Òý¸±±¾»úÖÆ¡¢RESTful
·ç¸ñ½Ó¿Ú¡¢¶àÊý¾ÝÔ´ÒÔ¼°×Ô¶¯ËÑË÷¸ºÔصȡ£
Logstash ÊÇÒ»¸ö¿ªÔ´µÄÓÃÀ´ÊÕ¼¯¡¢½âÎö¡¢¹ýÂËÈÕÖ¾µÄ¹¤¾ß¡£Ö§³Ö¼¸ºõÈκÎÀàÐ͵ÄÈÕÖ¾£¬°üÀ¨ÏµÍ³ÈÕÖ¾¡¢ÒµÎñÈÕÖ¾ºÍ°²È«ÈÕÖ¾¡£Ëü¿ÉÒÔ´ÓÐí¶àÀ´Ô´½ÓÊÕÈÕÖ¾£¬ÕâЩÀ´Ô´Ö÷Òª°üÀ¨
Syslog¡¢ÏûÏ¢´«µÝ£¨ÀýÈç RabbitMQ£©ºÍ Filebeat£»Äܹ»ÒÔ¶àÖÖ·½Ê½Êä³öÊý¾Ý£¬ÕâЩ·½Ê½Ö÷Òª°üÀ¨µç×ÓÓʼþ¡¢WebSockets
ºÍ Elasticsearch¡£
Kibana ÊÇÒ»¸ö»ùÓÚ Web µÄÓѺÃͼÐνçÃæ£¬ÓÃÓÚËÑË÷¡¢·ÖÎöºÍ¿ÉÊÓ»¯´æ´¢ÔÚ Elasticsearch
ÖеÄÊý¾Ý¡£ËüÀûÓà Elasticsearch µÄ RESTful ½Ó¿ÚÀ´¼ìË÷Êý¾Ý£¬²»½öÔÊÐíÓû§¶¨ÖÆÒDZí°åÊÓͼ£¬»¹ÔÊÐíËûÃÇÒÔÌØÊâµÄ·½Ê½²éѯ¡¢»ã×ܺ͹ýÂËÊý¾Ý¡£
1.2¡¢ELK µÄ¼Ü¹¹
ÏÂͼÊǼ¯ÖÐʽÈÕÖ¾¹ÜÀí ELK µÄ¼Ü¹¹Í¼¡£³öÓÚÐÔÄܵĿ¼ÂÇ£¬Ñ¡Ôñ²ÉÓÃÁË Beats+EK µÄÐÎʽÀ´×éºÏ´î½¨¼¯ÖÐʽÈÕÖ¾¹ÜÀíϵͳ¡£

ELK ¼Ü¹¹
¶þ¡¢ÅäÖ÷½·¨
2.1¡¢Elasticsearch
Elasticsearch ²¿ÊðÍê³Éºó£¬ÐèÒª¸ü¸Ä elasticsearch.yml ÅäÖÃÎļþÖеÄÖ÷ÒªÊôÐÔ£ºcluster.name¡¢node.name¡¢network.host¡¢discovery.zen.ping.unicast.hosts¡£ÆäÖУ¬µ±²¿Êð
Elasticsearch ʱÊÇÒÔ¼¯ÈºÄ£Ê½²¿ÊðµÄ£¬ÄÇô discovery.zen.ping.unicast.hosts
Õâ¸öÊôÐԲŻáÐèÒª±»ÅäÖá£
2.2¡¢Logstash
ͨ¹ýÅäÖà filebeat-pipeline.conf ÎļþÖÐµÄ Input¡¢Filter£¨¿ÉÑ¡£©ºÍ
Output À´Íê³É¶ÔÊý¾ÝµÄ²É¼¯¡¢¹ýÂ˺ÍÊä³ö£¬ÈçÏÂͼËùʾ£º

Logstash ÅäÖÃ
È»ºóÒÔ filebeat-pipline.conf ÎļþÆôÓà Logstash ·þÎñ£¬ÈçÏÂͼËùʾ£º

ÆôÓÃ Logstash ·þÎñ
±¸×¢£ºÓÉÓÚ²ÉÓõÄÊÇ Beats+EK Õâ¸ö·½°¸À´ÊµÏÖ¼¯ÖÐʽÈÕÖ¾¹ÜÀí£¬ËùÒÔ²»ÐèÒªÅä Logstash¡£
2.3¡¢Kibana
ͨ¹ý¸ü¸Ä kibana.yml ÅäÖÃÎļþÄÚÈÝ£¬ÓÃÀ´Á¬½ÓÕýÈ·µÄ Elasticsearch ·þÎñµØÖ·£¬Í¨³£Ö»ÐèÒªÅäÖÃ
elasticsearch.url ÊôÐÔ¼´¿É£¬Çë¼ûÏÂͼµÄµÚÒ»¸öͼ¡£ÅäÖÃÍê³Éºó£¬Ö´ÐС¾bin/kibana
&¡¿ÃüÁîÆôÓà Kibana ·þÎñ£¬Çë¼ûÏÂͼµÄµÚ¶þ¸öͼ¡£×îºó¾Í¿ÉÒÔÔÚä¯ÀÀÆ÷Öдò¿ª Kibana
¹ÜÀíÒ³Ãæ£¨·ÃÎʵØÖ·£ºhttp://139.198.13.12:4800/£©À´²é¿´ÈÕÖ¾¡£

Kibana µÄÅäÖÃ˵Ã÷

ÆôÓÃ Kibana ·þÎñ
2.4¡¢Filebeat
filebeat.yml ÅäÖÃÎļþÄÚÈÝÖ÷Òª°üº¬ Filebeat¡¢Output¡¢Shipper£¨¿ÉÑ¡£©¡¢Logging£¨¿ÉÑ¡£©ËĴ󲿷֣¬ÆäÖÐ
Filebeat Ö÷Òª¶¨Òå¼à¿ØµÄÈÕÖ¾ÎļþÐÅÏ¢£¬Output Ö÷ÒªÅäÖÃÈÕÖ¾Êý¾ÝµÄÊä³öÄ¿±ê¡£
filebeat.yml ÎļþÖУ¬Ö÷ÒªÊôÐÔÖµµÄÃüÃû¹æ·¶ÈçÏ£º
fields.AppID µÄÃüÃû¹æ·¶ÊÇ{AppID}¡£
fields.AppName µÄÃüÃû¹æ·¶ÊÇ{²úÆ·ÏßÓ¢ÎÄÃû³Æ}.{ÏîĿӢÎÄÃû³Æ}£¨Èç¹ûÏîĿӢÎÄÃû³ÆÓÉ
2 ¸ö»ò 2 ¸öÒÔÉÏÓ¢Îĵ¥´Ê×é³É£¬Ôòµ¥´ÊÖ®¼äÇëÓÃ. ·Ö¸ô£©¡£
Õë¶Ô index ÊôÐÔÐèҪעÒâµÄÊÇ£ºË÷Òý (index) Ëù¶¨ÒåµÄÖµÊÇ{²úÆ·ÏßÓ¢ÎÄÃû³Æ}£¬µ«Ó¢ÎÄ×Öĸ±ØÐëÈ«²¿Ð¡Ð´£¬ÇÒ²»ÄÜÒÔÏ»®Ïß¿ªÍ·£¬Ò²²»Äܰüº¬¶ººÅ¡£
filebeat.yml µÄÅäÖÃʾÀýÈçÏÂͼËùʾ£º

filebeat.yml µÄÅäÖÃʾÀý
ÈÕÖ¾Îļþ´æ·ÅÔÚÄĄ̈·þÎñÆ÷ÖУ¬filebeat ·þÎñ¾Í²¿ÊðÔÚÄĄ̈·þÎñÆ÷ÖС£ÔÚ windows ²Ù×÷ϵͳÉÏÆôÓÃ
filebeat ·þÎñµÄ²½Ö裺
1¡¢ÔÚ windows Ï¿ªÆôËÑË÷£¬ÊäÈë powershell£¬´ò¿ª powershell ËùÔÚÎļþλÖã¬ÓÒ¼ü
powershell.exe ÒÔ¹ÜÀíÔ±Éí·ÝÔËÐУ¬½øÈë PowerShell ´°¿Ú¡£
»òÕßÒÔ¹ÜÀíÔ±Éí·ÝÆô¶¯ cmd.exe£¬ÊäÈëÃüÁî powershell£¬½øÈë PowerShell
´°¿Ú ¡£
×¢Ò⣺
ÇëÎñ±ØÈ·±£ÒÔ¹ÜÀíÔ±Éí·Ý´ò¿ª PowerShell ´°¿Ú£¬·ñÔòµÄ»°ÔÚÒÔÏÂµÚ 2 ²½ÖÐÔËÐÐ.ps1 ½Å±¾Ê±£¬¾Í»á±¨Ã»ÓÐȨÏÞ´´½¨
filebeat ·þÎñµÄ´íÎó£º

2¡¢µ¼Ïòµ½ filebeat Ö´ÐгÌÐòËùÔÚĿ¼£¬ÀýÈ磺cd 'E:\ELK\filebeat-1.3.0-windows'£¬È»ºóÖ´ÐÐÃüÁpowershell.exe
-ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1¡£
3¡¢Ö®ºó¿ÉÒÔÔÚ PowerShell ´°¿ÚÖÐͨ¹ýÒÔϼ¸¸öÃüÁîÀ´²é¿´¡¢ÆôÓÃÒÔ¼°Í£Ö¹ filebeat
·þÎñ£º
²é¿´ filebeat ·þÎñ״̬£ºGet-Service filebeat
Æô¶¯ filebeat ·þÎñ£ºStart-Service filebeat
Í£Ö¹ filebeat ·þÎñ£ºStop-Service filebeat
Èý¡¢Ê¹Ó÷½·¨
3.1¡¢Log4Net ±¾µØÈÕÖ¾
1¡¢ÈÕÖ¾´æ·Å·¾¶¹æ·¶£º{ÅÌ·û}:\Log4Net{AppID}\£¬ÆäÖÐ AppID ¼´ÎªÎÒÃÇËù×öÏîÄ¿µÄÁùλ±àÂë¡£ÀýÈ磺D:\Log4Net\110107\¡£
2¡¢log4net.config ÅäÖÃÄÚÈÝ£º
<?xml version="1.0"
encoding="utf-8" ?>
<configuration> <configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections> <appSettings>
</appSettings> <log4net> <appender
name="FileAppender" type="log4net.Appender.RollingFileAppender">
<!--AppID 150202£¬ÓÃÓÚÇø·ÖÄĸöÓ¦ÓõÄÈÕÖ¾ --> <file
value="D:\Log4Net\150202\" />
<rollingStyle value="Composite" />
<datePattern value="yyyy-MM-dd".log""
/> <staticLogFileName value="false"
/> <param name="Encoding"
value="utf-8" /> <maximumFileSize
value="100MB" /> <countDirection
value="0" /> <maxSizeRollBackups
value="100" /> <appendToFile
value="true" /> <layout type="log4net.Layout.PatternLayout">
<conversionPattern value="¼Ç¼ʱ¼ä£º%date Ị̈߳º[%thread]
ÈÕÖ¾¼¶±ð£º%-5level ¼Ç¼Àࣺ%logger ÈÕÖ¾ÏûÏ¢£º%message%newline"
/> </layout> </appender>
<logger name="FileLogger" additivity="false">
<level value="DEBUG" />
<appender-ref ref="FileAppender"
/> </logger> </log4net>
</configuration> |
×¢ÒâÁË£º
maximumFileSize ÉèÖÃΪ 100MB£»Çë¸ø countDirection ÉèÖÃΪ´óÓÚ
-1 µÄÕûÊý£»maxSizeRollBackups ÉèÖÃΪ 100¡£
ÈÕÖ¾ÎļþÄÚÈݹ淶£ºÈÕÖ¾ÎļþÖеÄÿÌõÈÕÖ¾ÄÚÈÝÒªÇóÊÇ¡°¼Ç¼ʱ¼ä Ïß³Ì ÈÕÖ¾¼¶±ð ³ö´íÀà ÈÕÖ¾ÏûÏ¢¡±¡£
3.2¡¢ÈÕÖ¾²éѯ
»ùÓÚ Kibana ²éѯÈÕÖ¾£¨·ÃÎʵØÖ·£ºhttp://139.198.13.12:4800/£©£¬Ö÷Ҫͨ¹ýÒÔϼ¸¸ö²½ÖèʵÏÖ£º
Ñ¡ÔñÒµÎñË÷Òý¿â¡£
Ñ¡ÔñÈÕÆÚ·¶Î§¡£
ÊäÈë´ý²éÕÒµÄÄÚÈÝʵÏÖ¾«È·²éѯ£¬Ò²¿ÉÒÔͨ¹ýÊäÈë * ʵÏÖÄ£ºý²éѯ¡£
µã»÷ÿÌõÈÕÖ¾µÄÕ¹¿ªÍ¼±ê£¬¿ÉÒԲ鿴¸ÃÌõÈÕÖ¾µÄÏêϸÐÅÏ¢¡£
ÔÚ Kibana ½çÃæµÄ×ó²àÇøÓò£¬×ÔÉ϶øÏÂÒÀ´ÎÊÇË÷Òý¿âÑ¡Ôñ¿ò¡¢Ñ¡ÖÐ×ֶμ¯ºÏÁÐ±í£¨Selected Fields£©¡¢¿ÉÓÃ×ֶμ¯ºÏÁÐ±í£¨Available
Fields£©¡£Í¨¹ýÌí¼Ó¿ÉÓÃ×ֶε½Ñ¡ÖÐ×ֶμ¯ºÏÁбíÖÐÀ´¸Ä±ä Kibana ÓÒ²àµÄÈÕÖ¾±í¸ñ³ÊÏÖ¡£
Çë²Î¿¼ÈçÏÂͼËùʾ£º

Kibana ²éѯÈÕÖ¾½çÃæ
ËÄ¡¢Demo ÏÂÔØ¼°¸ü¶à×ÊÁÏ
Log4NetDemo ÏÂÔØµØÖ·£ºhttps://github.com/das2017/Log4NetDemo
ELK ¹ÙÍø£ºhttps://www.elastic.co/
ÕýÔò±í´ïʽÅäÖÃ˵Ã÷£ºhttps://www.elastic.co/
guide/en/beats/filebeat/current/regexp-support.html |