±à¼ÍƼö: |
±¾ÎÄÖ÷ÒªÓÃÒ»¸öÏà¶Ô¼òµ¥µÄÀý×ÓÀ´²ûÊö
ELK ÐÒéÕ»ÔÚ¼¯ÖÐʽÈÕÖ¾µÄ×÷ÓÃ,ÔÚʵ¼ÊµÄ¹¤×÷ÖУ¬ÆäʵËûÃǶ¼ÊÇ¿ÉÒÔÏà¶Ô×ÔÓÉ×éºÏ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚIBM£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
¼ò½é
ÔÚÎÒÃÇÈÕ³£Éú»îÖУ¬ÎÒÃǾ³£ÐèÒª»Ø¹ËÒÔǰ·¢ÉúµÄһЩÊÂÇ飻»òÕߣ¬µ±³öÏÖÁËһЩÎÊÌâµÄʱºò£¬¿ÉÒÔ´ÓijЩµØ·½È¥²éÕÒÔÒò£¬Ñ°ÕÒ·¢ÉúÎÊÌâµÄºÛ¼£¡£Î޿ɱÜÃâÐèÒªÓõ½ÎÄ×ֵġ¢Í¼ÏñµÄµÈµÈ²»Í¬ÐÎʽµÄ¼Ç¼¡£ÓüÆËã»úµÄÊõÓï±í´ï£¬¾ÍÊÇ
LOG£¬»òÈÕÖ¾¡£
ÈÕÖ¾£¬¶ÔÓÚÈκÎϵͳÀ´Ëµ¶¼ÊǼ°ÆäÖØÒªµÄ×é³É²¿·Ö¡£ÔÚ¼ÆËã»úϵͳÀïÃæ£¬¸üÊÇÈç´Ë¡£µ«ÊÇÓÉÓÚÏÖÔڵļÆËã»úϵͳ´ó¶à±È½Ï¸´ÔÓ£¬ºÜ¶àϵͳ¶¼²»ÊÇÔÚÒ»¸öµØ·½£¬ÉõÖÁ¶¼ÊÇ¿ç¹ú½çµÄ£»¼´Ê¹ÊÇÔÚÒ»¸öµØ·½µÄϵͳ£¬Ò²Óв»Í¬µÄÀ´Ô´£¬±ÈÈ磬²Ù×÷ϵͳ£¬Ó¦Ó÷þÎñ£¬ÒµÎñÂß¼µÈµÈ¡£ËûÃǶ¼ÔÚ²»Í£²úÉú¸÷ÖÖ¸÷ÑùµÄÈÕÖ¾Êý¾Ý¡£¸ù¾Ý²»Íêȫͳ¼Æ£¬ÎÒÃÇÈ«ÇòÿÌì´óÔ¼Òª²úÉú
2EB£¨1018£©µÄÊý¾Ý¡£
Ãæ¶ÔÈç´Ëº£Á¿µÄÊý¾Ý£¬ÓÖÊÇ·Ö²¼ÔÚ¸÷¸ö²»Í¬µØ·½£¬Èç¹ûÎÒÃÇÐèҪȥ²éÕÒÒ»Ð©ÖØÒªµÄÐÅÏ¢£¬ÄѵÀ»¹ÊÇʹÓô«Í³µÄ·½·¨£¬È¥µÇ½µ½Ò»Ì¨Ì¨»úÆ÷Éϲ鿴£¿¿´À´´«Í³µÄ¹¤¾ßºÍ·½·¨ÒѾÏԵ÷dz£±¿×¾ºÍµÍЧÁË¡£ÓÚÊÇ£¬Ò»Ð©´ÏÃ÷È˾ÍÌá³öÁ˽¨Á¢Ò»Ì×¼¯ÖÐʽµÄ·½·¨£¬°Ñ²»Í¬À´Ô´µÄÊý¾Ý¼¯ÖÐÕûºÏµ½Ò»¸öµØ·½¡£
Ò»¸öÍêÕûµÄ¼¯ÖÐʽÈÕ־ϵͳ£¬ÊÇÀë²»¿ªÒÔϼ¸¸öÖ÷ÒªÌØµãµÄ¡£
ÊÕ¼¯£Äܹ»²É¼¯¶àÖÖÀ´Ô´µÄÈÕÖ¾Êý¾Ý
´«Êä£Äܹ»Îȶ¨µÄ°ÑÈÕÖ¾Êý¾Ý´«Êäµ½ÖÐÑëϵͳ
´æ´¢£ÈçºÎ´æ´¢ÈÕÖ¾Êý¾Ý
·ÖÎö£¿ÉÒÔÖ§³Ö UI ·ÖÎö
¾¯¸æ£Äܹ»Ìṩ´íÎ󱨸棬¼à¿Ø»úÖÆ
Êг¡ÉϵIJúÆ·
»ùÓÚÉÏÊö˼·£¬ÓÚÊÇÐí¶à²úÆ·»ò·½°¸¾ÍÓ¦Ô˶øÉúÁË¡£±ÈÈ磬¼òµ¥µÄ Rsyslog£¬Syslog-ng£»ÉÌÒµ»¯µÄ
Splunk £»¿ªÔ´µÄÓÐ FaceBook ¹«Ë¾µÄ Scribe£¬Apache µÄ Chukwa£¬Linkedin
µÄ Kafak£¬Cloudera µÄ Fluentd£¬ELK µÈµÈ¡£
ÔÚÉÏÊö²úÆ·ÖУ¬Splunk ÊÇÒ»¿î·Ç³£ÓÅÐãµÄ²úÆ·£¬µ«ÊÇËüÊÇÉÌÒµ²úÆ·£¬¼Û¸ñ°º¹ó£¬ÈÃÐí¶àÈËÍû¶øÈ´²½¡£
Ö±µ½ ELK µÄ³öÏÖ£¬Èôó¼ÒÓÖ¶àÁËÒ»ÖÖÑ¡Ôñ¡£Ïà¶ÔÓÚÆäËû¼¸¿î¿ªÔ´Èí¼þÀ´Ëµ£¬±¾ÎÄÖØµã½éÉÜ ELK¡£
ELK ÐÒéÕ»½éÉܼ°Ìåϵ½á¹¹
ELK Æäʵ²¢²»ÊÇÒ»¿îÈí¼þ£¬¶øÊÇÒ»ÕûÌ×½â¾ö·½°¸£¬ÊÇÈý¸öÈí¼þ²úÆ·µÄÊ××ÖĸËõд£¬Elasticsearch£¬Logstash
ºÍ Kibana¡£ÕâÈý¿îÈí¼þ¶¼ÊÇ¿ªÔ´Èí¼þ£¬Í¨³£ÊÇÅäºÏʹÓ㬶øÇÒÓÖÏȺó¹éÓÚ Elastic.co ¹«Ë¾ÃûÏ£¬¹Ê±»¼ò³ÆÎª
ELK ÐÒéÕ»£¬¼ûͼ 1¡£
ͼ 1.ELK ÐÒéÕ»

