ELK
简介
ELK分别表示:Elasticsearch , Logstash, Kibana 。他们组成了一套完整的日志系统的解决方案。
- Logstash 对各个服务的日志进行采集、过滤、推送。
- Elasticsearch 存储Logstash传送的结构化数据,提供给Kibana。
- Kibana 提供用户UIweb页面进行,数据展示和分析形成图表等。
ELK架构
ELK版本对应关系
环境配置
下载工具wget
yum install wget -y
解压缩工具zip
yum install zip unzip
java环境
下载
去官方网站下载:
jdk-8u181-linux-x64.rpm
或者执行
wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.rpm?AuthParam=1532483945_1ce1c40fee9c74cdfb2c8c33ba817e88
下载完毕后重命名rpm包
mv jdk-8u181-linux-x64.rpm?AuthParam=1532483945_1ce1c40fee9c74cdfb2c8c33ba817e88 jdk-8u181-linux-x64.rpm
安装
rpm -ivh jdk-8u181-linux-x64.rpm
验证是否安装成功
上面所有的步骤完成之后,这时候我们需要检查是否安装成功,输入如下命令,如图所示:
java -version
echo $JAVA_HOME
elisticsearch 2.4.6
下载
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.4.6/elasticsearch-2.4.6.zip
解压缩
unzip elasticsearch-2.4.6.zip
配置允许root启动
若想以以root权限运行Elasticsearch.解决办法是运行时加上参数:
bin/elasticsearch -Des.insecure.allow.root=true
或者修改bin/elasticsearch,加上ES_JAVA_OPTS属性:
ES_JAVA_OPTS="-Des.insecure.allow.root=true"
关闭防火墙
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld
配置config/elisticearch.yml
cluster.name: mntx-cluster
node.name= node-1
network.host:192.168.29.129
http.port:9200
启动elasticsearch
./elasticsearch-2.4.6/bin/elasticsearch
后台运行
./elasticsearch-2.4.6/bin/elasticsearch &
验证是否启动成功
Head插件安装
elasticsearch/bin/plugin install mobz/elasticsearch-head
head插件的使用
http://192.168.29.129:9200/_plugin/head/
Logtash 2.4.6
下载
Wget https://download.elastic.co/logstash/logstash/logstash-2.4.1.zip
解压缩:
unzip logstash-2.4.1.zip
新建配置文件logstash-es.conf:
touch ./logstash-2.4.1/config/logstash-es.conf
input {
tcp {
port => 9601
codec => json_lines
}
}
output {
elasticsearch {
# 此处配置需要连接的elashticsearch地址
hosts => "localhost:9200"
}
stdout { codec => rubydebug}
}
注意缩进要符合规范
安装logstash json插件
./bin/logstash-plugin install logstash-codec-json_lines
运行logstash
./bin/logstash -f ./config/logback-es.conf ##命令窗形式
./bin/logstash -f ./config/logback-es.conf & ##后台线程
关闭logstash
ps -ef | grep logstash #后台线程关闭
kill -9 4617 ##pid 4617 为查处线程的pid
安装kibana
下载
wget https://download.elastic.co/kibana/kibana/kibana-4.6.6-linux-x86_64.tar.gz
解压缩
tar -xzvf kibana-4.6.6-linux-x86_64.tar.gz
配置
vi ./config/kibana.yml
server.port: 5601 ##服务端口
server.host: "localhost" ##服务器ip 本机
elasticsearch.url: "http://localhost:9200" ##elasticsearch服务地址 与elasticsearch对应
启动
./bin/kibana #命令窗启动
./bin/kibana &
配置Sptingboot项目
pom文件依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
logback.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.253.6:9601</destination> <!--指定logstash ip:监听端口 tcpAppender 可自己实现如kafka传输等-->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<include resource="org/springframework/boot/logging/logback/base.xml"/> <!--引用springboot默认配置-->
<root level="INFO">
<appender-ref ref="LOGSTASH" /> <!--使用上述订阅logstash数据tcp传输 -->
<appender-ref ref="CONSOLE" /> <!--使用springboot默认配置 调试窗口输出-->
</root>
</configuration>
测试
SpringbootLogbackApplication.java 测试,写一个循环100次的日志记录
@SpringBootApplication
public class SpringbootLogbackApplication {
private final static Logger logger = LoggerFactory.getLogger(SpringbootLogbackApplication.class);
public static void main(String[] args) {
new Thread(()->{
for (int i=0;i<100;i++){
logger.info("---test---"+i);
}
}).start();
SpringApplication.run(SpringbootLogbackApplication.class, args);
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。