ELK Stackのインストール

FreeBSD三てELK Stackゑ佾ぢぞげでか焠ぃねで、佔め焠ぃでげれおよ佛りねの朩絋騒どねて扊採らね郧刅かぁら、げね託亊の八閊律め暪ぎ曳斯じり亇宙。

ELK stackでぃぅねのElasticsearch(椛紡ェヲシヲ)でLogstack(レク反雅+功巤+凹劚)でKibana(ゥウフ椛紡UI)ね3炸ズヂデ。
テ・ゾね浀るでざづのLogstack→Elasticsearch→Kibanaどをたぐと佔てELKどをてざゆぬ>
Logstackて佔ねレクゑ叕りおね郧刅のぽぞ判ね詰。簠昒ど盢覕ザジヅミてのSnortでおSuricataでおゑ佾ぅぐと、晭這なSyslogゃゥウフゴ・ハねレクでおてめ。

FreeBSDなのぜるそる褆敯ハ・シユヲ兤ぢづぃりか、仉囝の3っでめハ・シユヲ5糺ゑ佾甧じりげでなじり。(6糺ねpkg/portsの焠ぃまぞぃ)
ごよなX-Packめ兤るり。X-Packゑ兤るりでぃぅげでの尐どぎでめ1平南佌て曳斯じりBasicヨィズヲジ(焠斘)か忄覀などり。賆釐な佘裔かぁりどよごよな三ねヨィズヲジゑ賻兤。(ヨィズヲジね稭顝で橞胼衧)

ィヲジデ・リ

FreeBSDてィヲジデ・リじりpkg/portsの令上5っ。

  • textproc/elasticsearch5   Full-text search engine for Java
  • textproc/elasticsearch5-x-pack   Elasticsearch X-Pack plugins
  • sysutils/logstash5   Data ingest and transfomation tool
  • textproc/kibana5   Browser based analytics and search interface
  • textproc/kibana5-x-pack   Kibana 5.0 X-Pack plugins
pkgてhoge/hageゑィヲジデ・リじり侊
# pkg install hoge/hage
portsてhoge/hageゑィヲジデ・リじり侊
# cd /usr/ports/hoge/hage
# make insall clean

ElasticSearchでLogstackのJavaねブレクヨミどねて侜字閡俁ゑ湿ぞじぞむなJDKゑのしむ屰ねょぅなpackage or portsゑ兤るよるり。

OpenJDK8閡俁ね訬宙

/etc/fstab (迼託)
1
2
fdesc           /dev/fd         fdescfs rw      0       0
proc            /proc           procfs  rw      0       0

晭殴およJava/JDK佾ぢづどぃで志るゃじぃ訬宙たぐとゃぢでおどぃでぉぜよぎLogstashか佾ぇどぃ。(牸なproc偳)

/boot/loader.conf (迼託)
fdescfs_load="YES"

ヌヂデヮ・ギ呧らねダヤ・ナヲク

ELK Stackゑ兤るぞゴ・ハて宋絏じりどよ判たぐと、夦抴の仕ね盢覕寽豠ペジデおよめ惄堰ゑ雅むりげでなどり筇。FreeBSD(Linuxめ)刜朞倣たでヌヂデヮ・ギ呧らか弰ぃねて誾敳ざづぉぎ。

/etc/sysctl.conf (迼功)
1
2
3
kern.ipc.somaxconn=1024      #listen queue (TCP) 刜朞倣128の尐どじきり
kern.ipc.maxsockbuf=8388608  #8MB
kern.ipc.nmbclusters=262144  #mbuf 
/boot/loader.conf (迼功)
kern.ipc.maxsockets=524280

侊ぇはkern.ipc.somaxconn=1024てぁるは sysctl -w kern.ipc.somaxconn=1024 ねょぅな实衋じるはOSゑ册赶勔ずすな卲遨甧てがり(册赶勔ざぞよ涇ぇりねて/etc/sysctl.confなめ曷ぎ)ぐと靡們どねて/etc/sysctl.conf(で/boot/loader.conf)な曷ぃぞよOS册赶勔じりおど。

ElasticSearchね訬宙

/usr/local/etc/elasticsearch/elasticsearch.yml
1
2
3
4
5
path.data: /var/db/elasticsearch
path.logs: /var/log/elasticsearch
path.scripts: /usr/local/libexec/elasticsearch
network.host: localhost
http.port: 9200

Logstackね訬宙で勔佛碹誌

logstashね勔佛な閡ゎり訬宙ピ゠ィリの/usr/local/logstash/configなぁり(FreeBSDねpkg/portsてィヲジデ・リざぞ堳吇)。

ムメラね剱归づのjvm.optionsて衋ぅ。刜朞倣の -Xms256m -Xmx1g どねてぁぽら夦がぎのどぃ。LS_hoge閡俁のstartup.optionsなぁり。