Elasticsearch
Elasticsearch ÊÇÒ»¸öʵʱµÄ·Ö²¼Ê½ËÑË÷ºÍ·ÖÎöÒýÇæ£¬Ëü¿ÉÒÔÓÃÓÚÈ«ÎÄËÑË÷£¬½á¹¹»¯ËÑË÷ÒÔ¼°·ÖÎö¡£ËüÊÇÒ»¸ö½¨Á¢ÔÚÈ«ÎÄËÑË÷ÒýÇæ
Apache Lucene »ù´¡ÉϵÄËÑË÷ÒýÇæ£¬Ê¹Óà Java ÓïÑÔ±àд¡£Ä¿Ç°£¬×îеİ汾ÊÇ 2.1.0¡£
Ö÷ÒªÌØµã
ʵʱ·ÖÎö
·Ö²¼Ê½ÊµÊ±Îļþ´æ´¢£¬²¢½«Ã¿Ò»¸ö×ֶζ¼±àÈëË÷Òý
Îĵµµ¼Ïò£¬ËùÓеĶÔÏóÈ«²¿ÊÇÎĵµ
¸ß¿ÉÓÃÐÔ£¬Ò×À©Õ¹£¬Ö§³Ö¼¯Èº£¨Cluster£©¡¢·ÖƬºÍ¸´ÖÆ£¨Shards ºÍ Replicas£©¡£¼ûͼ
2 ºÍͼ 3
½Ó¿ÚÓѺã¬Ö§³Ö JSON
ͼ 2. ¼¯Èº

ͼ 3. ·ÖƬºÍ¸´ÖÆ

