centos7下安装ELK stack及整合springboot+logback

 

下载ELK

Linux命令备忘

安装Elasticsearch

创建非root用户

更改配置

允许远程访问 

配置系统服务

修改最大打开文件数、最大进程数

启动

注意事项

安装Logstash

Hello World

创建软连接

指定配置文件的Hello World

配置TCP输入

logback配置

配置为系统服务

配置elasticsearch输出

安装kibana

修改配置文件

启动

配置为系统服务

通过kibana查看采集到日志



下载ELK

elasticsearch+kibana下载地址:https://www.elastic.co/cn/start

logstash下载地址:https://www.elastic.co/cn/downloads/logstash

笔者采用的所有版本都是7.4.2,资源链接:https://pan.baidu.com/s/13bjRZGORelM1GDvtYIyadw,提取码:tr1z

解压程序压缩包,并对文件夹赋权

Chmod -R 777 Software

Linux命令备忘

开放5672端口

firewall-cmd --zone=public --add-port=5672/tcp --permanent  

关闭5672端口 

firewall-cmd --zone=public --remove-port=5672/tcp --permanent  

配置立即生效

firewall-cmd --reload 

查看端口占用 

netstat -tunlp | grep 5601

安装Elasticsearch

创建非root用户

由于elasticsearch不能使用root账号运行,所以需要先创建普通用户账号

adduser es
pssswd es
usermod -aG wheel es

更改配置

config文件夹下的jvm.options用于设置JVM参数,这里设置一下内存分配

-Xms512m
-Xmx512m

允许远程访问 

修改config文件夹下的elasticsearch.yml

network.host: 0.0.0.0

配置系统服务

创建系统服务文件

vim /etc/systemd/system/elasticsearch.service

写入 

[Unit]
Description=elasticsearch
[Service]
User=es
ExecStart=/home/Software/elasticsearch-7.4.2/bin/elasticsearch
[Install]
WantedBy=multi-user.target

刷新并配置为开机自启动 

systemctl daemon-reload
systemctl enable elasticsearch

修改最大打开文件数、最大进程数

参考:https://www.cnblogs.com/linus-tan/p/10276289.html

           https://www.jianshu.com/p/1d02c97f3573(重要)

           https://blog.csdn.net/jiahao1186/article/details/90235771(重要)

在文件 /etc/security/limits.conf 最后追加

* hard nofile 65536
* soft nofile 65536

 在文件 /etc/sysctl.conf 最后追加

vm.max_map_count=65536

执行命令

sysctl -p

如果将elasticsearch注册为系统服务,则还需要修改以下文件,否则不能以systemctl命令启动

vim /etc/systemd/system.conf
vim /etc/systemd/user.conf

在这两个文件中设置

DefaultLimitNOFILE=65535
DefaultLimitNPROC=65535

启动

在程序目录下执行

sh bin/elasticsearch

 如果注册为系统服务,可以执行

systemctl start elasticsearch

注意事项

开放端口时,要打开9200-9400所有的端口,因为elasticsearch不仅仅使用了9200和9300,如果只开放9200、9300端口,那么spring-data-elasticsearch将无法连接到elasticsearch,并抛出 failed to load elasticsearch nodes 的ERROR级别异常,以及握手超时等DEBUG异常

 

安装Logstash

Hello World

解压后进入logstash根目录,执行以下命令:

bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

执行命令后,终端等待输入,此时输入"Hello World"并回车,程序启动后将输出:

创建软连接

ln -s /home/Software/logstash-7.4.2/bin/logstash /bin/

然后就可以直接使用logstash命令,而不用指定安装路径

指定配置文件的Hello World

创建logstash.conf文件,笔者放在logstash-7.4.2/confg目录下,文件内容如下:

input{
  stdin{}
}
output{
  stdout{
    codec => rubydebug{}
  }
}

指定配置文件启动程序,笔者是在config目录下执行的这条命令

logstash -f logstash.conf

程序启动后,输入Hello World,可以看到输出

配置TCP输入

修改logstash.conf:

input{
  tcp{
    port => 50001
    mode => "server"
    ssl_enable => false
  }
}
output{
  stdout{
    codec => rubydebug{}
  }
}

另开一个终端,安装nc工具,并发送数据

yum install -y nc
nc 192.168.89.181 50001 < /etc/passwd 
echo "Hello World" > /dev/tcp/192.168.89.181/50001

在启动logstash的终端上可以看到输出

logback配置

引入maven依赖

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>6.2</version>
</dependency>

在logback.xml中配置appender

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.89.181:50001</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"appname":"webapp_ni"}</customFields>
        </encoder>
    </appender>

启动appender 

<root level="DEBUG">
    <appender-ref ref="LOGSTASH"/>
</root>

此时运行springboot程序,在logstash的控制台上可以看到输出 

配置为系统服务

在程序bin目录下执行

sh system-install

这个脚本会将logstash注册为系统服务,但是其服务文件实测有问题,需要作如下修改:

vim /etc/systemd/system/logstash.service
[Unit]
Description=logstash

[Service]
User=root
EnvironmentFile=/etc/default/logstash
EnvironmentFile=/etc/sysconfig/logstash
ExecStart=/home/Software/logstash-7.4.2/bin/logstash -f /home/Software/logstash-7.4.2/config/logstash.conf 
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384

[Install]
WantedBy=multi-user.target

 

然后就可以使用以下命令

设置服务自启动:systemctl enable logstash

启动服务:systemctl start logstash

停止服务:systemctl stop logstash

重启服务:systemctl restart logstash

查看服务状态:systemctl status logstash

配置elasticsearch输出

编辑config/logstash.conf

input{
  tcp{
    port => 50001
    mode => "server"
    ssl_enable => false
  }
}
output{
  elasticsearch{
    action => "index"
    hosts => "127.0.0.1:9200"
    index => "dss2-log"
  }
}

安装kibana

修改配置文件

修改配置文件config/kibana.yml,这里需要注意的是server.host只有设置为"0.0.0.0"时才能远程访问,如果设置为"localhost"或者"127.0.0.1",则只能在本机访问

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

启动

kibana默认不允许以root启动,但是启动时可以带参数强制以root启动

sh kibana --allow-root

配置为系统服务

cat /etc/systemd/system/kibana.service
[Unit]
After=syslog.target
Description=kibana

[Service]
ExecStart=/home/Software/kibana-7.4.2/bin/kibana --allow-root

[Install]
WantedBy=multi-user.target

通过kibana查看采集到日志

index匹配好即可,不详述

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值