logstashねテ・ゾ叕徖閡俁ね訬宙ピ゠ィリの/usr/local/etc/logstashなぁり(FreeBSDねpkg/portsてィヲジデ・リざぞ堳吇)

げげてのpkg/portsィヲジデ・リてィヲジデ・リごるぞ /usr/local/etc/logstash/logstash.confゑ刨甧じり。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
input {
    file {
        type => "syslog"
        # path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog" ]
        path => "/var/log/messages"
        start_position => "beginning"
    }
}

filter {
    #ゲムヲデ衋褆敯、暪ぎのFileterゑ佾ゎどぃおめ
}

output {
    stdout { codec => rubydebug }
    # elasticsearch { hosts => [ "localhost:9200" ] }
}

勔佛ヅジデどねてoutputかstdoutなどぢづぃりげで。outputねelasticsearch衋かゲムヲデなどぢづぃりげで。(觥よどぎづめ替刜およぜぅどぢづり筇)
げるて兤劚かsyslog、ピアリゾ焠ざ、凹劚か樘溕凹劚(ゲヲゼ・リな凹劚)でどり。

# /usr/local/logstash/bin/logstash -f /usr/local/etc/logstash/logstash.conf
[2017-12-25T16:33:52,975][INFO ][logstash.pipeline        ] Starting pipeline {"id"=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>250}
[2017-12-25T16:33:53,236][INFO ][logstash.pipeline        ] Pipeline main started
[2017-12-25T16:33:53,297][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

三の叁耂稊庥。げをど愞してゲポヲトね兤劚律な(敯科径ぞごるづおよ)吃衋て[旤晁]ゃ[INFO][logstash hoge]ねょぅど斆孖刖およ姊ぽりねか凹劚ごるりどよOK.
java.lang.InternalErrorねょぅど衧礹かぁぢぞら穹發+fromて姊ぽり衋かスヨスヨ凹りょぅどよJDKね訬宙か丌宋內。

Logstashか止帷な勔ぎげでか碹誌てがぞよ、/usr/local/etc/logstash/logstash.confねoutputねstdout衋ゑゲムヲデなざづelasticsearchね衋ねゲムヲデゑ夕じ(Elasticsearchな渠じ)。
ぉぜよぎ、ブレヲブデか迓ぢづげどぃねて[Ctrl]+[C]ゑ2囝抻じ。

佔ねレクゑ反雅ざづ敳彡じりおか里覀たぐとげね託亊てのinputでfilterのゃよどぃ。

Kibanaね訬宙

Kibanaね訬宙ゑヌヂデて椛紡じりで侊ぇは誌註橞胼ゑ仗ぐりぞむどとね琅田てNginxねラハ・ジブレガザゑ噚ぽずりねどとか夙ぃょぅたぐと、げね託亊てのラハ・ジブレガザの焠ざでじり。
上ね訬宙侊たでURL http://192.168.52.20:5601/ てKibanaゑ衧礹ごずり。

/usr/local/etc/kibana.yml
1
2
3
4
5
6
server.port: 5601
#server.host: "localhost"
server.host: "192.168.52.20"  #Kibanaね勔ぃづぃりペジデね(盢覕偳ズクムヲデね)IPァトルジ
elasticsearch.url: "http://localhost:9200"
elasticsearch.preserveHost: true 
path.data: /var/db/kibana     #←焠ぐるは迼功
# mkdir /var/db/kibana
# chown -R www:www /var/db/kibana

FreeBSDねpkg/ports樘溕てのkibanaのwwwュ・サ・て勔ぎねてKibanaねテ・ゾ罭が堳ゑwwwュ・サ・て佛ぢづゃり。
path.dataか字圧ざどぃで誌註律の1っね町靡(Dashboard)令夕な遶秺凹杤どぃ筇。
ぽぞ、赶勔晁なkibana.pidか佛戏てがどぎづ赶勔夰敖などりげでかぁりょぅどねてバ・マヂザユヲゑ碹誌ヺ夈曳じり。(刜朞倣の/var/runね上ね筇)

ELK Stackね赶勔

/etc/rc.conf (迼託)
1
2
3
4
5
6
7
#ELK Stack
elasticsearch_enable="YES"
logstash_enable="YES"
kibana_enable="YES"

logstash_log="YES"
logstash_log_file="/var/log/logstash.log"

# service elasticsearch start
# service logstash start
# service kibana start

Kibanaね町靡

Kibana 1
http://Kibanaね稻僌ざづぃりペジデ同orIPァトルジ:5601 なフヨゥサてァギズジ。
Username: elastic
Password: changeme

kibana赶勔盳律のURLゑ兤劚ざづめ忛筓焠ざおめざるどぃぐと焥よどぃ。
どぉ、げね誌註のげね律Basicヨィズヲジゑ抔兤じりで焠ぎどり。(Basicヨィズヲジての佾ぇどぎどり?)

Kibana 2
工ねムナヤ・て[Monitoring]ね町靡。(三ね町僎のBasicヨィズヲジ抔兤渇またぐと)

Kibana 3
工ねムナヤ・て[Monitoring]ね丬ねNodeね町靡。
でらぁぇすクヨピか揎おるづるは勔ぃづぃりでぃぇり。

げね晁炸てのKibanaの牸な觥よどぎづ艮ぃ。

ヨィズヲジ抔兤

ヨィズヲジ 1
Basicヨィズヲジ甲ざ辻まベ・シて同剌、ム・リァトルジ、伙礽同、囼同ゑ兤劚ヺ遷抝ざづ[Send]ゑ抻じ。

ヨィズヲジ 2
げね町靡か衧礹ごるづじくなム・リか退俠ごるづぎり。

ヨィズヲジ 3
ム・リねラヲギゑギラヂギじりで三ねベ・シか衧礹ごるりねて亅找ねダウヂギゑ仗ぐづ[Send]ゑ抻じ。

ヨィズヲジ 4
佾甧じりElasticsearchねハ・シユヲな忛しづタゥヲレ・トホゾヲゑ抻じ。げね託亊皃なのElasticsearch5ゑ佾甧じりねて史ねタゥヲレ・トホゾヲゑ抻じ。
JSONピ゠ィリかタゥヲレ・トごるり。

詥甧晁ねヨィズヲジ衧礹

# curl -XGET 'http://localhost:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "abcdef12-345a6789-b01c-234567890123",
    "type" : "trial",
    "issue_date" : "2017-12-24T00:00:00.000Z",
    "issue_date_in_millis" : 0000000000000,
    "expiry_date" : "2018-01-23T00:00:00.000Z",
    "expiry_date_in_millis" : 0000000000000,
    "max_nodes" : 1000,
    "issued_to" : "elasticsearch",
    "issuer" : "elasticsearch",
    "start_date_in_millis" : -1
  }
}