Logstash
Logstash ÊÇÒ»¸ö¾ßÓÐʵʱÇþµÀÄÜÁ¦µÄÊý¾ÝÊÕ¼¯ÒýÇæ¡£Ê¹Óà JRuby ÓïÑÔ±àд¡£Æä×÷ÕßÊÇÊÀ½çÖøÃûµÄÔËά¹¤³ÌʦÇǵ¤Î÷Èû
(JordanSissel)¡£Ä¿Ç°×îеİ汾ÊÇ 2.1.1¡£
Ö÷ÒªÌØµã
¼¸ºõ¿ÉÒÔ·ÃÎÊÈκÎÊý¾Ý
¿ÉÒԺͶàÖÖÍⲿӦÓýáºÏ
Ö§³Öµ¯ÐÔÀ©Õ¹
ËüÓÉÈý¸öÖ÷Òª²¿·Ö×é³É£¬¼ûͼ 4£º
Shipper£·¢ËÍÈÕÖ¾Êý¾Ý
Broker£ÊÕ¼¯Êý¾Ý£¬È±Ê¡ÄÚÖà Redis
Indexer£Êý¾ÝдÈë
ͼ 4.Logstash »ù±¾×é³É

Kibana
Kibana ÊÇÒ»¿î»ùÓÚ Apache ¿ªÔ´ÐÒ飬ʹÓà JavaScript ÓïÑÔ±àд£¬Îª Elasticsearch
Ìṩ·ÖÎöºÍ¿ÉÊÓ»¯µÄ Web ƽ̨¡£Ëü¿ÉÒÔÔÚ Elasticsearch µÄË÷ÒýÖвéÕÒ£¬½»»¥Êý¾Ý£¬²¢Éú³É¸÷ÖÖά¶ÈµÄ±íͼ¡£Ä¿Ç°×îеİ汾ÊÇ
4.3£¬¼ò³Æ Kibana 4¡£
ELK ÐÒéÕ»Ìåϵ½á¹¹
ÍêÕûµÄ ELK ÐÒéÕ»Ìåϵ½á¹¹¼ûͼ 5¡£»ù±¾Á÷³ÌÊÇ Shipper ¸ºÔð´Ó¸÷ÖÖÊý¾ÝÔ´Àï²É¼¯Êý¾Ý£¬È»ºó·¢Ë͵½
Broker£¬Indexer ½«´æ·ÅÔÚ Broker ÖеÄÊý¾ÝÔÙдÈë Elasticsearch£¬Elasticsearch
¶ÔÕâЩÊý¾Ý´´½¨Ë÷Òý£¬È»ºóÓÉ Kibana ¶ÔÆä½øÐи÷ÖÖ·ÖÎö²¢ÒÔͼ±íµÄÐÎʽչʾ¡£
ͼ 5.ELK ÐÒéÕ»Ìåϵ½á¹¹

ELK Èý¿îÈí¼þÖ®¼ä»¥ÏàÅäºÏʹÓã¬ÍêÃÀÏνӣ¬¸ßЧµÄÂú×ãÁ˺ܶೡºÏµÄÓ¦Ó㬲¢ÇÒ±»ºÜ¶àÓû§Ëù²ÉÄÉ£¬ÖîÈç·͸É磬Á³Ê飨Facebook£©£¬StackOverFlow
µÈµÈ¡£
ELK µÄ°²×°¼°ÅäÖÃ
ÕâÒ»²¿·Ö£¬ÎÒ½«ÃèÊöÒ»ÏÂÈçºÎ°²×°ÅäÖà ELK ÐÒéÕ»¡£
ѡȡµÄʵÑéÆ½Ì¨Îª
Ubuntu 14.04
Centos 7.1
ÆäÖÐÓõ½µÄÈí¼þÈçÏÂ
Elasticsearch ʹÓõÄÊÇ 2.1.0
Logstash ʹÓõÄÊÇ 2.1.1
Kibana ʹÓõÄÊÇ 4.3.0
³ý´ËÖ®Í⣬»¹ÐèÒªÓõ½ÒÔÏÂÈí¼þ£¬Nginx£¬Logstash-forwarder ÒÔ¼° JDK¡£
ʵÑéϵͳ¼Ü¹¹¼ûͼ 6¡£
ͼ 6. ʵÑéϵͳ¼Ü¹¹

