從零開始——Elk-6.3安裝
最近發現elk的版本更新的太快了,發現以前的5點多版本,有的老舊了,所以就更新一下elk版本,順便也學習一下。接下來我們來安裝一下elk的6.3版本。
ElasticSearch安裝
ElasticSearch是一個用Java開發的基於Lucene的搜索服務器。它可以提供一個分佈式多用戶能力的全文搜索引擎,基於RESTfulweb接口。現階段它主要爲Apache許可條款下的開放源碼發佈,也是當前流行的企業級搜索引擎。Elasticsearch設計主要用於雲計算中,ElasticSearch實時搜索,穩定,可靠,快速,安裝使用方便的優點,很好的解決大數據查詢緩慢問題。
ElasticSearch是基於java來開發的,所以我們好安裝java包。
[root@node2 ~]# yum install -y *jdk log4j* 安裝java環境 [root@node2 ~]# cd /usr/local/src/ [root@node2 src]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
[root@node2 ~]# java -version openjdk version "1.8.0_151" OpenJDK Runtime Environment (build 1.8.0_151-b12) OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode) ###可以看到已經安裝java的最新版本了。
[root@node2 src]# tar -xf elasticsearch-6.3.0.tar.gz ##解壓 [root@node2 src]# cd elasticsearch-6.3.0 [root@node2 elasticsearch-6.3.0]# ls bin config head lib LICENSE.txt logs modules NOTICE.txt plugins README.textile [root@node2 config]# ls elasticsearch.keystore elasticsearch.yml jvm.options log4j2.properties role_mapping.yml roles.yml users users_roles
[root@node2 elasticsearch-5.6.3]# vim config/elasticsearch.yml ###修改下面兩項 network.host: 172.25.0.30 ###爲本地ip,監聽主機 discovery.zen.minimum_master_nodes: 1 ###表示集羣的節點的數量我這裏只有一臺,所以修改爲1 http.cors.enabled: true http.cors.allow-origin: "*" xpack.security.enabled: false ###關閉舉例
##x-pack默認會啓用:xpack.security.enabled,xpack.monitoring.enabled,xpack.graph.enabled,xpack.watcher.enabled,xpack.reporting.enabled 在配置文件裏面設置false即可,開始使用head插件的話需要停掉security服務,但是停掉security服務的話對我們的權限管理也受到很大的影響。
注意如果需要配置集羣的話
添加以下配置:
#discovery.zen.ping.unicast.hosts: ["172.25.0.30", "172.25.0.33"] discovery.zen.minimum_master_nodes: 1
[root@node2 bin]# su – www [www@node2 ~]$ cd /usr/local/src/elasticsearch-6.3.0/ [root@node2 ~]# yum install -y log4j* [root@node2 ~]# chown www:www -R /usr/local/src/elasticsearch-6.3.0/ [www@node2 bin]$ ./elasticsearch [root@node2 src]# cat /etc/sysctl.conf vm.max_map_count=655360 [root@node2 src]# cat /etc/security/limits.conf * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 [root@node2 ~]# sysctl -p vm.max_map_count = 655360
[www@node2 bin]$ ./elasticsearch
[root@node2 ~]# netstat -ntpl ###查看一下服務,可以看到elasticsearch已經起來了 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp6 0 0 172.25.0.30:9200 :::* LISTEN 1650/java tcp6 0 0 172.25.0.30:9300 :::* LISTEN 1650/java
再訪問以下我們9200端口,也已經成功了,可以看到信息了。
[root@node2 ~]# curl 172.25.0.30:9200 { "name" : "XjOLC6R", "cluster_name" : "elasticsearch", "cluster_uuid" : "45286kMyRMqEsjgH04lQCg", "version" : { "number" : "6.3.0, "build_hash" : "1a2f265", "build_date" : "2017-10-06T20:33:39.012Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" }
添加head插件
1、 創建存放這個插件的目錄:
#mkdir head #cd head #git clone git://github.com/mobz/elasticsearch-head.git #cd elasticsearch-head #npm install #npm install -g grunt-cli #grunt server
2、 監聽端口爲localhost,可以修改配置文件:
[root@node2 head]# cd elasticsearch-head/ [root@node2 elasticsearch-head]# vim Gruntfile.js 做如下修改:
server: { options: { port: 9100, hostname: '0.0.0.0', #####添加這句。 base: '.', keepalive: true } } }
3、 修改es配置文件添加如下:
[root@node2 config]# vim elasticsearch.yml http.cors.enabled: true http.cors.allow-origin: "*"
####然後重啓es服務
4、啓動head插件,然後訪問web的ip與端口即可:
[root@node2 elasticsearch-head]#grunt server
訪問head模塊
http://172.25.0.30:9100/
Kibana安裝
1、下載kibana並且修改配置文件
[root@node2 src]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz
[root@node2 config]# vim kibana.yml elasticsearch.url: "http://172.25.0.30:9200" server.host: "172.25.0.30" xpack.security.enabled: true elasticsearch.username: "elastic" elasticsearch.password: "changeme"
這裏的密碼我沒用改,所以直接用es的默認密碼就可以了
啓動kibana 登錄即可:
Logstash安裝
部署logstash:
1、 安裝java環境,配置java_home:
[root@node2 src]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.0.tar.gz
2、 解壓logstash 安裝啓動即可:
[root@node2 test]# tar zxvf logstash-6.3.0.tar.gz
3、 啓動輸出hello world:
[root@node2 logstash-6.3.0]# bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' hello world 啓動後,這個是直接輸入的 { "@timestamp" => 2016-12-05T14:09:56.746Z, "@version" => "1", "host" => "node2", "message" => "hello world" } -e
-f logstash.conf 表示執行某個文件命令。也可以-f /etc/logstash/ 表示中logstash目錄下的所有*.conf文件。
-l /var/log/logstash.log 表示日誌文件輸入的位置。
--pipeline-workers 或 -w 表示CPU個數。
備註:codec=rubydebug是上面的輸出形式,要是直接stdout{}的話就是直接輸出。
4、 用supervisor管理logstash:
[root@node2 ~]# wget https://files.pythonhosted.org/packages/44/60/698e54b4a4a9b956b2d709b4b7b676119c833d811d53ee2500f1b5e96dc3/supervisor-3.3.4.tar.gz #yum install python-setuptools
如果腳本直接不了就按裝這個
[root@node2 supervisor-3.3.1]# python setup.py install
5、 生成啓動腳本:
[root@node2 supervisor-3.3.1]# vim /etc/init.d/supervisord #! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin PROGNAME=supervisord DAEMON=/usr/bin/$PROGNAME CONFIG=/etc/$PROGNAME.conf PIDFILE=/tmp/$PROGNAME.pid DESC="supervisord daemon" SCRIPTNAME=/etc/init.d/$PROGNAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 start() { echo -n "Starting $DESC: $PROGNAME" $DAEMON -c $CONFIG echo "..." } stop() { echo -n "Stopping $DESC: $PROGNAME" supervisor_pid=$(cat $PIDFILE) kill -15 $supervisor_pid echo "..." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 exit 1 ;; esac exit 0
6、 生成配置文件並且啓動:
#echo_supervisord_conf > /etc/supervisord.conf
[program:logstash] command=/usr/local/src/logstash-6.3.0/bin/logstash -f /etc/logstash-6.3.0/etc/logstash_indexer.conf -w 4 -l /var/log/logstash/agent.log user=www ##啓動的用戶 directory=/usr/local/src/logstash-6.3.0/bin/logstash stdout_logfile=/var/log/sup.log autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT
7、 然後啓動supervisord:
#service supervisord start [root@node2 supervisor-3.3.1]# ps -ef | grep supervisor root 14581 1 0 10:11 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
##然後啓動logstash就已經監聽文件,後臺運行了。
[root@node2 ~]# supervisorctl start logstash
到這裏,elk的基本安裝與管理就完成,接下來,我們就可以愉快的玩耍了。
總結:
每天學習一點,更新一下新知識。