文章目录
- ES
- 安装ES
- 启动ES
- 错误处理
- 验证
- Kibana
- 安装Kibana
- 启动 Kibana
- Logstash
- 安装Logstash
- 启动Logstash
- 项目整合
- 引入依赖
- logback-spring.xml
- 启动项目
- 在Kibana中查看
链接:点击
提取码:yyds
ES
安装ES
cat >> /etc/sysctl.conf<<- 'EOF'
net.ipv4.ip_forward=1
vm.max_map_count=655360
EOF
sysctl -p
创建 目录、修改 配置
mkdir -p /usr/local/elasticsearch/
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/
cd /usr/local/elasticsearch/elasticsearch-7.8.0
vim /usr/local/elasticsearch/elasticsearch-7.8.0/config/elasticsearch.yml
修改以下几项:
node.name: node-1 # 设置节点名
network.host: 0.0.0.0 # 允许外部 ip 访问
cluster.initial_master_nodes: ["node-1"] # 设置集群初始主节点
ES为了安全考虑不允许使用root用户启动ElasticSearch
,所以需要新建一个普通用户启动程序
adduser es
passwd es
# 12345678
chown -R es /usr/local/elasticsearch
su es
启动ES
/usr/local/elasticsearch/elasticsearch-7.8.0/bin/elasticsearch -d
错误处理
启动之后可能会报以下三个错误:
ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max number of threads [3795] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方式:
需 切换到root
用户解决错误:
# 切换到 root 用户
[es@localhost elasticsearch-7.8.0]$ su root
# 然后 输入密码
[1] 和 [2] 的解决方法:
# 修改 /etc/security/limits.conf 文件
[root@localhost elasticsearch-7.8.0]# vim /etc/security/limits.conf
# 添加以下四行
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
[3] 的解决方法:
# 修改 /etc/sysctl.conf 文件
[root@localhost elasticsearch-7.8.0]# vim /etc/sysctl.conf
# 添加下面一行
vm.max_map_count=655360
# 执行命令
[root@localhost elasticsearch-7.8.0]# sysctl -p
切换到用户 es
重新启动程序就可以了。
验证
注意: 防火墙
需要开放9200端口
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9200/udp
firewall-cmd --reload
访问:http://192.168.111.101:9200
su root
# 输入密码
Kibana
安装Kibana
tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/kibana-7.8.0-linux-x86_64/ /usr/local/kibana-7.8.0 # 改名
cd /usr/local/kibana-7.8.0/
vim /usr/local/kibana-7.8.0/config/kibana.yml
修改的内容:
server.port: 5601 # 服务端口
server.host: "0.0.0.0" # 服务器ip 本机
elasticsearch.hosts: ["http://192.168.111.101:9200"] # Elasticsearch 服务地址
i18n.locale: "zh-CN" # 设置语言为中文
授权
chown -R es /usr/local/kibana-7.8.0/
su es
启动 Kibana
注意:启动 Kibana 之前
需要先启动 Elasticsearch
需要先配置防火墙打开5601端口:
firewall-cmd --permanent --add-port=5601/tcp
firewall-cmd --permanent --add-port=5601/udp
firewall-cmd --reload
/usr/local/kibana-7.8.0/bin/kibana # 前台启动
nohup /usr/local/kibana-7.8.0/bin/kibana & #后台启动
访问地址:http://192.168.111.101:5601/
su root
# 输入密码
Logstash
安装Logstash
tar -zxvf logstash-7.8.0.tar.gz -C /usr/local/
cd /usr/local/logstash-7.8.0/config/
cp logstash-sample.conf logstash-es.conf
vi logstash-es.conf
替换为:
input{
tcp{
port => 9601
codec => json_lines
}
}
output{
# 这个是logstash的控制台打印(进行安装调试的时候开启,稍后成功后去掉这个配置即可!)
stdout{
codec => rubydebug
}
#elasticsearch的配置
elasticsearch{
hosts => ["192.168.111.101:9200"]
# 索引名称,没有会自动创建
index => "logstash-%{[server_name]}-%{+YYYY.MM.dd}"
}
}
启动Logstash
cd /usr/local/logstash-7.8.0/
./bin/logstash -f ./config/logstash-es.conf
成功启动!
项目整合
引入依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--控制台输出-->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) %highlight(%-5level) ${PID:-} [%thread] %cyan(%logger{50}.%M.%L) : %highlight(%msg) %n
</Pattern>
</layout>
</appender>
<!-- 输出到 STASH -->
<appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>192.168.111.101:9601</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<!-- 打印行号、方法名,官方 不建议在 生产环境开启,默认为 false,开启耗时=360*未开启-->
<includeCallerData>true</includeCallerData>
<!-- 设置时区-->
<timeZone>UTC</timeZone>
<!-- 日期格式化-->
<!-- 添加自定义属性,server_name 是 服务名-->
<customFields>{"server_name":"demo-server"}</customFields>
</encoder>
<!-- 设置超时 时间,默认没有,使用集群时可以使用!-->
<!--<writeTimeout>30 seconds</writeTimeout>-->
</appender>
<root level="INFO">
<!-- 控制台输出打开,线上部署时将控制台输出关闭!!!-->
<appender-ref ref="STASH"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
日志的格式:
输出到 logstash:
启动项目
可以看到 有日志
在Kibana中查看
可以在这里管理索引
再次点击Discovery即可