YML

配置使用Logback统一日志规范

眉间皱痕 提交于 2020-08-17 10:41:08
安装Grep Console插件 Grep Console是一款和IDEA Console相关的插件 可以通过expression表达式过滤日志、给不同级别的日志或者给不同pattern的日志加上背景颜色与上层颜色。 传送门: https://plugins.jetbrains.com/plugin/7125-grep-console/versions 配置logback-spring.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="10 seconds"> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> <!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true --> <!-- scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 --> <!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->

新鲜开源:基于Prometheus的企业监控平台设计与实现

為{幸葍}努か 提交于 2020-08-17 05:22:07
本文根据刘恒滔老师在〖deeplus直播第224期〗线上分享演讲内容整理而成。 (文末有获取本期PPT&回放的方式,不要错过) 大家好,今天跟大家分享的是我们360基于Prometheus开发的监控平台,名字叫“哆啦A梦”,目前已经在GitHub上开源了,这次我主要会分享以下这些内容: Prometheus在360搜索云平台的应用及Alertmanager的痛点 哆啦A梦的设计思路 哆啦A梦的功能介绍 哆啦A梦的快速部署 报警恢复聚合方案 标签匹配筛选 一、Prometheus的应用及Alertmanager的痛点 我们360搜索事业部云平台的Prometheus全部使用容器部署,采用联邦架构,容器监控指标和物理机监控指标全部使用Prometheus进行采集。在使用过程中,我们发现Prometheus自带的报警模块Alertmanager有些地方不是很完善,使用起来不够灵活,具体如下: 无法动态加载监控规则,需要修改配置文件; 使用Alertmanager时,需要修改Prometheus的配置文件将Alertmanager与Prometheus相关联; 无法实现报警升级,不支持获取动态值班组,标签匹配不能动态配置(需要修改配置文件)。 总而言之就是,配置不够方便灵活,需要频繁修改配置文件,学习成本高。 二、哆啦A梦的设计思路 针对上述这些问题,我们开发并开源了哆啦A梦报警平台

SpringBoot配置JDBC连接MySql数据库的时候遇到了报错:HikariPool-1

核能气质少年 提交于 2020-08-17 04:26:38
使用SpringBoot做JAVA开发时,JDBC连接MySql数据库的时候遇到了报错: ERROR 10392 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. WARN 10392 --- [ main] o.s.b.a.orm.jpa.DatabaseLookup : Unable to determine jdbc url from datasource WARN 10392 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata : The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time

NLPchina / elasticsearch-analysis-ansj

左心房为你撑大大i 提交于 2020-08-17 03:41:43
前言 这是一个elasticsearch的中文分词插件,基于ansj,感谢群内热心的朋友。 并宣传一下我们的群QQ211682609 版本对应 plugin elasticsearch 1.0.0 0.90.2 1.x 1.x 2.1.1 2.1.1 2.3.1 2.3.1 2.3.2 2.3.2 2.3.3 2.3.3 2.3.4 2.3.4 2.3.5 2.3.5 2.4.0 2.4.0 2.4.1 2.4.1 2.4.2 2.4.2 2.4.3 2.4.3 2.4.4 2.4.4 2.4.5 2.4.5 2.4.6 2.4.6 5.0.0 5.0.0 5.0.1 5.0.1 5.0.2 5.0.2 5.1.1 5.1.1 5.1.2 5.1.2 5.2.0 5.2.0 5.2.1 5.2.1 5.2.2 5.2.2 5.3.0 5.3.0 5.3.1 5.3.1 5.3.2 5.3.2 5.3.3 5.3.3 5.4.0 5.4.0 5.4.1 5.4.1 5.4.2 5.4.2 5.4.3 5.4.3 5.5.0 5.5.0 5.5.1 5.5.1 5.5.2 5.5.2 5.5.3 5.5.3 5.6.0 5.6.0 5.6.1 5.6.1 5.6.2 5.6.2 5.6.3 5.6.3 5.6.4 5.6.4 5.6.5 5.6.5 5.6.6 5.6.6 5.6.7

kubernetes实战之部署一个接近生产环境的consul集群

风流意气都作罢 提交于 2020-08-16 21:59:42
系列目录 前面我们介绍了如何在windows单机以及如何基于docker部署consul集群,看起来也不是很复杂,然而如果想要把consul部署到kubernetes集群中并充分利用kubernetes集群的伸缩和调度功能并非易事.前面我们首先部署一个节点,部署完成以后获取它的ip,然后其它的ip都join到这个ip里组成集群. 前面的部署方式存在以下问题: 集群易主 我们知道,在kubernetes里,当节点发生故障或者资源不足时,会根据策略杀掉节点的一些pod转而将pod移到其它节点上.这时候我们就需要重新获取主节点ip,然后将新的节点加入进去,以上做法不利于充分发挥kubernetes自身的伸缩功能. 新节点加入 不管是新节点加入或者失败后重新生成的节点重新加入集群,都需要知道主节点ip,这会产生和上面相同的问题,就是需要人工介入. 理想的状态是,当集群主节点切换时,新节点仍然能够在无需人工介入的情况下自动加入集群.我们解决这个问题的思路如下:使用kubernetes集群的dns功能,而不直接硬编码节点的ip.如果集群中有三个server,则这三个sever中必然有一个是主节点,我们可以依次尝试通过dns来解析到具体的节点,依次尝试加入每一个sever节点,尝试到真正的主节点时便能够加入集群. 我们首先创建服务,定义服务的文件名为consul-service.yml

docker db: mysql restart

