centos7 安裝ELK

參考:

https://blog.csdn.net/e_wsq/article/details/81303713

https://blog.csdn.net/zdxxinlang/article/details/84616438

-------------------------------------------------

兩臺(tái)機(jī)子:

192.168.42.128 elasticsearch(E) elasticsearch-head(這個(gè)是插件)LogStash(L) kibana(K)

192.168.42.130 LogStash(L)

安裝 elasticsearch 以下是命令:

修改源

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

編輯repo文件

# vim /etc/yum.repos.d/elasticsearch.repo

加上如下內(nèi)容:

[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md 

安裝 elasticsearch 這一步很慢,我用公司網(wǎng)絡(luò)才10k/s 而且會(huì)一直切換鏡像,耐心等候

# yum install -y elasticsearch  

安裝JAVA環(huán)境 使用yum安裝 快一點(diǎn)

1.檢查系統(tǒng)是否安裝弄過(guò)java
# yum list installed | grep java
2. 如果有舊版本的java,可以用如下方法卸載java
# yum -y remove java-1.8.0-openjdk*
3. 查看java軟件包列表
# yum -y list java*
4. 下載安裝java1.8的所有軟件包,中途需要輸入y來(lái)確認(rèn)下載。
# yum install java-1.8.0-openjdk*
5.安裝成功,輸入如下命令檢查是否安裝成功,如果返回正確的版本號(hào)則表示安裝成功。
#  java -version

創(chuàng)建elasticsearch data的存放目錄,并修改該目錄的屬主屬組,修改elasticsearch的日志屬主屬組

# mkdir -p /data/es-data   (自定義用于存放data數(shù)據(jù)的目錄)
# chown -R elasticsearch:elasticsearch /data/es-data
# chown -R elasticsearch:elasticsearch /var/log/elasticsearch/

修改elasticsearch的配置文件 修改的時(shí)候,把井號(hào)去掉!把#去掉! 把井號(hào)#去掉!!重要的事情說(shuō)三次

# vim /etc/elasticsearch/elasticsearch.yml
 
找到配置文件中的cluster.name,打開(kāi)該配置并設(shè)置集群名稱
cluster.name: demon
 
找到配置文件中的node.name,打開(kāi)該配置并設(shè)置節(jié)點(diǎn)名稱
node.name: elk-1
 
修改data存放的路徑
path.data: /data/es-data
 
修改logs日志的路徑
path.logs: /var/log/elasticsearch/
 
配置內(nèi)存使用用交換分區(qū)
bootstrap.memory_lock: true
 
監(jiān)聽(tīng)的網(wǎng)絡(luò)地址
network.host: 0.0.0.0
 
開(kāi)啟監(jiān)聽(tīng)的端口
http.port: 9200
 
增加新的參數(shù),這樣head插件可以訪問(wèn)es (5.x版本,如果沒(méi)有可以自己手動(dòng)加)
http.cors.enabled: true
http.cors.allow-origin: "*"

啟動(dòng)服務(wù)

/etc/init.d/elasticsearch start

如果有報(bào)錯(cuò)。請(qǐng)移步:https://blog.csdn.net/e_wsq/article/details/81303713

如果沒(méi)有就是長(zhǎng)這樣子:

image

創(chuàng)建開(kāi)機(jī)自啟動(dòng)服務(wù)

# chkconfig elasticsearch on

注意事項(xiàng):

需要修改幾個(gè)參數(shù),不然啟動(dòng)會(huì)報(bào)錯(cuò)
 
vim /etc/security/limits.conf
在末尾追加以下內(nèi)容(elk為啟動(dòng)用戶,當(dāng)然也可以指定為*)
elk soft nofile 65536
elk hard nofile 65536
elk soft nproc 2048
elk hard nproc 2048
elk soft memlock unlimited
elk hard memlock unlimited
 
繼續(xù)再修改一個(gè)參數(shù)
vim /etc/security/limits.d/90-nproc.conf
將里面的1024改為2048(ES最少要求為2048) 也有可能不是1024,我的是4000多
*          soft    nproc     2048
 
另外還需注意一個(gè)問(wèn)題(在日志發(fā)現(xiàn)如下內(nèi)容,這樣也會(huì)導(dǎo)致啟動(dòng)失敗,這一問(wèn)題困擾了很久)
[2017-06-14T19:19:01,641][INFO ][o.e.b.BootstrapChecks    ] [elk-1] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
[2017-06-14T19:19:01,658][ERROR][o.e.b.Bootstrap          ] [elk-1] node validation exception
[1] bootstrap checks failed
[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
    
解決:修改配置文件,在配置文件添加一項(xiàng)參數(shù)(目前還沒(méi)明白此參數(shù)的作用)
vim /etc/elasticsearch/elasticsearch.yml 
bootstrap.system_call_filter: false

訪問(wèn)9200端口查看是否成功

先檢查9200端口是否起來(lái)
netstat -antp |grep 9200
tcp        0      0 :::9200                     :::*                        LISTEN      2934/java
 
瀏覽器訪問(wèn)測(cè)試是否正常(以下為正常)
# curl http://127.0.0.1:9200/
{
  "name" : "linux-node1",
  "cluster_name" : "demon",
  "cluster_uuid" : "kM0GMFrsQ8K_cl5Fn7BF-g",
  "version" : {
    "number" : "5.4.0",
    "build_hash" : "780f8c4",
    "build_date" : "2017-04-28T17:43:27.229Z",
    "build_snapshot" : false,
    "lucene_version" : "6.5.0"
  },
  "tagline" : "You Know, for Search"
}
image

利用api查看狀態(tài)

# curl -i -XGET 'localhost:9200/_count?pretty' 
    HTTP/1.1 200 OK
    content-type: application/json; charset=UTF-8
    content-length: 95
 
    {
      "count" : 0,
      "_shards" : {
        "total" : 0,
        "successful" : 0,
        "failed" : 0
      }
    }
image

安裝插件 使用git安裝elasticsearch-head

# yum install -y npm
# git clone git://github.com/mobz/elasticsearch-head.git
# cd elasticsearch-head
# npm install (這一步安裝很慢。進(jìn)度條一直卡在20%過(guò)不去,然后我敲了幾下回車就報(bào)錯(cuò)了,沒(méi)辦法只能重裝)
# npm run start
檢查端口是否起來(lái)
# netstat -antp |grep 9100
瀏覽器訪問(wèn)測(cè)試是否正常
http://IP:9100/

注意事項(xiàng):

npm install 地方報(bào)錯(cuò)

image

其中這一行是報(bào)錯(cuò)信息

image

解決:

npm install phantomjs-prebuilt@2.1.16 --ignore-scripts

接著啟動(dòng)長(zhǎng)這樣

image

然后頁(yè)面訪問(wèn)

http:/IP:9100 (這就是沒(méi)去掉井號(hào)的后果。顯示集群健康值:未連接)
image
image

以下才是正確的樣子

image

關(guān)注這3個(gè)地方。

Logstash 安裝

安裝Logstash環(huán)境:
 
下載yum源的密鑰認(rèn)證:
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
 
利用yum安裝logstash 有點(diǎn)大,107M
# yum install -y logstash
 
查看下logstash的安裝目錄
# rpm -ql logstash
 
創(chuàng)建一個(gè)軟連接,每次執(zhí)行命令的時(shí)候不用在寫(xiě)安裝路勁(默認(rèn)安裝在/usr/share下)
ln -s /usr/share/logstash/bin/logstash /bin/
 
執(zhí)行l(wèi)ogstash的命令
# logstash -e 'input { stdin { } } output { stdout {} }'
image

如果標(biāo)準(zhǔn)輸出還有elasticsearch中都需要保留應(yīng)該怎么玩,看下面

# /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { elasticsearch { hosts => ["192.168.42.128:9200"] } stdout { codec => rubydebug }}'
 
運(yùn)行成功以后輸入:
啦啦啦
image
image
image

我們不可能每次都是輸入這么長(zhǎng)的一串命令。所以把命令修改到配置文件當(dāng)中

創(chuàng)建配置文件01-logstash.conf
# vim /etc/logstash/conf.d/elk.conf
 
文件中添加以下內(nèi)容
input { stdin { } }
output {
  elasticsearch { hosts => ["192.168.1.202:9200"] }
  stdout { codec => rubydebug }
}
 
使用配置文件運(yùn)行l(wèi)ogstash (在這一步,要把目錄cd到elk.conf的當(dāng)前目錄。我的目錄就是在/etc/logstash/conf.d/)
# logstash -f ./elk.conf

logstash的數(shù)據(jù)庫(kù)類型

Input插件
    權(quán)威指南:https://www.elastic.co/guide/en/logstash/current/input-plugins.html
    
    file插件的使用
    # vim /etc/logstash/conf.d/elk.conf
 
    添加如下配置
    input {
        file {
            path => "/var/log/messages"
            type => "system"
            start_position => "beginning"
            }
    }
    output {    
             elasticsearch {
                    hosts => ["192.168.1.202:9200"]
                    index => "system-%{+YYYY.MM.dd}"
                }
    }
 
 
運(yùn)行l(wèi)ogstash指定elk.conf配置文件,進(jìn)行過(guò)濾匹配
#logstash -f /etc/logstash/conf.d/elk.conf
image

我理解以上都是系統(tǒng)的日志

然后繼續(xù)配置安全日志的并且把日志的索引按類型做存放,繼續(xù)編輯elk.conf文件

# vim /etc/logstash/conf.d/elk.conf
 
添加secure日志的路徑
input {
    file {
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
    }
 
    file {
        path => "/var/log/secure"
        type => "secure"
        start_position => "beginning"
    }
}
 
output {
 
    if [type] == "system" {
 
        elasticsearch {
            hosts => ["192.168.1.202:9200"]
            index => "nagios-system-%{+YYYY.MM.dd}"
        }
    }
 
    if [type] == "secure" {
 
        elasticsearch {
            hosts => ["192.168.1.202:9200"]
            index => "nagios-secure-%{+YYYY.MM.dd}"
        }
    }
}
 
運(yùn)行l(wèi)ogstash指定elk.conf配置文件,進(jìn)行過(guò)濾匹配
# logstash -f ./elk.conf 
image

這些設(shè)置都沒(méi)有問(wèn)題之后,接下來(lái)安裝下kibana,可以讓在前臺(tái)展示

安裝kibana環(huán)境
 
官方安裝手冊(cè):https://www.elastic.co/guide/en/kibana/current/install.html
 
下載kibana的tar.gz的軟件包
# wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.0-linux-x86_64.tar.gz
 
解壓kibana的tar包
# tar -xzf kibana-5.4.0-linux-x86_64.tar.gz
 
進(jìn)入解壓好的kibana
# mv kibana-5.4.0-linux-x86_64 /usr/local
 
創(chuàng)建kibana的軟連接
# ln -s /usr/local/kibana-5.4.0-linux-x86_64/ /usr/local/kibana 
 
編輯kibana的配置文件
# vim /usr/local/kibana/config/kibana.yml
 
修改配置文件如下,開(kāi)啟以下的配置
server.port: 5601
 
server.host: "0.0.0.0"
 
elasticsearch.url: "http://192.168.1.202:9200"
 
kibana.index: ".kibana" 
 
安裝screen,以便于kibana在后臺(tái)運(yùn)行(當(dāng)然也可以不用安裝,用其他方式進(jìn)行后臺(tái)啟動(dòng))
# yum -y install screen
 
# screen
 
# /usr/local/kibana/bin/kibana
netstat -antp |grep 5601
tcp        0      0 0.0.0.0:5601                0.0.0.0:*                   LISTEN      17007/node 
打開(kāi)瀏覽器并設(shè)置對(duì)應(yīng)的index
http://IP:5601
image
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容