【记录搭建elk 如何在linux共享文件】

news2024/10/7 18:31:59

『如何在linux共享文件 ,搭建elk直接看第二部分』

  1. 新增用户a b c
    adduser a
    adduser b
    adduser c
  2. 新增用户组 A
    groupadd developteam
  3. 将用户a b c 加入 组
    usermod -a -G developteam hadoop
    usermod -a -G developteam hbase
    usermod -a -G developteam hive
  4. 设置umask 022
    umask
    umask 022
  5. root创建文件夹
    mkdir -p /tmp/project
  6. 设置属组A
    chown -R :developteam /tmp/project/
    设置组权限
    chmod -R g+w /tmp/project/
  7. sgid
    chmod -R g+s /tmp/project/
    给文件添加了SGID之后文件的属组变成了文件本身的属组,而不是文件的创建者

其他用户可以对文件进行操作:

为防止其他用户的删除操作,对文件添加stick权限 【慎重使用,在git等操作中不要用这个】

 chmod -R o+t /tmp/project/

给文件添加SGID 和stick之后其他用户可以对文件目录都有写的权限但是不能删除其他用户创建的文件。


『第二部分记录搭建elk』

使用

  • ubuntu 22
  • docker

创建docker network

docker network create elastic

三个镜像

docker pull elasticsearch:7.8.0
docker pull logstash:7.8.0
docker pull kibana:7.8.0

elasticsearch 启动!!!

docker run -d --name es01 --net elastic -p 9200:9200 -e "discovery.type=single-node" 121454ddad72[your image id]

es config
进入容器修改 cinfig下的elasticsearch.yml

cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true


退出容器后,重新启动容器
再次进入容器,设置安全认证密码。

/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive

查看是否监听端口9200
ss | grep 9200

访问地地址
http://localhost:9200/

可以遇到的问题:

ElasticSearch 容器中出現的 max virtual memory areas

参考以下
>> 解決 ElasticSearch 容器中出現的 max virtual memory areas
只需要在裡面加上下面這行就行了:

/etc/sysctl.conf
vm.max_map_count=262144

要確認設定有沒有成功,可以透過 sysctl -p 這個指令來驗證。

访问localhost:9200 显示如下,就成功了

