自動化運維之日志系統(tǒng)第二篇 ELK實戰(zhàn)

上一篇準備知識:http://www.reibang.com/p/dd1a3a0df63f

一互躬、ELK簡介

開源實時日志分析ELK平臺能夠完美的解決我們上述的問題,ELK由ElasticSearch拟枚、Logstash和Kiabana三個開源工具組成:

ElasticSearch是一個基于Lucene的開源分布式搜索服務器薪铜。它的特點有:分布式,零配置恩溅,自動發(fā)現(xiàn)隔箍,索引自動分片,索引副本機制脚乡,restful風格接口蜒滩,多數(shù)據(jù)源滨达,自動搜索負載等。它提供了一個分布式多用戶能力的全文搜索引擎俯艰,基于RESTful web接口捡遍。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布竹握,是最流行的企業(yè)搜索引擎画株。設計用于云計算中,能夠達到實時搜索啦辐,穩(wěn)定谓传,可靠芹关,快速续挟,安裝使用方便。

在ElasticSearch中侥衬,所有節(jié)點的數(shù)據(jù)是均等的。

Logstash是一個完全開源的工具肘习,他可以對你的日志進行收集、過濾罪塔、分析征堪,并將其存儲供以后使用(如,搜索)洲脂,您可以使用它。說到搜索枚粘,logstash帶有一個web界面,搜索和展示所有日志犬辰。

logstash收集日志基本流程: input-->codec-->filter-->codec-->output

input:從哪里收集日志诫欠。

filter:發(fā)出去前進行過濾

output:輸出至Elasticsearch或Redis消息隊列

codec:輸出至前臺英遭,方便邊實踐邊測試

數(shù)據(jù)量不大日志按照月來進行收集

Kibana 是一個基于瀏覽器頁面的Elasticsearch前端展示工具法精,也是一個開源和免費的工具爷狈,它Kibana可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面拓巧,可以幫助您匯總、分析和搜索重要數(shù)據(jù)日志一死。

二肛度、部署環(huán)境:

CentOS release 6.7,elasticsearch6.2.2投慈,logstash62.2,kibana6.2.2;虛擬機內(nèi)存要大于2G承耿。關閉防火墻和SELinux。

1.java環(huán)境(es需要安裝java才能使用)

[root@localhost ~]#? yum install java?

[root@localhost ~]# java -version

openjdk version "1.8.0_161"

OpenJDK Runtime Environment (build 1.8.0_161-b14)

OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

2伪煤、安裝Elasticsearch

? ? ? 2.1. 導入elasticsearch PGP key

? ? ? ? ? ? ? rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

? ? ? 2.2.推薦去安裝新版本的

? ? ? ? ? ? ? 地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html

? ? ? 2.3.添加elasticsearch的yum倉庫

? ? ? ? [root@localhost ~]# vim /etc/yum.repos.d/elasticsearch.repo

? ? ? ? ? ? ? [elasticsearch-6.x]

? ? ? ? ? ? ? name=Elasticsearch repository for 6.x packages

? ? ? ? ? ? ? baseurl=https://artifacts.elastic.co/packages/6.x/yum

? ? ? ? ? ? ? gpgcheck=1

? ? ? ? ? ? ? gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

? ? ? ? ? ? ? enabled=1

? ? ? ? ? ? ? autorefresh=1

? ? ? ? ? ? ? type=rpm-md

? ? ? ? 2.4.安裝ElasticSearch

? ? ? [root@localhost ~] # yum install -y elasticsearch

? ? ? ? ? 2.5.yum安裝使用普通用戶,需要配置limits

? ? ? [root@localhost ~]# vim /etc/security/limits.conf

? ? ? ? ? ? ? ? ? ? elasticsearch soft memlock unlimited

? ? ? ? ? ? ? ? ? ? elasticsearch hard memlock unlimited

? ? ? ? ? 2.6. 創(chuàng)建數(shù)據(jù)目錄并設置權限

? ? ? [root@localhost ~]# mkdir -p /data/es-data

? ? ? [root@localhost ~]# chown -R elasticsearch:elasticsearch /data/es-data

