Орчин
Windows 10
Vagrant
Centos 7
Fluentd
Java version 1.8.0_91
ELastic searh
Kibana
1. Fluentd гэж юу вэ
Өмнөх нийтлэлийг харна уу. Эндээс
2. Elasticsearch гэж юу вэ
Одоо үед хэрэглэгчийн мэдээллийг цуглуулан анализ хийж түүн дээрээ тулгуурлан чухал шийдвэрүүдийг гаргах нь энгийн л үзэгдэл болсон байна. Өмнө нь өгөгдөл цуглуулах янз бүрийн аргыг хэрэглэж ирсэн ч санасан үр дүнд хүрдэггүй байсан гэх. Харин Elasticsearch нь сүүлийн үед хэрэглэгчийн сонирхолд ойрхон мэдээллийг олж авч анализ хийх нь үр дүнтэй болсон бөгөөд тухайн мэдээллийг тэр чигээр нь бүгдийг биш шинж чанар болон хэрэглэхэд хялбар байдлаар авч хадгалан, түүнээсээ уян хатан хайлт(full search бас) хийх гэх мэт боломжыг олгодогоороо сүүлийн үед анхаарал татаж байгаа. Lucene гэх engine ийг ашигладаг бөгөөд Apache лиценз тэйгээр Solr болон Elastic компани хөгжүүлж байна. Elasticseach ийг facebook болон Github ашигладаг гэх нь бий.
Elasticsearch ийг онцлог
Full text хайлт хийдэг бөгөөд маш их(big data гэх мэт) өгөгдлөөс хэрэглэгчийн хүссэн мэдээллийг хайхад зориулагдсан бүтэцтэй. RDBMS нь яг тохирсон үгээр хайдаг бол full search тухайн хайлтанд таарах болон түүнтэй холбоотой өгөгдлүүдийг буцаадагаараа ялгаатай. Өөрөөр хэлбэл хялбараар хүссэн өгөгдлөө хайх боломжыг бүрдүүлж өгдөгөөрөө full search engine - ийн онцлогтой. Мөн доорх онцлогууд бас бий.
- scalable
- schema less
- multi-tenant
- REST+JSON
- Өгөгдөл хялбар харах(Kibana)
- Hadoop холболт
- Plugin
- Tunning
3. Kibana гэж юу вэ
Kibana нь Elastic компаниас гаргасан багаж бөгөөд Elasticsearch тай хамтарч ажиллах чадвартай realtime өгөгдөл хянах зориулалттай багаж юм. Elasticsearch болон Kibana-г хослуулан их хэмжээний өгөгдөлд(big data) анализ хийхэд өргөн хэрэглэлэг.
Дээр хялбархан Elasticsearch Kibana гэж юу болох талаар бичлээ. Одоо суулгаж ажиллуулах талаар бичье.
Ерөнхий системийн бүтэц доорх хэлбэртэй байна.
1. Fluentd суулгах
Өмнөх нийтлэлийг харна уу. Эндээс
<source>
@type forward
port 24224
</source>
<match httpd_access>
type elasticsearch
host localhost
port 9200
logstash_format true
logstash_prefix httpd_access
logstash_dateformat %Y%m
buffer_type memory
buffer_chunk_limit 10m
buffer_queue_limit 10
flush_interval 1s
retry_limit 16
retry_wait 1s
</match>
2. Elasticsearch суулгах
- sudo yum -y install gcc libcurl-devel
- sudo td-agent-gem install fluent-plugin-elasticsearch
- yum -y install java-1.8.0-openjdk-devel.x86_64
- vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
- vi /etc/elasticsearch/elasticsearch.yml
+ http.port: 9200
- sudo systemctl start elasticsearch.service
- sudo systemctl daemon-reload
- sudo systemctl enable elasticsearch.service
- curl http://localhost:9200 гэж тест хийж үзэхэд доорх json-ийг буцааж байвал ok
{
"name" : "Photon",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "2.3.4",
"build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
"build_timestamp" : "2016-06-30T11:24:31Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}
- curl -X PUT localhost:9200/.kibana/_settings -d '{ "index": { "max_result_window": 2147483647 }}'
3. Kibana суулгах
- sudo wget https://download.elastic.co/kibana/kibana/kibana-4.2.0-linux-x64.tar.gz
- sudo cp /home/vagrant/kibana-4.2.0-linux-x64.tar.gz /opt
- sudo tar zxf kibana-4.2.0-linux-x64.tar.gz
- sudo ln -s kibana-4.2.0-linux-x64 kibana
- sudo vi /etc/rc.d/init.d/kibana
#!/bin/bash | |
# | |
# Kibana Init script for Kibana | |
# | |
# chkconfig: 345 99 76 | |
# processname: kibana | |
# | |
KIBANA_EXEC="/opt/kibana/bin/kibana" | |
LOG_FILE="/opt/kibana/kibana.log" | |
PID_FILE="/opt/kibana/kibana.pid" | |
RETVAL=0 | |
case "$1" in | |
"start" ) | |
if [ ! -f ${PID_FILE} ]; then | |
echo "Starting Kibana..." | |
$KIBANA_EXEC 1>"$LOG_FILE" 2>&1 & | |
echo $! > "$PID_FILE" | |
echo "Kibana started with pid $!" | |
else | |
echo "Kibana is Running." | |
fi | |
;; | |
"stop" ) | |
echo "Stopping Kibana..." | |
kill `cat ${PID_FILE}` | |
RETVAL=$? | |
if test $RETVAL -eq 0 ; then | |
rm -f ${PID_FILE} | |
fi | |
;; | |
*) | |
echo "Usage: $0 {start | stop}" | |
exit 0 | |
;; | |
esac | |
exit $RETVAL |
- chmod +x /etc/init.d/kibana
- /etc/init.d/kibana start
Дээрх тохиргоонуудыг хийгээд node2 гэсэн httpd суулгасан машин руу хандахад тухайн log - ийн өгөгдлийг node1 гэсэн машин руу илгээх юм. Доорх хаягаар орж харвал Kibana дээр log - ийн node2 машинаас илгээсэн өгөгдлийг харж болж байна.
http://192.168.33.55:5601/
No comments:
Post a Comment