YML

Docker基本操作

岁酱吖の 提交于 2020-12-02 05:44:43
一、镜像构建 1、使用pull + commit a、镜像拉取 docker pull,可从官方仓库、第三方库、私有仓库下载 b、启动并进入容器 docker run -it 镜像id /bin/bash c、容器中作修改,eg.安装常用工具 apt-get update 安装vim,apt-get install vim 安装ifconfig,netstat,apt-get install net-tools 安装ping,apt-get install iputils-ping d、保存容器到镜像 docker commit 容器id 镜像名称 2、使用Dockerfile + docker-compose.yml a、编写Dockerfile b、构建基础镜像 docker build -t 镜像名 dockerfile所在路径 eg. docker build -t zhonghaijing/bstkubuntu . c、容器编排, docker-compose.yml 编写 d、容器创建 docker-compose up 二、镜像保存 1、本地保存 持久化镜像 docker save 镜像名 > **.tar eg. docker save zhonghaijing/bstkubuntu > .bstkUbuntu.tar 2、上传到docker hub a

docker 使用过程的问题

扶醉桌前 提交于 2020-12-02 02:42:42
1、有关挂载目录在容器中权限问题: 摘自 :http://note.qidong.name/2018/01/docker-volume-permission/ 在 Docker 中,需要把host的目录挂载到container中作为volume使用时,往往会发生文件权限问题。 常见的现象是,container对该路径并无写权限,以致其中服务的各种千奇百怪的问题。 导致这类问题的原因,是container内外的UID不同。 比如,host当前使用docker的用户UID是1000(这是默认第一个用户的UID)。 如果container内的UID是2000,那么host创建的目录对container来说就并非owner,默认情况下不可写入。 此外还有一种情况,那就是挂载前,host上不存在被挂载的目录。 Docker 会以root权限,先创建该目录,再挂载。 这就导致,即使host与container的UID都是1000,也会出现无写权限的情况。 这种现象,只会在初始化时出现,但也足够令新手困惑,令老手厌烦。 为什么在Dockerfile中不能把volume的权限配置好? 因为Dockerfile是对image的描述,而volume则是container的内容。 Dockerfile中做出的权限配置,对非volume来说是可以生效的,而对volume则不然。 本质上

SpringBoot 项目如何在tomcat容器中运行

风格不统一 提交于 2020-12-01 07:08:35
一. SpringBoot内嵌容器的部署方式 SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当前目录下执行 java -jar demo.jar 即可运行,但是这种方式的运行退出进程就结束了。如果想在后台可以运行,则需要执行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后台运行该服务了,log_demo.file是日志文件。如需停止该进程 执行 ps -ef|grep java 找到对应的进程 kill 进程ID 即可 二. 使用外部的tomcat部署方式 pom.xml文件,dependencies中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> 在pom.xml文件中,project下面packaging标签改为 <packaging>war</packaging> 将项目的启动类Application.java继承SpringBootServletInitializer并重写configure方法

filebeat + ELK 部署篇

心不动则不痛 提交于 2020-11-30 21:48:01
ELK Stack Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能; Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置; Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示; Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。 目前成熟架构(亿级): Filebeat * n + redis + logstash + elasticsearch + kibana 中小型(本文部署): Filebeat*n +logstash + elasticsearch + kibana Docker 部署Filebeat

OpenFeign整合Sentinel

