ELK日志系统搭建

链接:点击
提取码: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即可
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值