首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

EFK实战一 - 基础环境搭建

在分布式系统中,由于节点服务会部署多台,一旦出现线上问题需要通过日志分析定位问题就需要登录服务器一台一台进行日志检索,非常不便利,这时候就需要用到EFK日志收集工具。 在应用服务端部署Filebeat,将我们打印到日志文件中的日志发送到Logstash中,在经过Logstash的解析格式化后将日志发送到ElasticSearch中,最后通过Kibana展现出来。EFK基础版的架构如下: 本文主要是使用docker和docker-Compose部署ELK的基础环境,选择7.5.1作为EFK组件版本。 当然了如果大家对 docker,docker-compose不是很熟悉的话可以翻看我之前为大家准备的两篇文章: Docker基础与实战,看这一篇就够了 Docker-Compose基础与实战,看这一篇就够了 实在不想使用docker部署的话也可以下载对应的安装包然后手动部署,配置方式基本一样。 安装配置 elasticsearch 安装elasticsearch之前先配置如下的系统变量 修改 /etc/sysctl.conf,在最后追加如下配置 vm.max_map_count = 655360 修改 /etc/security/limits.conf,增加如下配置 * soft memlock unlimited * hard memlock unlimited * hard nofile 65536 * soft nofile 65536 修改 /etc/security/limits.d/20-nproc.conf,增加如下配置 * soft nproc 4096 root soft nproc unlimited 启动elasticsearch临时容器 docker run --rm --name es -p9200:9200 -p9300:9300 -e discovery.type=single-node elasticsearch:7.5.1 导出elasticsearch配置文件 docker cp fbce586c8a56:/usr/share/elasticsearch/config/elasticsearch.yml /app/elk/elasticsearch/conf/elasticsearch.yml 修改es配置文件 cluster.name:"elk-cluster" network.host:0.0.0.0 bootstrap.memory_lock:true discovery.type:single-node 建立es的日志文件夹和数据文件夹,并对文件夹授权 mkdir-p/app/elk/elasticsearch/logs mkdir-p/app/elk/elasticsearch/data chmod-R777/app/elk/elasticsearch/logs chmod-R777/app/elk/elasticsearch/data 停止临时容器 docker stop fbce586c8a56 logstash 启动临时容器 docker run --rm --name logstash -p5044:5044 -p9600:9600 logstash:7.5.1 导出docker的配置文件 docker cp 5adb0971bb0f:/usr/share/logstash/config /app/elk/logstash 建立logstash数据文件夹,并对其授权 mkdir-p/app/elk/logstash/data chmod-R777/app/elk/logstash/data 复制logstash启动文件,并对其修改 cd/app/elk/logstash/config cplogstash-sample.conflogstash.conf 修改logstash.conf,配置output # Sample Logstash configuration for creating a simple # Beats -> Logstash -> Elasticsearch pipeline. input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://172.31.0.207:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } } 暂时修改一下ES的访问路径即可。 停止临时容器 docker stop 5adb0971bb0f kibana 启动临时容器 docker run --rm --name kibana -p5601:5601 kibana:7.5.1 导出kibana配置文件 docker cp f21f0f9e0259:/usr/share/kibana/config/kibana.yml /app/elk/kibana/conf/kibana.yml 修改kibana配置 server.name:kibana server.host:"0" elasticsearch.hosts:["http://172.31.0.207:9200"] xpack.monitoring.ui.container.elasticsearch.enabled:true i18n.locale:zh-CN 设置 i18n.locale: zh-CN属性后会对kibana进行汉化,这样便于操作,主要还是我英语不太好~ 停止临时容器 docker stop f21f0f9e0259 docker-compose 经过上面的准备,我们可以编写 docker-compose文件,方便我们对容器进行编排,一键启动。有了之前的基础,我们很容易编写出对应的yml文件,编写后的内容如下: version:"3" services: elasticsearch: image:docker.io/elasticsearch:7.5.1 container_name:elasticsearch environment: -"ES_JAVA_OPTS=-Xms4096m-Xmx4096m-Xmn1300m" volumes: -/app/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -/app/elk/elasticsearch/data:/usr/share/elasticsearch/data:rw -/app/elk/elasticsearch/logs:/usr/share/elasticsearch/logs:rw ports: -"9200:9200" -"9300:9300" restart:always kibana: image:docker.io/kibana:7.5.1 container_name:kibana volumes: -/app/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml ports: -"5601:5601" depends_on: -elasticsearch restart:always logstash: image:logstash:7.5.1 container_name:logstash command:logstash-f/usr/share/logstash/config/logstash.conf volumes: -/app/elk/logstash/config:/usr/share/logstash/config -/app/elk/logstash/data:/usr/share/logstash/data ports: -"9600:9600" -"5044:5044" depends_on: -elasticsearch restart:always 将docker-compose文件上传至服务器,启动docker服务 docker-compose -f elk.yml up -d 启动完成后访问kibana地址 http://172.31.0.207:5601/验证是否正常访问 安全认证 我们刚刚部署的elk环境是不需要密码就可以登录kibana的,这样谁都可以访问而且可以更改数据。所以我们需要给kibana加个密码,必须要登录才可以进行操作。 主要是利用elasticsearch自带的xpack作为权限验证功能。操作步骤如下: 修改es外部配置文件 /app/elk/elasticsearch/conf/elasticsearch.yml,开启权限验证 xpack.security.enabled:true 重启 elasticsearch服务 docker-compose -f elk.yml restart elasticsearch 进入es容器,为内置账号设置密码 dockerexec-itelasticsearch/bin/bash cd/usr/share/elasticsearch/bin ./elasticsearch-setup-passwordsinteractive 修改kibana配置文件 /app/elk/kibana/conf/kibana.yml elasticsearch.username:"elastic" elasticsearch.password:"xxxxxx" 重启kibanadocker-compose -f elk.yml restart kibana 重新访问kibana,并使用上面设置的elastic账号进行登录 至此我们顺利给ELK加上了安全认证,可以放心在生产环境部署使用了! 如果本文对你有帮助, 别忘记来个三连: 点赞,转发,评论 本文分享自微信公众号 - JAVA日知录(javadaily)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

函数计算搭建前端CICD系统

场景描述 传统动静不分离的产品架构,随着访问量在增长,性能会成为瓶颈。在这种情况下,用户可以通过利用OSS和CDN对网站进行架构优化,做到网站文件的动静分离,提升用户访问体验,实现成本可控。本方案使用函数计算监听前端代码库提交的分支变更,上传分支文件至OSS,通过CDN进行前端资源加速。 方案优势 面向serverless:无需购买服务器 免运维:无需部署配置Jenkins 提供日志查询、性能监控和报警等功能 一站式:事件驱动方式触发响应 费用极低:按需付费 产品列表 专有网络VPC 对象存储OSS 日志服务SLS 函数计算 CDN 直达最佳实践 》》

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册