一、安装前准备
集群环境:3台2核4G搭载centos7.3的服务器(192.168.1.2,192.168.1.3,192.168.1.4)
软件版本:6.0.0
下载地址:elk官网下载地址(我们这里选用zip版本)
jdk版本为:1.8.0_151(必须为1.8版本)
创建elk用户
adduser elk
设置密码
passwd elk123456
新建一个文件夹cluster到/home/elk
cd /home/elk
mkdir cluster
解压安装包到/home/elk/cluster
yum install zip unzip # 安装zip、unzip应用
unzip xxx.zip
修改文件夹的名字
mv elaticsearch-6.0.0 elaticsearch (同理修改其他文件夹名字)
二、 配置ElasticSearch
2.1 修改系统相关文件
1.设置内核参数
vi /etc/sysctl.conf
添加如下内容:
fs.file-max=65536
vm.max_map_count=262144
之后可以使用sysctl -p刷新
2. 设置资源参数
vi /etc/security/limits.conf
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
2.2 修改集群配置文件
一共3个节点,拥有相同的集群名,修改节点名称和对应的IP即可
# ================= Elasticsearch Configuration ===================
# #配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: elk-cluster
# #节点名称
node.name: node-1
# #指定该节点是否有资格被选举成为node
node.master: true
# #指定该节点是否存储索引数据,默认为true。
node.data: true
# #设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host: 192.168.1.2
# #指定http端口,你使用head、kopf等相关插件使用的端口
http.port: 9200
# #设置节点间交互的tcp端口,默认是9300。
transport.tcp.port: 9300
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["192.168.1.2:9300"," 192.168.1.3:9300 "," 192.168.1.4:9300 "]
#如果要使用head,那么需要增加新的参数,使head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
授予elk用户文件夹权限
chown -R elk /home/elk/cluster
2.3 启动es
cd /home/elk/cluster/elasticsearch/bin
su elk #切换至elk root不能启动es
./elasticsearch
启动成功后用守护者模式启动
./elasticsearch -d
查看es进程是否启动
ps –ef | grep elastic
三、配置logstash
1、安装log4j的logstash-input插件
参考如下文章:
进入/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 #单机模式关闭此选项
sniffing_delay => 5
manage_template => false
user => cluster
password => cluster
}
file {
#日志输入地址
path => "../logs/%{+YYYY.MM.dd}.log"
codec => plain{ charset => "UTF-8" }
}
}
运行logstash
./logstash -f logstash.conf
四、配置kibana(1台服务器安装即可)
$ 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用户权限
增加角色
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台服务器都要配)
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
#服务器的ip
log4j.appender.logstash.remoteHost=x.x.x.x
log4j2配置如下:
<Configuration status="WARN" monitorInterval="300">