? ? ? ? ? 2.7. yum安裝 默認配置文件在 /etc/elasticsearch

? ? [root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml

? ? [root@localhost ~]# grep '^[a-z]' /etc/elasticsearch/elasticsearch.yml

? ? ? ? ? ? cluster.name: menghuan-elk-cluster? #集群名稱

? ? ? ? ? ? node.name: linux-node? #節(jié)點名稱

? ? ? ? ? ? path.data:? /data/es-data? #數(shù)據(jù)存放路徑

? ? ? ? ? ? path.logs:? /var/log/elasticsearch? #日志存放路徑

? ? ? ? ? ? bootstrap.memory_lock:? false? #6.x下測試 開啟會有問題 或許是內(nèi)存不充足導致還行調(diào)研

? ? ? ? ? ? network.host:? 192.168.56.11? ? #允許訪問的ip

? ? ? ? ? ? http.port:? 9200

? ? ? ? ? ? discovery.zen.ping.unicast.hosts: ["192.168.56.10","192.168.56.11"] #單播方式 組播在6.x下面貌似不好使

? ? ? [root@localhost ~]# chkconfig --add elasticsearch

? ? ? [root@localhost ~]# chkconfig elasticsearch on

? ? ? [root@localhost ~]# chkconfig --list |grep elasticsearch

? ? ? ? ? ? elasticsearch? 0:off 1:off 2:on 3:on 4:on 5:on 6:off

? ? ? [root@localhost ~]# service? elasticsearch? start

Starting elasticsearch: Exception in thread "main" 2018-03-10 09:39:39,721 main ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console. Set system property 'log4j2.debug' to show Log4j2 internal initialization logging.

SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];

報錯 解決: 參數(shù)的冒號前后沒有加空格,加了之后就好

然后重新啟動后顯示:Starting elasticsearch:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]? 這個時候還是有一些問題 通過查看/var/log/elasticsearch/menghuan-elk-culster.log日志文件

發(fā)現(xiàn)有以下2個錯誤

[1]: max number of threads [1024] for user [elasticsearch] is too low, increase to at least [4096]

[2]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解決如下:

[1]: [root@localhost init.d]# vim /etc/security/limits.d/90-nproc.conf

# Default limit for number of user's processes to prevent

# accidental fork bombs.

# See rhbz #432903 for reasoning.

*? ? ? ? ? soft? ? nproc? ? 1024

*? ? ? ? ? soft? ? nproc? ? 4096

root? ? ? soft? ? nproc? ? unlimited

[2]:修改/etc/elasticsearch/elasticsearch.yml 增加配置:bootstrap.system_call_filter: false

修復完以上2個問題后重啟 就可以啟動成功了

[root@localhost ~]# ps -ef|grep elasticsearch

495? ? ? 25551? ? 1 73 10:21 ?? ? ? ? 00:00:23 /usr/bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.Cp7sEmq3 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/elasticsearch/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid -d


? ? ? 2.8.? 6.x新版本 請安裝此插件

? ? ? /usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

? ? ? 到此ES安裝完畢

3.安裝kibana

? ? 3.1. 推薦安裝新版本

? ? ? ? ? 地址: https://www.elastic.co/guide/en/kibana/current/rpm.html

? ? ? 3.2.添加kibana到y(tǒng)um倉庫

? ? [root@localhost ~]# vim /etc/yum.repos.d/kibana.repo

? ? ? ? ? ? [kibana-6.x]

? ? ? ? ? ? name=Kibana repository for 6.x packages

? ? ? ? ? ? baseurl=https://artifacts.elastic.co/packages/6.x/yum

? ? ? ? ? ? gpgcheck=1

? ? ? ? ? ? gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

? ? ? ? ? ? enabled=1

? ? ? ? ? ? autorefresh=1

? ? ? ? ? ? type=rpm-md

? ? ? 3.4.安裝kibana

? ? ? [root@localhost ~]# yum install -y kibana

? ? 3.5 kibana自啟動

? ? ? [root@localhost ~]# chkconfig --add kibana

? ? ? [root@localhost ~]# chkconfig kibana on? ? ? ? ?

? ? ? [root@localhost ~]# chkconfig --list |grep kibana