我们两清 提交于 2020-08-16 21:45:24
需求: 本地化部署一个mysql服务,重启自动启动 mysql 服务 重启服务自己启动 方案 方案一: 本地安装后,service 服务托管 方案二: ansible + docker 重复的事情只做一次的策略,使用ansible + docker docker run -d: 后台运行 --restart=always: 满足服务重启 docker restart docker run参考 restart 参数详解 参数 no – 容器退出时不要自动重启。这个是默认值。 on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。 always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。 unless-stopped – 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。 本机重启后效果: ansible-roles-task-main.yml 官方镜像 常用db之docker-compose - name: "create db_mysql dir" file: path: "{{ db_mysql_root

Logstash to ES 开启权限认证 (x-pack)

非 Y 不嫁゛ 提交于 2020-08-16 08:14:45
应用场景阐述: 本文记录一次解决ElasticSearch开启x-pack安全认证后,logstash无法发送数据至 ES 存储的解决方法。 版本为 logstash-6.8.0、elasticsearch-6.8.0 一、先决条件 首先我们需要 logstash 和 es集群环境,且配置好了 hosts文件映射主机名 例如:vim etc/hosts #es三个节点 pc1 10.20.10.1 pc2 10.20.10.2 pc3 10.20.10.3 logstash-node-1 10.20.10.4 二、开启安全认证 在es主节点的配置文件中(elasticsearch.yml)加入以下一行配置,并重启es,目的是开启安全认证 xpack.security.enabled: true 做完这一步,最基本的安全认证,用户名、密码验证 就配置好了,浏览器访问 http://pc1:9200/ 就会要求输入用户名密码来访问es了 三、设置ES内置用户及密码 1、在Elasticsearch安装目录中运行命令: ./bin/elasticsearch-setup-passwords interactive, 回车之后为每一个用户设置独立的密码。前提是 ES必须为启动状态。 2、你需要在后续步骤中使用这些内置用户,因此务必牢记前面设置的密码! 四、生成我们所需的证书 ca证书

Skywalking的存储配置与调优

杀马特。学长 韩版系。学妹 提交于 2020-08-16 06:13:54
作为一款APM和全链路监控平台,Skywalking算是挺出色的。Skywalking是APM监控平台的后起之秀,大有超越其他开源APM监控平台的趋势。它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,Skywalking APM会感知应用间关系和服务间关系,并进行相应的指标统计。 目前Skywalking支持h2、mysql、ElasticSearch作为数据存储,我就说一下,这三个种库的优缺点和使用要求: 1、首先是默认的h2 h2是Skywalking自带的,对应的jar包路径是Skywalking/oap-libs/h2-1.4.196.jar,h2是一种内存数据库,在Skywalking配置文件的默认配置如下: h2: driver: ${SW_STORAGE_H2_DRIVER:org.h2.jdbcx.JdbcDataSource} url: ${SW_STORAGE_H2_URL:jdbc:h2:mem:skywalking-oap-db} user: ${SW_STORAGE_H2_USER:sa} metadataQueryMaxSize: ${SW_STORAGE_H2_QUERY_MAX_SIZE:5000} 和内存模式的配置区别就是URL换成了文件的路径,默认路径是在用户目录下(如administrator或root或home

Serverless 在大规模数据处理的实践

假如想象 提交于 2020-08-16 04:29:25
简介: Serverless 服务平台可以使您的应用快速水平扩展,并行处理的工作更加有效。本文详细阐述了 Serverless 在大规模数据处理上的实践,并给出了具体的实践案例。 作者 | 西流 阿里云技术专家 前言 当您第一次接触 Serverless 的时候,有一个不那么明显的新使用方式:与传统的基于服务器的方法相比,Serverless 服务平台可以使您的应用快速水平扩展,并行处理的工作更加有效。这主要是因为 Serverless 可以不必为闲置的资源付费,不用担心预留的资源不够。而在传统的使用范式中,用户必须预留成百上千的服务器来做一些高度并行化但执行时长较短的任务,而且必须为每一台服务器买单,即使有的服务器已经不再工作了。 以阿里云 Serverless 产品——函数计算为例,便可以完美解决您上述所有顾虑: 如果您的任务本身计算量不是很大,但是有大量的并发任务请求需要并行处理, 比如多媒体文件处理、文档转换等; 一个任务本身计算量很大,要求单个任务很快处理完,并且还能支持并行处理多个任务。 在这种场景下,用户唯一关注的就是:您的任务是可以分治拆解并且子任务是可以并行处理的,一个需要一个小时才能处理完的长任务,可以分解成 360 个独立的 10 秒长的子任务并行处理,这样,以前您要花一个小时才能处理完的任务,现在只需要 10 秒就可以搞定。由于采用的是按量计费的模型

springBoot使用freemarker生成html页面

走远了吗. 提交于 2020-08-16 02:49:23
背景:服务端有一个壳页面入口,页面包含了可简单的文件引用,静态文件的CDN域名(区分环境)、文件版本号(可能变更) 比如: test环境:<script src="//s1.test.xxcdn.com/xxx/dist/umi.js?v=1.0.1"></script> prod环境:<script src="//s1.prod.xxcdn.com/xxx/dist/umi.js?v=1.0.2"></script> 目标:最简单的方式给前端一个页面,同时,页面中的静态文件域名、版本号可作为参数,从后端写入页面; 方案:使用freemarker模板引擎 前提:springboot类型的应用 操作步骤: 第一步:引入freemarker模板引擎的jar <!-- freemarker模板引擎 --> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.30</version><!-- 用最新的版本号 --> </dependency> 第二步:增加freemarker配置(application.yml),这里只有必要的配置 spring: freemarker: cache: false #是否需要缓存页面,因为版本号需要修改,所以,不能缓存