{
  "name" : "4895e681875f",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "C8NC8FWcSkqUv9x5M5pGVQ",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

好家伙这么多密码
在这里插入图片描述查看网络
在这里插入图片描述
2. 安装 kibana

docker run -d --name kibana --net elastic -p 5601:5601 -v /data/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.8.0

如果遇到:

FATAL  Error: [config validation of [xpack.reporting].encryptionKey]: value has length [11] but it must have a minimum length of [32].

进入容器修改配置

  1. 修改elasticsearch.hosts 根据你的实际情况
  2. 使用更长的字符 > 32 『你自己随意设置哈』
  3. 修改 elasticsearch.password为刚才你设置的密码
#
# ** THIS IS AN AUTO-GENERATED FILE **
#

# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.18.0.2:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
xpack.reporting.encryptionKey: "sdfbwe83q12gsdfgsdvfshjfvashfn34y372rh32gru32yre32erh2u3hrlibsdfjefe"
xpack.security.encryptionKey: "hsaufhsabfasbhdsbfjbsjhfbshjbfsbfcshjdbf623423gjh234v32hv4h32h3vrhj"

修改完成后,退出并重启容器

  1. 安装logstash

创建logstash 的配置文件
logstash.yml配置如下:

http.host: "0.0.0.0"

xpack.monitoring.elasticsearch.hosts: [ "http://172.19.0.2:9200" ]

xpack.monitoring.enabled: true

path.config: /usr/share/logstash/conf.d/*.conf

path.logs: /var/log/logstash

其中xpack.monitoring.elasticsearch.hosts配置项改为获取到的elasticsearch容器地址

logstash.conf的配置如下:

input {

    tcp {

    mode => "server"

    host => "0.0.0.0"

    port => 5047

    codec => json_lines

}

}

output {

    elasticsearch {

    hosts => "172.19.0.2:9200"

    index => "springboot-logstash-%{+YYYY.MM.dd}"

    user => "elastic"

    password => "123456"

}

}

下面host填写elastsearch容器地址,index为日志索引的名称,user和password填写xpack设置的密码,port为对外开放收集日志的端口

运行logstash

docker run -it -d -p 5047:5047 -p 9600:9600 \
--name logstash --privileged=true  --net elastic -v \
/data/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml -v \
/data/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.8.0

5047端口是刚才port设置的端口

  1. 创建springboot 工程

加入依赖

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

logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?>

<configuration debug="true">

    <!-- 获取spring配置 -->

    <springProperty scope="context" name="logPath" source="log.path" defaultValue="/app/log/elk-biz"/>

    <springProperty scope="context" name="appName" source="spring.application.name"/>

    <!-- 定义变量值的标签 -->

    <property name="LOG_HOME" value="${logPath}"/>

    <property name="SPRING_NAME" value="${appName}"/>


    <!-- 彩色日志依赖的渲染类 -->

    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>

    <conversionRule conversionWord="wex"

                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>

    <conversionRule conversionWord="wEx"

                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>


    <!-- 链路追踪sleuth 格式化输出 以及 控制台颜色设置变量 -->

    <property name="CONSOLE_LOG_PATTERN"

              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [${appName},%yellow(%X{X-B3-TraceId}),%green(%X{X-B3-SpanId}),%blue(%X{X-B3-ParentSpanId})] [%yellow(%thread)] %green(%logger:%L)   :%msg%n"/>


    <!-- #############################################定义日志输出格式以及输出位置########################################## -->

    <!--控制台输出设置-->

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

            <pattern>${CONSOLE_LOG_PATTERN}</pattern>

            <!-- <charset>GBK</charset> -->

        </encoder>

    </appender>


    <!--普通文件输出设置-->

    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <FileNamePattern>${LOG_HOME}/log_${SPRING_NAME}_%d{yyyy-MM-dd}_%i.log</FileNamePattern>

            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <maxFileSize>200MB</maxFileSize>

            </timeBasedFileNamingAndTriggeringPolicy>

        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

        </encoder>

    </appender>


    <!--aop接口日志拦截文件输出-->

    <appender name="bizAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

            <FileNamePattern>${LOG_HOME}/log_%d{yyyy-MM-dd}_%i.log</FileNamePattern>

            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

                <maxFileSize>200MB</maxFileSize>

            </timeBasedFileNamingAndTriggeringPolicy>

        </rollingPolicy>

        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>

        </encoder>

    </appender>


    <!--开启tcp格式的logstash传输,通过TCP协议连接Logstash-->

    <!--    <appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">-->

    <!--        <destination>10.11.74.123:9600</destination>-->

    <!--        <encoder class="net.logstash.logback.encoder.LogstashEncoder" />-->

    <!--    </appender>-->

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">

        <!--可以访问的logstash日志收集端口-->

        <destination>localhost:5047</destination>

        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>

        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">

            <providers>

                <timestamp>

                    <timeZone>Asia/Shanghai</timeZone>

                </timestamp>

                <pattern>

                    <pattern>

                        {

                        "app_name":"${SPRING_NAME}",

                        "traceid":"%X{traceid}",

                        "ip": "%X{ip}",

                        "server_name": "%X{server_name}",

                        "level": "%level",

                        "trace": "%X{X-B3-TraceId:-}",

                        "span": "%X{X-B3-SpanId:-}",

                        "parent": "%X{X-B3-ParentSpanId:-}",

                        "thread": "%thread",

                        "class": "%logger{40} - %M:%L",

                        "message": "%message",

                        "stack_trace": "%exception{10}"

                        }

                    </pattern>

                </pattern>

            </providers>

        </encoder>

    </appender>


    <!-- #############################################设置输出日志输出等级########################################## -->

    <!-- mybatis log configure-->

    <!-- logger设置某一个包或者具体的某一个类的日志打印级别 -->

    <logger name="com.apache.ibatis" level="TRACE"/>

    <logger name="java.sql.Connection" level="DEBUG"/>

    <logger name="java.sql.Statement" level="DEBUG"/>

    <logger name="java.sql.PreparedStatement" level="DEBUG"/>

    <logger name="org.apache.ibatis.logging.stdout.StdOutImpl" level="DEBUG"/>


    <!-- SaveLogAspect log configure外部接口调用-->

    <!-- logger设置某一个包或者具体的某一个类的日志打印级别 -->

    <logger name="com.springweb.baseweb.log.aop.SaveLogAspect" additivity="false" level="INFO">

        <!-- 同时输出到两个文件 -->

        <appender-ref ref="bizAppender"/>

        <appender-ref ref="FILE"/>

    </logger>


    <root level="INFO">

        <!-- 默认日志文件输出 -->

        <appender-ref ref="FILE"/>

        <appender-ref ref="STDOUT"/>


        <!-- 默认日志文件输出logstash -->

        <appender-ref ref="LOGSTASH"/>

    </root>


</configuration>

增加一个web端点
加入日志


@RestController
@RequestMapping("/")
@SpringBootApplication
public class ElkApplication {

   public static void main(String[] args) {
   	SpringApplication.run(ElkApplication.class, args);
   }

   private final Logger logger = LoggerFactory.getLogger(ElkApplication.class);

   @GetMapping("")
   public void test() {
   	logger.warn("警告 哈哈");
   	logger.info("普通日志");
   	logger.debug("debug 日志");
   	logger.error("出错拉");
   }
}

登陆
http://localhost:5601/ 查看

参考:
https://juejin.cn/post/7057767570891341861
https://blog.csdn.net/u010554294/article/details/88996397
https://ouch1978.github.io/docs/containerization/trouble-shooting/fix-vm-max-map-count-is-too-low

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1524658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flutter 核心原理 - UI 框架(UI Framework)

Flutter 既能保证很高的开发效率&#xff0c;又能获得很好的性能。 这两年 Flutter 技术热度持续提高&#xff0c;整个 Flutter 生态和社区也发生了翻天覆地的变化。目前Flutter 稳定版发布到了3.0&#xff0c;现在已经支持移动端、Web端和PC端&#xff0c;通过Flutter 开发的…

【计算机视觉】二、图像形成——实验:2D变换编辑器2.0(Pygame)

文章目录 一、向量和矩阵的基本运算二、几何基元和变换1、几何基元(Geometric Primitives)2、几何变换(Geometric Transformations)2D变换编辑器0. 项目结构1. Package: guibutton.pywindow.py1. __init__(self, width, height, title)2. add_buttons(self)3. clear(self)4. dr…

WEB前端 HTML 列表表格

列表 有序列表 使用“ol”创建“有序列表”&#xff0c;使用“li”表示“列表项” <body><ol type"1"><li>列表1</li><li>列表2</li><li>列表3</li></ol><ol type"A"><li>列表A<…

Redis进阶——redis消息队列

目录 redis消息队列认识消息队列基于List实现消息队列如何基于List结构模拟消息队列基于List的消息队列有哪些优缺点&#xff1f; 基于PubSub的消息队列基于Stream的消息队列读取消息的方式之一&#xff1a;XREAD基于Stream的消息队列–消费者组redis三种消息队列的对比 Stream…

Spring炼气之路(炼气二层)

一、bean的配置 1.1 bean的基础配置 id&#xff1a; bean的id&#xff0c;使用容器可以通过id值获取对应的bean&#xff0c;在一个容器中id值唯一 class&#xff1a; bean的类型&#xff0c;即配置的bean的全路径类名 <bean id"bookDao" class "com.zhang…

Java八股文(MyBatis Plus)

Java八股文のMyBatis Plus MyBatis Plus MyBatis Plus MyBatis Plus 是什么&#xff1f;它与 MyBatis 有什么区别&#xff1f; MyBatis Plus 是基于 MyBatis 进行扩展的一款持久层框架&#xff0c;它提供了一系列增强功能&#xff0c;简化了 MyBatis 的使用。 与 MyBatis 相比…

(十八)【Jmeter】取样器(Sampler)之BeanShell 取样器

简述 操作路径如下: 作用:通过Beanshell脚本来编写自定义请求。配置:编写Beanshell脚本代码,实现请求逻辑。使用场景:在JMeter中利用Beanshell脚本语言的特性进行自定义请求。优点:可以利用Beanshell脚本语言的丰富功能。缺点:脚本语言的性能可能不如其他编译语言,且…

论文阅读——SpectralGPT

SpectralGPT: Spectral Foundation Model SpectralGPT的通用RS基础模型&#xff0c;该模型专门用于使用新型3D生成预训练Transformer&#xff08;GPT&#xff09;处理光谱RS图像。 重建损失由两个部分组成&#xff1a;令牌到令牌和频谱到频谱 下游任务&#xff1a;

Linux进程管理:(六)SMP负载均衡

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 前置知识 1.1 CPU管理位图 内核…

使用Java Runtime执行docker下的mysqldump

Runtime直接使用 docker exec mysql mysqldump -u%s -p%s cblog > %s&#xff08;%s是需要填充的数据&#xff09;&#xff0c;命令无法执行并且不会报错&#xff0c;需要使用字符串数组加入"sh", “-c”&#xff0c;具体代码示例&#xff1a; /*** MySQL数据备份…

无线局域网——wlan

目录 一.wlan的含义和发展 二.wlan技术带来的挑战 1.企业办公场景多样 2.位置速度的要求 3.安全的要求 4.规范的挑战 三.家庭和企业不同的部署需求 1.胖AP模式组网 2.AC瘦AP模式组网 3.组网模式的不同 四.三层隧道转发实验 1.拓扑 2.AP上线 核心交换机vlan ​编辑…

Magical Combat VFX

这个包包含30个可供游戏使用的VFX,有各种口味,为您的游戏增添趣味! 所有VFX都经过了很好的优化,可以在所有平台上使用。 这个包特别有一堆闪电魔法,有两种主要的变体,一种是深色的,另一种是浅色的。但它也提供了一系列其他视觉效果,如神圣咒语、音乐主题等等! 我们提供…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景&#xff1a; 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题&#xff1a; 升级谷歌浏览器最新chrome94版本后&#xff0c;提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

uni-app发布 h5 与ASP .NET MVC 后台 发布 到 IIS的同一端口 并配置跨域

iis 安装URL重写 选择对应的后台项目&#xff0c;进行url重写 编辑【模式】部分的内容的重写规则&#xff0c;我这里是h5中请求的前缀是api&#xff0c;大家可以根据自己的前缀进行修改。 编写【操作类型】为重写&#xff0c;并写重写url&#xff0c;按照图中设置即可。 uni…

使用Python构建RESTful API的最佳实践【第137篇—RESTful API】

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python构建RESTful API的最佳实践 在当今的软件开发中&#xff0c;构建RESTful API已经…

【系统性】 循序渐进学C++

循序渐进学C 第一阶段&#xff1a;基础 一、环境配置 1.1.第一个程序&#xff08;基本格式&#xff09; ​ #include <iosteam> using namespace std;int main(){cout<<"hello world"<<endl;system("pause"); }​ 模板 #include &…

【开源鸿蒙】编译OpenHarmony轻量系统QEMU RISC-V版

文章目录 一、背景介绍二、准备OpenHarmony源代码三、准备hb命令3.1 安装hb命令3.2 检查hb命令 四、编译RISC-V架构的OpenHarmony轻量系统4.1 设置hb构建目标4.2 启动hb构建过程 五、问题解决5.1 hb set 报错问题解决 六、参考链接 开源鸿蒙坚果派&#xff0c;学习鸿蒙一起来&a…

【开源】SpringBoot框架开发二手车交易系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 二手车档案管理模块2.3 车辆预约管理模块2.4 车辆预定管理模块2.5 车辆留言板管理模块2.6 车辆资讯管理模块 三、系统设计3.1 E-R图设计3.2 可行性分析3.2.1 技术可行性分析3.2.2 操作可行性3.2.3 经济…

HarmonyOS NEXT应用开发—发布图片评论

介绍 本示例将通过发布图片评论场景&#xff0c;介绍如何使用startAbilityForResult接口拉起相机拍照&#xff0c;并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机&#xff0c;拍照后获取图片地址。 实现思路 创建CommentData类&#…

vue ui 无反应解决方法

cmd 输入vue ui 无反应解决方法 在学习vuex的过程中&#xff0c;需要用到vue ui 建立项目&#xff0c;遇到的问题记录一下&#xff0c;希望能够以帮助有问题的其他人 查看vue版本 vue --version 或者 vue -V 发现vue版本才2.9.6 由于vue ui 命令需要vue3.0以上&#xff0c;…