? ? ? ? ? ? ? ? ? kibana 0:off 1:off 2:on 3:on 4:on 5:on 6:off

? ? ? 3.6. 修改kibana配置文件

? ? [root@localhost ~]# vim /etc/kibana/kibana.yml

? ? [root@localhost kibana]# grep '^[a-z]' /etc/kibana/kibana.yml

? ? ? ? ? server.port: 5601? #訪問端口

? ? ? ? ? server.host: "192.168.56.10"? #允許訪問主機 (建議內(nèi)網(wǎng))

? ? ? ? ? elasticsearch.url: "http://192.168.56.10:9200"? ? #es地址

? ? ? ? ? kibana.index: ".kibana"

? ? ? 3.7. 運行Kibana

[root@localhost ~]# service kibana start

? ? ? ? kibana started

[root@localhost ~]# ps -ef|grep kibana

kibana? ? 2528? ? 1 43 07:59 pts/0? ? 00:00:02 /usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml

root? ? ? 2537? 1802? 0 07:59 pts/0? ? 00:00:00 grep kibana

? ? ? 3.8.訪問kibana_url:http://192.168.56.10:5601/


? ? 3.9.創(chuàng)建kibana索引(創(chuàng)建之前得先裝logstash加袋,把數(shù)據(jù)給ES才行)


4.安裝logstash

? ? 4.1.推薦安裝新版本

地址:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html#package-repositories

? ? 4.2.添加logstash的yum倉庫

? ? ? ? [root@localhost ~] # vim /etc/yum.repos.d/logstash.repo

? ? ? ? ? ? ? ? [logstash-6.x]

? ? ? ? ? ? ? ? name=Elastic repository for 6.x packages

? ? ? ? ? ? ? ? baseurl=https://artifacts.elastic.co/packages/6.x/yum

? ? ? ? ? ? ? ? gpgcheck=1

? ? ? ? ? ? ? ? gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

? ? ? ? ? ? ? ? enabled=1

? ? ? ? ? ? ? ? autorefresh=1

? ? ? ? ? ? ? ? type=rpm-md

? ? ? 4.3.安裝logstash

? ? ? ? ? ? [root@localhost ~]# yum install -y logstash

? ? ? 4.4.配置Logstash以及自啟動

logstash6生成init腳本后臺啟動

默認情況使用rpm包安裝完logstash之后沒有啟動腳本,這一點我覺得算是開發(fā)不夠徹底抱既。官網(wǎng)給了一個腳本职烧,需要根據(jù)不同的系統(tǒng)版本生成對應的啟動腳本,而且官網(wǎng)沒有給明使用方法蝙砌,對于新用戶來說算是個坑,不過在終端可以查看到腳本的使用幫助跋理。

我的系統(tǒng)是CentOS6择克,這里說一下6的使用方法,7類似前普,具體方法如下:

4.4.1.查看腳本使用幫助

[root@localhost ~]# cd /usr/share/logstash/bin/

[root@localhost ~]# ./system-install --help

Usage: system-install [OPTIONSFILE] [STARTUPTYPE] [VERSION]

NOTE: These arguments are ordered, and co-dependent

OPTIONSFILE: Full path to a startup.options file

OPTIONSFILE is required if STARTUPTYPE is specified, but otherwise looks first

in /usr/share/logstash/config/startup.options and then /etc/logstash/startup.options

Last match wins

STARTUPTYPE: e.g. sysv, upstart, systemd, etc.

OPTIONSFILE is required to specify a STARTUPTYPE.

VERSION: The specified version of STARTUPTYPE to use. The default is usually preferred here, so it can safely be omitted.

Both OPTIONSFILE & STARTUPTYPE are required to specify a VERSION.

a肚邢、要跟startup.options文件的絕對路徑,如果是rpm安裝的在/etc/logstash/startup.options拭卿,如果是二進制包解壓安裝的則在解壓目錄下的config目錄下面骡湖。

b、必須要跟啟動類型峻厚,比如CentOS6是sysv响蕴,CentOS7是systemd。

4.4.2.執(zhí)行腳本生成啟動文件

[root@localhost ~]# /usr/share/logstash/bin/system-install /etc/logstash/startup.options sysv

