ELK日志分析平台搭建(7.7.0)
用于内网环境限制,该手册搭建linux安装包部署搭建为主,条件允许强烈建议使用Docker进行搭建。
整套部署安装包以7.7.0版本为标准。业余研究,若有不对的地方,希望大家留言指出。
环境准备:CentOS7、JDK11
Elasticsearch部署安装:
下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-7-0
1.解压安装包到指定路径(建议提前df –TH查看一下物理磁盘大小,避免内存不足)
2.开放并修改elasticsearch-7.7.0/config/elasticsearch.yml配置:
cluster.name: elasticsearch-cluster
node.name: es-node1
network.bind_host: 0.0.0.0
network.publish_host: localhost
http.port: 9200
transport.tcp.port: 9300
http.cors.enabled: true
http.cors.allow-origin: "*"
node.master: true
node.data: true
cluster.initial_master_nodes: ["es-node1"] #这里的node-1为node-name配置的值
3.安装ik分词器V7.7.0上传并解压至elasticsearch-7.7.0/plugins/ik(ik文件夹为新建文件夹)
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.7.0
4.启动
Bin目录下执行 ./elasticsearch
报错0:指定启动JDK
解压jdk到指定目录
增加elasticsearch-7.7.0/bin/ elasticsearch 配置
export JAVA_HOME=/dev/ELK/elasticsearch/jdk-11/
export PATH=$JAVA_HOME/bin:$PATH
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/dev/ELK/elasticsearch/jdk-11/bin/java"
else
JAVA=`which java`
fi
报错1:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决
在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
执行/sbin/sysctl -p 立即生效
报错2: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
解决:
编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效
登录后使用ulimit -S -n/ulimit -H -n查看
Logstash部署安装:
下载地址:https://www.elastic.co/cn/downloads/past-releases/logstash-7-7-0
1.解压logstash到指定路径(建议提前df –TH查看一下物理磁盘大小,避免内存不足)
2.由于logstash默认JVM configuration为1G,若本地搭建,建议改小
路径:logstash-7.7.0/config/jvm.options
3.修改:logstash-7.7.0/config/logstash-sample.conf
input {
tcp {
#对外开放端口
port => 5044
#指定json格式
codec => json_lines
}
}
output {
elasticsearch {
action => "index"
#此处为实际Es访问地址
hosts => ["http://192.168.15.131:9200"]
#用来区分各微服务日志标识
index => "%{[appname]}"
}
#控制台输出打印
stdout { codec => rubydebug }
}
若想了解更多logstash配置,请访问: https://github.com/logstash/logstash-logback-encoder
4.启动
[root@localhost config]# ../bin/logstash -f logstash-sample.conf
Kibana部署安装:
下载地址:https://www.elastic.co/cn/downloads/past-releases/kibana-7-7-0
1.解压Kibaba到指定路径(建议提前df –TH查看一下物理磁盘大小,避免内存不足)
2.开放并修改/dev/shm/kibana-7.7.0-linux-x86_64/config/kibana.yml中的配置:
#服务开放端口
server.port: 5601
#允许外部访问
server.host: "0.0.0.0"
#Es实际访问地址
elasticsearch.hosts: ["http://192.168.15.131:9200"]
#汉化配置
i18n.locale: "zh-CN"
3.启动服务
进入bin 执行:./kibana
启动会出现警告日志,只需要耐心等待即可。
出现此处代表已经启动成功。
4.访问:IP:port 出现下面页面,代表成功。
LogBack集成ELK:
1.添加logback依赖:
注意:该处maven依赖有版本差异,最好与下方保持一致。
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
2.logback.xml中添加配置:
<appender name="LOGSTASH"
class="net.logstash.logback.appender.LogstashTcpSocketAppender">
//此处为logstash的ip地址和开放对口
<destination>192.168.15.131:5044</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
//此处用来区分各服务的系统日志标识
<customFields>{"appname":"test"}</customFields>
</encoder>
<connectionStrategy>
<roundRobin>
<connectionTTL>5 minutes</connectionTTL>
</roundRobin>
</connectionStrategy>
</appender>
<root level="info">
<appender-ref ref="LOGSTASH"/>
</root>
Logback与logstash联调:
启动项目后,如logstash出现下方信息输出,代表系统已推送日志到logstash。
在Kibana中查看系统日志
1.建立索引
2.查看日志
备注:以上步骤为搭建时的主要步骤,搭建过程中遇见其他小问题当时没有记录,如遇到,请自行百度或留言。