一膏潮、安裝前準(zhǔn)備
集群環(huán)境:3臺2核4G搭載centos7.3的服務(wù)器(192.168.1.2训貌,192.168.1.3,192.168.1.4)
軟件版本:6.0.0
下載地址:elk官網(wǎng)下載地址(我們這里選用zip版本)
jdk版本為:1.8.0_151(必須為1.8版本)
創(chuàng)建elk用戶
adduser elk
設(shè)置密碼
passwd elk123456
新建一個文件夾cluster到/home/elk
cd? /home/elk
mkdir? cluster
解壓安裝包到/home/elk/cluster
yum install zip unzip # 安裝zip、unzip應(yīng)用
unzip xxx.zip
修改文件夾的名字
mv elaticsearch-6.0.0? elaticsearch (同理修改其他文件夾名字)
二漓骚、 配置ElasticSearch
2.1 修改系統(tǒng)相關(guān)文件
1.設(shè)置內(nèi)核參數(shù)
vi /etc/sysctl.conf
添加如下內(nèi)容:
fs.file-max=65536
vm.max_map_count=262144
之后可以使用sysctl -p刷新
2. 設(shè)置資源參數(shù)
vi /etc/security/limits.conf
添加如下內(nèi)容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
2.2 修改集群配置文件
一共3個節(jié)點,擁有相同的集群名,修改節(jié)點名稱和對應(yīng)的IP即可
# ================= Elasticsearch Configuration ===================
# #配置es的集群名稱, es會自動發(fā)現(xiàn)在同一網(wǎng)段下的es,如果在同一網(wǎng)段下有多個集群,就可以用這個屬性來區(qū)分不同的集群?
cluster.name: elk-cluster
# #節(jié)點名稱
node.name: node-1
# #指定該節(jié)點是否有資格被選舉成為node
node.master: true
# #指定該節(jié)點是否存儲索引數(shù)據(jù),默認(rèn)為true?
node.data: true
# #設(shè)置綁定的ip地址還有其它節(jié)點和該節(jié)點交互的ip地址
network.host: 192.168.1.2
# #指定http端口,你使用head?kopf等相關(guān)插件使用的端口
http.port: 9200
# #設(shè)置節(jié)點間交互的tcp端口,默認(rèn)是9300?
transport.tcp.port: 9300
#設(shè)置集群中master節(jié)點的初始列表,可以通過這些節(jié)點來自動發(fā)現(xiàn)新加入集群的節(jié)點?
discovery.zen.ping.unicast.hosts: ["192.168.1.2:9300"," 192.168.1.3:9300 "," 192.168.1.4:9300 "]
#如果要使用head,那么需要增加新的參數(shù),使head插件可以訪問es
http.cors.enabled: true
http.cors.allow-origin: "*"
授予elk用戶文件夾權(quán)限
chown -R elk? /home/elk/cluster
2.3 啟動es
cd?? /home/elk/cluster/elasticsearch/bin
su elk? ? ? ?#切換至elk root不能啟動es
./elasticsearch
啟動成功后用守護(hù)者模式啟動
./elasticsearch -d
查看es進(jìn)程是否啟動
ps –ef | grep elastic
三、配置logstash
1榛泛、安裝log4j的logstash-input插件
參考如下文章:
進(jìn)入/home/elk/cluster/logstash/bin,新建一個logstash.conf
cd? /home/elk/cluster/logstash/bin
vi? logstash.conf
配置如下:
input {
log4j {
? ? ?mode => "server"
? ? ?host => "192.168.2.4"
? ? ? port => 4560
????type => "log4j"
????codec => plain{ charset => "UTF-8" }
}
}
filter {
}
output {
#stdout {} console output
elasticsearch {
action => "index"?
hosts => ["192.168.1.2:9200","192.168.1.3:9200","192.168.1.4:9200"]?
index => "logstash-%{+YYYY.MM.dd}"??
codec => plain{ charset => "UTF-8" }
sniffing => true #單機(jī)模式關(guān)閉此選項
sniffing_delay => 5
manage_template => false
user => cluster
password => cluster
}
file {
#日志輸入地址
path => "../logs/%{+YYYY.MM.dd}.log"?
codec => plain{ charset => "UTF-8" }
}
}
運行l(wèi)ogstash
./logstash -f logstash.conf?
四蝌蹂、配置kibana(1臺服務(wù)器安裝即可)
$ vi config/kibana.yml
添加如下配置
server.port: 5601
server.host: "192.168.1.2"
elasticsearch.url: "http://192.168.1.2:9200"
五、安裝X-pack
在elasticsearch的bin目錄下運行
?./elasticsearch-plugin install x-pack
或者用手動安裝方法
先下載?x-pack-6.0.0.zip
bin/kibana-plugin install file:///path/to/file/x-pack-6.0.0.zip
然后在elasticsearch的bin目錄下添加x-pack用戶權(quán)限
增加角色
elasticsearch/bin/x-pack/./users useradd cluster -p cluster -r superuser
在Kibana的bin目錄運行?
./kibana-plugin install x-pack
在logstash的bin目錄運行
./logstash-plugin install x-pack
然后修改logstash.yml文件的配置
vi /home/cluster/logstash/conf/logstash.yml
添加如下配置(3臺服務(wù)器都要配)
xpack.monitoring.elasticsearch.url: "http://192.168.2.2:9200"
xpack.monitoring.elasticsearch.username: cluster
xpack.monitoring.elasticsearch.password: cluster
然后重啟?logstash曹锨、elasticsearch孤个、kibana即可
訪問5601端口:
六、集成log4j
配置非常簡單沛简,只需在log4j.properties中配置:
log4j.rootLogger=INFO,ERROR,WARN,CONSOLE,logstash
log4j.appender.encoding = UTF-8
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n # logstash log4j.appender.logstash=org.apache.log4j.net.SocketAppender
#logstash的端口
log4j.appender.logstash.port=4560
#服務(wù)器的ip
log4j.appender.logstash.remoteHost=x.x.x.x
log4j2配置如下:
<Configuration status="WARN" monitorInterval="300">