老子叫甜甜 提交于 2020-11-30 07:43:20
一 引入sentinel的依赖 <!-- 服务容错 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> 二 开启sentinel支持 在service_edu的yml配置文件中开启Feign对Sentinel的支持 feign: sentinel: enabled: true 三 创建容错类 @Service @Slf4j public class OssFileServiceFallBack implements OssFileService { /** * 功能描述:服务降级方法 * * @author cakin * @date 2020/11/29 * @return R 返回给前端的数据 */ @Override public R test() { return R.error(); } /** * 功能描述:删除图像服务降级方法 * * @author cakin * @date 2020/11/29 * @param url 图像的ulr地址 * @return R 返回给前端的数据 */ @Override public R removeFile(String

Prometheus+alertmanager监控报警示例

不羁岁月 提交于 2020-11-30 01:24:27
Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,而且很容易做到告警信息进行去重,降噪,分组,策略路由,是一款前卫的告警通知系统。 安装alertmanager #安装go 1.11 $ wget https://studygolang.com/dl/golang/go1.11.linux-amd64.tar.gz $ tar zxvf go1.11.linux-amd64.tar.gz && mv go1.11 /opt/go $ vi /etc/profile 添加 export GOROOT=/opt/go export PATH=$GOROOT/bin:$PATH export GOPATH=/opt/go-project export PATH=$PATH:$GOPATH/bin $ source /etc/profile $ go version #安装alertmanager(或者使用tar包安装) $ git clone https://github.com/prometheus/alertmanager.git $ cd alertmanager/ $ make build 安装成功以后,便可编辑报警配置文件了 配置文件为alertmanager.yml,默认如下所示 global: resolve

Prometheus+Grafana 基础及简单搭建

流过昼夜 提交于 2020-11-28 13:57:27
〇、前言 监控四要素:监控对象、监控软件、监控时间、报警 prometheus官网下载很慢,阿里云镜像站都有,prometheus以及插件的deb包地址: https://mirrors.aliyun.com/ubuntu/pool/universe/p/ 一、Prometheus概述 1、Prometheus基于时间序列的数值数据的容器监控解决方案,是一套开源的监控&报警&时间序列数据库的组合,适合监控docker容器 2、时间序列:按照时间顺序记录系统、设备状态变化的数据,被称为时序数据 3、基于时间序列数据的特点: (1)性能好:关系型数据库处理大规模数据适合性能弱,NOSQL可以比较好的处理,但仍比不上时间序列数据库 (2)存储成本低:搞笑的压缩算法,节省存储空间,有效降低IO 4、Prometheus特征: (1)多维度数据模型 (2)灵活的查询语言 (3)不依赖分布式存储,单个服务器节点即可实现监控 (4)以HTTP方式,通过pull模型拉取时间序列数据 (5)也可以通过中介网关支持push模型 (6)通过服务发现或者静态配置,来发现目标服务对象 (7)支持多种多样的图表和界面显示 5、Prometheus架构图 Prometheus根据配置的任务(job)以周期性pull的方式获取指定目标(target)上的指标(metric)。 (1)Prometheus

ELK集群搭建(2)

自闭症网瘾萝莉.ら 提交于 2020-11-27 16:08:46
ELK集群配置 安装初始化 iptables 关闭 selinux 关闭 配置hosts解析 [root@localhost elasticsearch]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 10.211.55.170 node-1 10.211.55.171 node-2 10.211.55.172 node-3 1、配置三个主机的配置文件 [root@localhost elasticsearch]# cat elasticsearch.yml |grep -v "^#" cluster.name: my-application node.name: node-1 #需要变更的配置 node-2或者node3 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch network.host: 10.211.55.170 #需要变更的配置 ip 为 该机器的IP http.port: 9200 discovery

使用Prometheus+grafana打造高逼格监控平台(赠书)

拈花ヽ惹草 提交于 2020-11-27 09:58:38
点击上方 “ 民工哥技术之路 ” 选择“星标” 每天 10点 为你 分享 不一样的干货 读者福利!多达 2048G 各种资源免费赠送 作者:又耳笔记 原文:https://blog.51cto.com/youerning/2050543 前言: 笔者看来, 监控不应该只是监控,除了及时有效的报警,更应该”好看”,因为视觉上的感受更能给我们直观的感受,更能从绚丽的走势中发现异常, 如果你觉得监控就应该像老牌监控nagios,cacti一样,我想也没什么不对的,因为也许那是你们最适合的,但,你还是可以瞧瞧这个监控能给你带来什么。 效果图 为了你能有更多的动力看下去,这里放一部分通过Prometheus + grafana打造出来的监控平台,效果图如下。 如果你觉得不错可以继续看下去,上面主要是kvm宿主机, ceph集群, 物理机监控,以及ping, 最后一张的监控图没有展开是为了让你可以瞥一眼所能监控的指标条目。 Prometheus架构图 参考:https://prometheus.io/docs/introduction/overview/ 如果你对Prometheus没有接触过,也许会看不懂上面说什么,但是没关系,如果你看完之后,在回过头来瞧瞧,也许就了解这个架构了,也会对Prometheus有一个更深的认识。 这里简单说一下Prometheus的各个部分。

Docker安装Zookeeper集群

别来无恙 提交于 2020-11-25 18:51:50
一、 安装Docker (略) 二、 安装Docker Compose (略) 三、 编写docker-compose.yml文件 3.1 新建配置文件 touch cluster.yml vim cluster.yml cluster.yml 配置如下 version: '3.7' services: zoo1: image: zookeeper:3.5.5 restart: always hostname: zoo1 container_name: zookeeper_1 volumes: - /usr/local/use_data/zookeeper/cluster/zoo_1/data:/data - /usr/local/use_data/zookeeper/cluster/zoo_1/log:/datalog ports: - 2181:2181 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 zoo2: image: zookeeper:3.5.5 restart: always hostname: zoo2 container_name: zookeeper