ÖµµÃ×¢ÒâµÄÊÇ£¬ÔÚÎÒÃǵÄʵÑéÖУ¬Ê¹ÓÃÁË Nginx µÄ·´Ïò´úÀí£¬Ê¹µÃÓû§¿ÉÒÔ´ÓÍⲿ·ÃÎʵ½ Kibana£¬²¢ÇÒËü±¾Éí¾ßÓиºÔؾùºâµÄ×÷Óã¬Ò²Äܹ»Ìá¸ßÐÔÄÜ¡£
ÌØ±ð»¹ÌᵽһϠLogstash-forwarder£¬ÕâÊÇÒ»¿îʹÓà Go ÓïÑÔ±àдµÄÈÕÖ¾´«Ê乤¾ß¡£ÓÉÓÚ
Logstash ÊÇʹÓà Java À´ÔËÐУ¬ÎªÁËÌáÉýÍøÂç´«ÊäЧÂÊ£¬ÎÒÃDz¢²»ÔÚ¿Í»§ÏµÍ³ÉÏÃæÊ¹Óà Logstash
À´´«ÊäÊý¾Ý¡£Õâ¿îÈí¼þ¾ÍÊÇÔÀ´µÄ Lumberjack£¬½ñºóÂýÂý½«±» Elastic.co ¹«Ë¾µÄÁíÍâÒ»¿î²úÆ·
Beat ÎüÊպϲ¢µ½ Filebeat ÖУ¬Õâ¸ö³¬³ö±¾ÎÄÐðÊöµÄ·¶³ë£¬¾Í²»ÔÚÕâÀïÏêϸÌÖÂÛÁË¡£
¾ßÌå°²×°¹ý³ÌÈçÏÂ
²½Öè 1£¬°²×° JDK
²½Öè 2£¬°²×° Elasticsearch
²½Öè 3£¬°²×° Kibana
²½Öè 4£¬°²×° Nginx
²½Öè 5£¬°²×° Logstash
²½Öè 6£¬ÅäÖà Logstash
²½Öè 7£¬°²×° Logstash-forwarder
²½Öè 8£¬×îÖÕÑéÖ¤
°²×°Ç°µÄ×¼±¸
Á½Ì¨ 64 λÐéÄâ»ú£¬²Ù×÷ϵͳÊÇ Ubuntu 14.04£¬2 CPU£¬4G Äڴ棬30G Ó²ÅÌ
Á½Ì¨ 64 λÐéÄâ»ú£¬²Ù×÷ϵͳÊÇ CentOS 7.1£¬2 CPU£¬4G Äڴ棬30G Ó²ÅÌ
´´½¨Óû§ elk ºÍ×é elk£¬ÒÔÏÂËùÓеݲװ¾ùÓÉÕâ¸öÓû§²Ù×÷£¬²¢ÊÚÓè sudo ȨÏÞ
Èç¹ûÊÇ CentOS£¬»¹ÐèÒªÅäÖùٷ½ YUM Ô´£¬¿ÉÒÔ·ÃÎÊ CentOS Èí¼þ°ü
×¢Ò⣺ÒÔÏÂËùÓвÙ×÷¶¼ÊÇÔÚÁ½¸öƽ̨ÉÏÍê³É¡£
²½Öè 1£¬°²×° JDK
Elasticsearch ÒªÇóÖÁÉÙ Java 7¡£Ò»°ãÍÆ¼öʹÓà Oracle JDK 1.8 »òÕß
OpenJDK 1.8¡£ÎÒÃÇÕâÀïʹÓà OpenJDK 1.8¡£
Ubuntu 14.04
¼ÓÈë Java Èí¼þÔ´£¨Repository£©
$ sudo add-apt-repository
ppa:openjdk-r/ppa |
¸üÐÂϵͳ²¢°²×° JDK
$ sudo apt-get
update
$ sudo apt-get install openjdk-8-jdk |
ÑéÖ¤ Java
$ java -version
openjdk version "1.8.0_45-internal"
OpenJDK Runtime Environment (build 1.8.0_45-internal-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed
mode) |
CentOS 7.1
ÅäÖÃ YUM Ô´
$ cd /etc/yum.repos.d
$ sudo vi centos.repo |
¼ÓÈëÒÔÏÂÄÚÈÝ
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release= $releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever /os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever -Updates mirrorlist=http://mirrorlist.centos.org/?release= $releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever /updates/$basearch/
gpgcheck=1
gpgkey=<a href="../../../../../etc/pki/rpm-gpg/RPM-GPG
-KEY-CentOS-7"><code>file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7</code></a> |
°²×° JDK
$ sudo yum install
java-1.8.0-openjdk |
ÑéÖ¤ Java
$ java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed
mode) |
²½Öè 2£¬°²×° Elasticsearch
Ubuntu 14.04
ÏÂÔØ Elasticsearch Èí¼þ
$ wget https://download.elasticsearch.org/elasticsearch/ release/org/elasticsearch/distribution/tar/elasticsearch /2.1.0/elasticsearch-2.1.0.tar.gz |
½âѹ
$ tar xzvf elasticsearch-2.1.0.tar.gz |
ÎļþĿ¼½á¹¹ÈçÏ£º
$ pwd
/home/elk/elasticsearch-2.1.0
$ ls
bin config lib LICENSE.txt NOTICE.txt README.textile |
ÐÞ¸ÄÅäÖÃÎļþ
$ cd config
$ vi elasticsearch.yml |
ÕÒµ½ # network.host Ò»ÐУ¬Ð޸ijÉÒÔÏ£º
Æô¶¯ elasticsearch
$ cd ../bin
$ ./elasticsearch |
ÑéÖ¤ elasticsearch
$ curl 'localhost:9200/'
{ "name" : "Surge",
"cluster_name" : "elasticsearch",
"version" : { "number"
: "2.1.0", "build_hash"
: "72cd1f1a3eee09505e036106146dc1949dc5dc87",
"build_timestamp" : "2015-11-18T22:40:03Z",
"build_snapshot" : false, "lucene_version"
: "5.3.1"
}, "tagline" : "You Know, for
Search"
} |
CentOS 7.1
²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖÂ
²½Öè 3£¬°²×° Kibana
Ubuntu 14.04
ÏÂÔØ Kibana °²×°Èí¼þ
$ wget https://download.elastic.co/kibana/kibana/kibana-4.3.0-linux-x64.tar.gz |
½âѹ
$ tar xzvf kibana-4.3.0-linux-x64.tar.gz |
ÎļþĿ¼½á¹¹ÈçÏ£º
$ pwd
/home/elk/kibana-4.3.0-linux-x64
$ ls
bin config installedPlugins LICENSE.txt node node_modules
optimize
package.json README.txt src webpackShims
|
ÐÞ¸ÄÅäÖÃÎļþ
$ cd config
$ vi kibana.yml |
ÕÒµ½ # server.host£¬Ð޸ijÉÒÔÏ£º
server.host:¡°localhost¡± |
Æô¶¯ Kibana
$ cd ../bin
$ ./kibana
[¡]
log [07:50:29.926] [info][listening] Server running
at http://localhost:5601
[¡] |
ÑéÖ¤ Kibana
ÓÉÓÚÎÒÃÇÊÇÅäÖÃÔÚ localhost£¬ËùÒÔÊÇÎÞ·¨Ö±½Ó·ÃÎÊ Web Ò³ÃæµÄ¡£
¿ÉÒÔʹÓà netstat À´¼ì²éȱʡ¶Ë¿Ú 5601£¬»òÕßʹÓà curl£º
$ curl localhost:5601
<script>var hashRoute = '/app/kibana';
var defaultRoute = '/app/kibana';
var hash = window.location.hash;
if (hash.length) {
window.location = hashRoute + hash;
} else {
window.location = defaultRoute;
}</script> |
CentOS 7.1
²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖ¡£
²½Öè 4£¬°²×° Nginx
Nginx ÌṩÁË·´Ïò´úÀí·þÎñ£¬¿ÉÒÔʹÍâÃæµÄÇëÇó±»·¢Ë͵½ÄÚ²¿µÄÓ¦ÓÃÉÏ¡£
Ubuntu 14.04
°²×°Èí¼þ
$ sudo apt-get
install nginx apache2-utils |
ÐÞ¸Ä Nginx ÅäÖÃÎļþ
$ sudo vi /etc/nginx/sites-available/default |
ÕÒµ½ server_name£¬Ð޸ijÉÕýÈ·µÄÖµ¡£»òÕßʹÓà IP£¬»òÕßʹÓà FQDN¡£
È»ºóÔÚ¼ÓÈëÏÂÃæÒ»¶ÎÄÚÈÝ£º
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
£ý
} |
×¢Ò⣺½¨ÒéʹÓà IP¡£
ÖØÆô Nginx ·þÎñ
$ sudo service
nginx restart |
ÑéÖ¤·ÃÎÊ
http://FQDN »òÕß http://IP
CentOS 7.1
ÅäÖÃ Nginx ¹Ù·½ yum Ô´
$ sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1 |
°²×°Èí¼þ
$ sudo yum install
nginx httpd-tools |
ÐÞ¸Ä Nginx ÅäÖÃÎļþ
$ sudo vi /etc/nginx/nginx.conf |
¼ì²éÊÇ·ñ http ¿é£¨http{...}£©º¬ÓÐÏÂÃæÕâÒ»ÐУº
include /etc/nginx/conf.d/*conf |
Ϊ Kibana ´´½¨Ò»¸öÅäÖÃÎļþ
$ sudo vi /etc/nginx/conf.d/kibana.conf |
¼ÓÈëÒÔÏÂÕâÒ»¶ÎÄÚÈÝ£º
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
£ý |
×¢Ò⣺½¨ÒéʹÓà IP¡£
Æô¶¯ Nginx ·þÎñ
$ sudo systemctl
enable nginx
$ sudo systemctl start nginx |
ÑéÖ¤·ÃÎÊ
http://FQDN »òÕß http://IP
²½Öè 5£¬°²×° Logstash
Ubuntu 14.04
ÏÂÔØ Logstash °²×°Èí¼þ
$ wget https://download.elastic.co/logstash/logstash/logstash-2.1.1.tar.gz |
½âѹ
$ tar xzvf logstash-2.1.1.tar.gz |
ÎļþĿ¼½á¹¹ÈçÏ£º
$ pwd
/home/elk/logstash-2.1.1
$ ls
bin CHANGELOG.md CONTRIBUTORS Gemfile Gemfile.jruby-1.9.lock
lib LICENSE NOTICE.TXT vendor
|
ÑéÖ¤ Logstash
$ cd bin
$ ./logstash -e 'input { stdin { } } output {
stdout {} }'
Settings: Default filter workers: 1
Logstash startup completed |
ÏÔʾÈçÏ£º
hello elk stack
2015-12-14T01:17:24.104Z 0.0.0.0 hello elk stack |
˵Ã÷ Logstash ÒѾ¿ÉÒÔÕý³£¹¤×÷ÁË¡£°´CTRL-D Í˳ö
CentOS 7.1
²½ÖèºÍÉÏÊö Ubuntu 14.04 °²×°ÍêȫһÖ¡£
²½Öè 6£¬ÅäÖà Logstash
ÎÒÃÇÐèÒªÅäÖà Logstash ÒÔÖ¸Ã÷´ÓÄÄÀï¶ÁÈ¡Êý¾Ý£¬ÏòÄÄÀïÊä³öÊý¾Ý¡£Õâ¸ö¹ý³ÌÎÒÃdzÆÖ®Îª¶¨Òå Logstash
¹ÜµÀ£¨Logstash Pipeline£©¡£
ͨ³£Ò»¸ö¹ÜµÀÐèÒª°üÀ¨±ØÐëµÄÊäÈ루input£©£¬Êä³ö£¨output£©£¬ºÍÒ»¸ö¿ÉÑ¡ÏîÄ¿ Filter¡£¼ûͼ
7¡£
ͼ 7.Logstash ¹ÜµÀ½á¹¹Ê¾Òâ

±ê×¼µÄ¹ÜµÀÅäÖÃÎļþ¸ñʽÈçÏ£º
# The # character
at the beginning of a line indicates a comment.
Use
# comments to describe your configuration.
input {
}
# The filter part of this file is commented out
to indicate that it is
# optional.
#filter {
#}
output {
} |
ÿһ¸öÊäÈë/Êä³ö¿éÀïÃæ¶¼¿ÉÒÔ°üº¬¶à¸öÔ´¡£Filter ÊǶ¨ÒåÈçºÎ°´ÕÕÓû§Ö¸¶¨µÄ¸ñʽдÊý¾Ý¡£
ÓÉÓÚÎÒÃÇÕâ´ÎÊÇʹÓà logstash-forwarder ´Ó¿Í»§»úÏò·þÎñÆ÷À´´«ÊäÊý¾Ý£¬×÷ΪÊäÈëÊý¾ÝÔ´¡£ËùÒÔ£¬ÎÒÃÇÊ×ÏÈÐèÒªÅäÖÃ
SSL Ö¤Ê飨Certification£©¡£ÓÃÀ´ÔÚ¿Í»§»úºÍ·þÎñÆ÷Ö®¼äÑéÖ¤Éí·Ý¡£
Ubuntu 14.04
ÅäÖÃ SSL
$ sudo mkdir
-p /etc/pki/tls/certs etc/pki/tls/private
$ sudo vi /etc/ssl/openssl.cnf |
ÕÒµ½ [v3_ca] ¶Î£¬Ìí¼ÓÏÂÃæÒ»ÐУ¬±£´æÍ˳ö¡£
subjectAltName
= IP: logstash_server_ip |
Ö´ÐÐÏÂÃæÃüÁ
$ cd /etc/pki/tls
$ sudo openssl req -config /etc/ssl/openssl.cnf
-x509 -days 3650 -batch -nodes -newkey rsa:2048
-keyout
private/logstash-forwarder.key -out certs/logstash-forwarder.crt |
ÕâÀï²úÉúµÄ logstash-forwarder.crt Îļþ»áÔÚÏÂÒ»½Ú°²×°ÅäÖà Logstash-forwarder
µÄʱºòʹÓõ½¡£
ÅäÖà Logstash ¹ÜµÀÎļþ
$ cd /home/elk/logstash-2.1.1
$ mkdir conf
$ vi simple.conf |
Ìí¼ÓÒÔÏÂÄÚÈÝ£º
input {
lumberjack {
port => 5043
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"
}
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss
Z" ]
}
}
output {
elasticsearch { hosts => ["localhost:9200"]
}
stdout { codec => rubydebug }
} |
Æô¶¯ Logstsh
$ cd /home/elk/logstash-2.1.1/bin
$ ./logstash -f ../conf/simple.conf |
CentOS 7.1
ÔÚ CentOS 7.1 ÉÏÅäÖà Logstash£¬Ö»ÓÐÒ»²½ÅäÖà SSL ÊÇÉÔ΢Óе㲻ͬ£¬ÆäËûÈ«²¿Ò»Ñù¡£
$ sudo vi /etc/pki/tls/openssl.cnf |
ÕÒµ½ [v3_ca] ¶Î£¬Ìí¼ÓÏÂÃæÒ»ÐУ¬±£´æÍ˳ö¡£
subjectAltName
= IP: logstash_server_ip
$ cd /etc/pki/tls
$ sudo openssl req -config /etc/pki/tls/openssl.cnf
-x509 -days 3650 -batch -nodes -newkey
rsa:2048 -keyout private/logstash-forwarder.key
-out certs/logstash-forwarder.crt |
ÕâÀï²úÉúµÄ logstash-forwarder.crt Îļþ»áÔÚÏÂÒ»½Ú°²×°ÅäÖà Logstash-forwarder
µÄʱºòʹÓõ½¡£
²½Öè 7£¬°²×° Logstash-forwarder
×¢Ò⣺Logstash-forwarder Ò²ÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬×îÔçÊÇÓÉ lumberjack ¸ÄÃû¶øÀ´¡£ÔÚ×÷ÕßдÕâÆªÎÄÕµÄʱºò£¬±»ÎüÊպϲ¢µ½ÁË
Elastic.co ¹«Ë¾µÄÁíÍâÒ»¸ö²úÆ· Beat ÖÐµÄ FileBeat¡£Èç¹ûÊÇÓà FileBeat£¬ÅäÖÃÉÔ΢ÓÐЩ²»Ò»Ñù£¬¾ßÌåÐèҪȥ²Î¿¼¹ÙÍø¡£
Ubuntu14.04
°²×° Logstash-forwarder Èí¼þ
×¢Ò⣺Logstash-forwarder Êǰ²×°ÔÚÁíÍâһ̨»úÆ÷ÉÏ¡£ÓÃÀ´Ä£Äâ¿Í»§»ú´«ÊäÊý¾Ýµ½ Logstash
·þÎñÆ÷¡£
ÅäÖÃ Logstash-forwarder °²×°Ô´
Ö´ÐÐÒÔÏÂÃüÁ
$ echo 'deb http://packages.elastic.co/logstashforwarder/debian
stable main' | sudo tee /etc/apt/sources.list.d/logstashforwarder.list |
°²×°Èí¼þ°ü
$ sudo apt-get
update
$ sudo apt-get install Logstash-forwarder |
ÅäÖÃ SSL
$ sudo mkdir
-p /etc/pki/tls/certs |
°ÑÔÚ²½ÖèÁùÖÐÔÚ Logstash ·þÎñÆ÷ÉϲúÉúµÄ ssl Ö¤ÊéÎļþ¿½±´µ½¸Õ¸Õ´´½¨³öÀ´µÄĿ¼Ï£º
$ sudo scp user@logstash_server:/etc/pki/tls/certs/logstash_forwarder .crt
/etc/pki/tls/certs/ |
ÅäÖÃ Logstash-forwarder
$ sudo vi /etc/logstash-forwarder.conf |
ÔÚ network ¶Î£¨"network": {£©£¬ÐÞ¸ÄÈçÏ£º
"servers":
[ "logstash_server_private_address:5043"
],
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt",
"timeout": 15 |
ÔÚ files ¶Î£¨"files": [£©£¬ÐÞ¸ÄÈçÏ£º
{
"paths": [ "/var/log/syslog",
"/var/log/auth.log"
], "fields": { "type":
"syslog" }
} |
Æô¶¯ Logstash-forwarder
$ sudo service
logstash-forwarder start |
ÑéÖ¤ Logstash-forwarder
$ sudo service
logstash-forwarder status
logstash-forwarder is running |
Èç¹ûÓдíÎó£¬ÔòÐèҪȥ/var/log/logstash-forwarder Ŀ¼ÏÂÃæ¼ì²é¡£
CentOS 7.1
ÅäÖÃ Logstash-forwarder °²×°Ô´
Ö´ÐÐÒÔÏÂÃüÁ
$ sudo rpm --import
http://packages.elastic.co/ GPG-KEY-elasticsearch
$ sudo vi /etc/yum.repos.d/logstash-forwarder.repo |
¼ÓÈëÒÔÏÂÄÚÈÝ£º
[logstash-forwarder]
name=logstash-forwarder repository
baseurl=http://packages.elastic.co/logstashforwarder /centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1 |
´æÅÌÍ˳ö¡£
°²×°Èí¼þ°ü
$ sudo yum -y
install logstash-forwarder |
Ê£ÓಽÖèºÍÉÏÊöÔÚ Ubuntu 14.04 ÉÏÃæµÄ×ö·¨ÍêȫһÑù¡£
²½Öè 8£¬×îºóÑéÖ¤
ÔÚÇ°Ãæ°²×° Kibana µÄʱºò£¬Ôø¾ÓйýÑéÖ¤¡£²»¹ý£¬µ±Ê±Ã»ÓÐÊý¾Ý£¬´ò¿ª Web Ò³ÃæµÄʱºò£¬½«ÈçÏÂËùʾ£º
ͼ 8. ÎÞÊý¾Ý³õÊ¼Ò³Ãæ

ÏÖÔÚ£¬ÓÉÓÚ logstash-forwarder ÒѾ¿ªÊ¼´«ÊäÊý¾ÝÁË£¬Ôٴδò¿ª Web Ò³Ãæ£¬½«ÈçÏÂËùʾ£º
ͼ 9. ÅäÖÃË÷ÒýÒ³Ãæ

µã»÷´´½¨°´Å¥£¨Create£©£¬ÔÚÑ¡Ôñ Discover£¬¿ÉÒÔ¿´µ½ÈçÏÂ»Ãæ£º
ͼ 10. Êý¾ÝÕ¹Ê¾Ò³Ãæ

ÖÁ´Ë£¬ËùÓв¿¼þµÄ¹¤×÷¶¼¿ÉÒÔÕý³£Ê¹ÓÃÁË¡£¹ØÓÚÈçºÎ¾ßÌåʹÓà Kibana ¾Í²»ÔÚ±¾ÎÄÖмÓÒÔÃèÊöÁË£¬ÓÐÐËȤµÄͬѧ¿ÉÒԲο¼¹ÙÍø¡£
½áÊøÓï
ELK ÐÒéÕ»¿ÉÒԺܷ½±ãµÄÔÚ´óÐÍÉú²úϵͳÖÐÀ©³ä¼¯ÈºÒÔÌá¸ßÐÔÄÜ£¬±ÈÈ磬ʹÓöà¸öʵÀýÀ´Ôö¼Ó
Logstash µÄдÈëÄÜÁ¦£»Èç¹ûµ¥¸ö½ÚµãµÄ Elasticsearch Âú×ã²»Á˶ÁÈ¡£¬»¹¿ÉÒÔ²ÉÓÃ
AMQP ¼¼ÊõÀ´»º³å£¬µÈµÈ¡£ÖîÈç´ËÀàµÄ»°Ì⣬ϣÍûÓлú»áÔÚÒÔºóµÄÎÄÕÂÖÐÌÖÂÛ¡£ |