首页 文章 精选 留言 我的

精选列表

搜索[搭建],共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 直达最佳实践 》》

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

Docker入门-搭建docker私有仓库

Docker Hub 目前Docker官方维护了一个公共仓库Docker Hub,其中已经包括了数量超过15000个镜像。大部分需求都可以通过在Docker Hub中直接下载镜像来使用。 注册登录 可以在https://hub.docker.com 免费注册一个Docker账号。在命令行执行docker login输入用户名及密码来完成在命令行界面登记Docker Hub。你可以通过docker logout退出登录。 拉取镜像 可以通过docker search命令来查找官方仓库中的镜像,并利用docker pull命令来将它下载到本地。 推送镜像 用户也可以在登录后通过docker push命令来将自己的镜像推送到Docker Hub。 修改本地镜像的名字为账号名/镜像名 上传镜像到公共仓库 上传过后,查看远程公共仓库 私有仓库 有时候使用Docker Hub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。 安装运行docker-registry 可以通过获取官方registry镜像来运行。默认情况下,仓库会被创建在容器的/var/lib/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。 docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry 在私有仓库上传、搜索、下载镜像 创建好私有仓库之后,就可以使用docker tag来标记一个镜像,然后推送它到仓库。先在本机查看已有的镜像。 docker image ls 使用docker tag将session-web:latest这个镜像标记为127.0.0.1:5000/session-web:latest格式为docker tag IMAGE:TAG/]REPOSITORY[:TAG] docker tag session-web:latest 127.0.0.1:5000/session-web:latest 使用docker push上传标记的镜像 docker push 127.0.0.1:5000/session-web:latest 用curl查看仓库中的镜像 curl 127.0.0.1:5000/v2/_catlog 如果可以看到{"repositories":["session-web"]},表明镜像已经被成功上传了。 先删除已有镜像,再尝试从私有仓库中下载这个镜像。 docker image rm 127.0.0.1:5000/session-web:latest docker pull 127.0.0.1:5000/session-web:latest 注意事项 如果不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。你就得把例如192.168.1.1:5000这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。 可以用下面方式解决 对于使用systemd的系统,请在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件) { "registry-mirror":[ "http://hub-mirror.c.163.com" ], "insecure-registries":[ "192.168.1.1:5000" ] }

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

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

Apache Tomcat

Apache Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text

Sublime Text

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