Successfully created system startup script for Logstash

4.4.3.執(zhí)行完就可以使用init腳本啟動logstash了

[root@localhost ~]# service logstash start

? ? ? logstash started

[root@localhost ~]# ps -ef|grep logstash

logstash? 3086? ? 1 99 09:36 pts/0? ? 00:00:09 /usr/bin/java -Xms256m -Xmx1g -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -Djava.awt.headless=true -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -cp /usr/share/logstash/logstash-core/lib/jars/animal-sniffer-annotations-1.14.jar:/usr/share/logstash/logstash-core/lib/jars/commons-compiler-3.0.8.jar:/usr/share/logstash/logstash-core/lib/jars/error_prone_annotations-2.0.18.jar:/usr/share/logstash/logstash-core/lib/jars/google-java-format-1.5.jar:/usr/share/logstash/logstash-core/lib/jars/guava-22.0.jar:/usr/share/logstash/logstash-core/lib/jars/j2objc-annotations-1.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-annotations-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-core-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-databind-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/jackson-dataformat-cbor-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/janino-3.0.8.jar:/usr/share/logstash/logstash-core/lib/jars/javac-shaded-9-dev-r4023-3.jar:/usr/share/logstash/logstash-core/lib/jars/jruby-complete-9.1.13.0.jar:/usr/share/logstash/logstash-core/lib/jars/jsr305-1.3.9.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-api-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-core-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/log4j-slf4j-impl-2.9.1.jar:/usr/share/logstash/logstash-core/lib/jars/logstash-core.jar:/usr/share/logstash/logstash-core/lib/jars/slf4j-api-1.7.25.jar org.logstash.Logstash --path.settings /etc/logstash

4.4.4?關閉logstash

? ? ? ? ?rpm 安裝的logstash有 initctl 的守護進程

? ? ? ? ?使用initctl stop logstash來關閉 logstash

? ? 4.5.測試

? ? [root@localhost ~]# /usr/share/logstash/bin/logstash -e 'input { stdin {} } output { stdout{codec => rubydebug} }'

雖然可以使用 但是會出現(xiàn)一些warngin如下圖:

解決如下:

mkdir -p /usr/share/logstash/config/

ln -s /etc/logstash/* /usr/share/logstash/config

chown -R logstash:logstash /usr/share/logstash/config/

再次測試不提示warning

至此ELK安裝已經(jīng)完畢 預知后事如何 請等待下篇繼續(xù)講述

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惠桃,一起剝皮案震驚了整個濱河市浦夷,隨后出現(xiàn)的幾起案子辖试,更是在濱河造成了極大的恐慌,老刑警劉巖劈狐,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罐孝,死亡現(xiàn)場離奇詭異,居然都是意外死亡肥缔,警方通過查閱死者的電腦和手機莲兢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來续膳,“玉大人改艇,你說我怎么就攤上這事」每恚” “怎么了遣耍?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炮车。 經(jīng)常有香客問我舵变,道長,這世上最難降的妖魔是什么瘦穆? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任纪隙,我火速辦了婚禮,結(jié)果婚禮上扛或,老公的妹妹穿的比我還像新娘绵咱。我一直安慰自己,他們只是感情好熙兔,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布悲伶。 她就那樣靜靜地躺著,像睡著了一般住涉。 火紅的嫁衣襯著肌膚如雪麸锉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天舆声,我揣著相機與錄音花沉,去河邊找鬼。 笑死媳握,一個胖子當著我的面吹牛碱屁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蛾找,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼娩脾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了打毛?” 一聲冷哼從身側(cè)響起晦雨,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤架曹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闹瞧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绑雄,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年奥邮,在試婚紗的時候發(fā)現(xiàn)自己被綠了万牺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡洽腺,死狀恐怖脚粟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蘸朋,我是刑警寧澤核无,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站藕坯,受9級特大地震影響团南,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炼彪,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一吐根、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辐马,春花似錦拷橘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檩帐,卻和暖如春术幔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轿塔。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工特愿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留仲墨,地道東北人勾缭。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像目养,于是被迫代替她去往敵國和親俩由。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容