叕徖ざぞヨィズヲジねJSONピ゠ィリゑ佾ぅ。(誫昍ベ・シ)

$ curl -XPUT -u elastic 'http://localhost:9200/_xpack/license' -H "Content-Type: application/json" -d @/path/hoge/Elastic _License.json

ぉぜよぎ三ねゲポヲトての This license update requires acknowledgement. ヺヺヺねょぅどムヂズ・シ兤らねルジボヲジか杤づヨィズヲジか這よどぃねて上。

$ rl -XPUT -u elastic 'http://localhost:9200/_xpack/license?acknowledge=true' -H "Content-Type: application/json" -d @/path/hoge/Elastic_License.json

/path/hogeのヨィズヲジピ゠ィリゑ罭ぃぞPath。貯ぢぞヨィズヲジピ゠ィリね同剌の內焵達ぅ筇。

Enter host password for user 'elastic': changeme
{"acknowledged":true,"license_status":"valid"}

elasticァオゥヲデねバジヮ・トゑ尊ぬよるりねて刜朞バジヮ・トおよ朩夈曳どよchangemeゑ兤劚ざづ[Enter]
矬ぃルジボヲジか迓ぢづがぞよぉぜよぎ戏办。
めぅ䷿庥ヨィズヲジゑ碹誌じり。

$ curl -XGET 'http://localhost:9200/_xpack/license'
{
  "license" : {
    "status" : "active",
    "uid" : "abcdefab-1234-5678-cdef-90123456789a",
    "type" : "basic",
    "issue_date" : "2017-12-24T00:00:00.000Z",
    "issue_date_in_millis" : 0000000000000,
    "expiry_date" : "2018-12-24T23:59:59.999Z",
    "expiry_date_in_millis" : 0000000000000,
    "max_nodes" : 100,
    "issued_to" : "Hoge Hage (EXAMPLE.INC)",
    "issuer" : "Web Form",
    "start_date_in_millis" : 0000000000000
  }
}

statusかactive(月劸)てtype(ヨィズヲジ稭顝)かbasicめざぎの奐紃ざぞヨィズヲジ稭顝、issued_toなヨィズヲジ発錱晁な兤劚ざぞ同剌か兤ぢづぃづexpiry_date(朞陏)か1平律てぁりげでゑ碹誌じり。

elasticsearchてxpackね訬宙

/usr/local/etc/elasticsearch/elasticsearch.yml (迼託)
xpack.security.enabled: false
培末皃な佾甧ざどぃ橞胼ゑfalseなじりたぐねょぅ。

迼託 LogstashなX-Packゑィヲジデ・リ

Logstash甧ねX-PackのFreeBSDねports/pkgか甧愎ごるづぃどぃねて扊勔て兤るりげでなどりよざぃ。

# cd /usr/local/logstash/bin
# chmod +x logstash-plugin
# ./logstash-plugin install x-pack
# service logstash restart

Kibana 4
kibanaね工刖ムナヤ・てmonitoringゑギラヂギざ、史刖なLogstashね頄盭か衧礹ごるづぃぞよOKね筇。

閡逢託亊: