參考:
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)這樣子:
創(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"
}
利用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
}
}
安裝插件 使用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ò)
其中這一行是報(bào)錯(cuò)信息
解決:
npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
接著啟動(dòng)長(zhǎng)這樣
然后頁(yè)面訪問(wèn)
http:/IP:9100 (這就是沒(méi)去掉井號(hào)的后果捕透。顯示集群健康值:未連接)以下才是正確的樣子
關(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 {} }'
如果標(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)行成功以后輸入:
啦啦啦
我們不可能每次都是輸入這么長(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
我理解以上都是系統(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
這些設(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