ELK单节点集群搭建


安装 jdk(jdk7+)

tar -zxf jdk-8u65-linux-x64.tar.gz -C /data/carloz/tools/
设置java环境变量
vim /etc/profile

1
2
3
4
export JAVA_HOME=/carloz/tools/jdk1.8.0_65
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:/JAVA_HOME/lib:$JAVA_HOME/jre/lib

source /etc/profile
java -version

安装 Elasticsearch

tar -zxf elasticsearch-7.0.0-linux-x86_64.tar.gz -C /data/carloz/tools/
cd elasticsearch-7.0.0/

./bin/elasticsearch

这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑。
创建elsearch用户组及elsearch用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
cd /data/carloz/tools/
chown -R elsearch:elsearch elasticsearch-7.0.0/
su elsearch
cd elasticsearch-7.0.0/
./bin/elasticsearch -d

一个警告,操作系统内核版本太低,忽略即可

netstat -nltp | grep 9200

ps aux | grep elastic*

curl ‘http://127.0.0.1:9200'
如下代表启动成功:

配置Elasticsearch

su elsearch
cd /data/carloz/tools/elasticsearch-7.0.0
vi config/elasticsearch.yml
grep -v ^# config/elasticsearch.yml

集群监控
curl -XGET ‘http://localhost:9200/_cluster/health?pretty=true'

安装 Logstash

su root
cd /carloz/download
tar -zxf logstash-7.0.0.tar.gz -C /data/carloz/tools/
cd /data/carloz/tools/logstash-7.0.0/

定义 一个叫 stdin 的数据源,和一个叫stdout的输出目标,无论我们输入什么,都会输出到标准命令行:
./bin/logstash -e ‘input { stdin { } } output { stdout {} }’
等待启动成功之后,输入 hello logastsh

1、Logstash 输入源
2、Logstash 输出目标
3、Logstash 过滤器

定义输入源,输出目标:

mkdir -p myconf
vi myconf/jyweb-nginx.conf

1
2
3
4
5
6
7
8
9
10
11
input{
file{
path => ["/opt/software/nginx/logs/*.log"]
}
}
output{
elasticsearch{
hosts => ["localhost:9200"]
index => "jyweb_nginx_log"
}
}

启动logstash
./bin/logstash -f myconf/jyweb-nginx.conf &

安装 Kibana

tar -zxf /carloz/download/kibana-7.0.0-linux-x86_64.tar.gz -C /data/carloz/tools/
cd /data/carloz/tools/kibana-7.0.0-linux-x86_64

修改配置文件,指向Elasticsearch服务器
vi config/kibana.yml

1
2
3
4
server.port: 5601
server.host: "0.0.0.0"
server.name: "logs-server"
elasticsearch.hosts: ["http://localhost:9200"]

启动
./bin/kibana

访问:http://10.10.139.42:5601