分类 技术 下的文章

golang请求https时failed to load system roots解决方案

使用Golang进行https进行请求时,遇到了failed to load system roots的问题, 因为是跑在docker中的缘故,发现时没有安装ca-certificates,安装即可。

附alpine安装方法:

apk update && apk add ca-certificates

或者直接使用我做好的基础alpine镜像,将源切换到了ustc,安装了glibc解决golang使用cgo编译某些不能跑通的bug,同时安装了ca-certificates

镜像:

docker pull scofieldpeng/alpine:glibc-2.7

Dockerfile文件指南

简介

dockerfile是专门用来构建镜像的文件,使用docker build命令来进行镜像的构建。

通常为docker build -t ${imageName}:${tagName} .,指使用当前目录下的Dockerfile文件来进行镜像构建。如果需要指定具体某个Dockerfile文件,可以使用-f参数,例如docker build -t ${imageName}:${tagName} -f /path/to/dockerfile .来进行构建。

- 阅读剩余部分 -

Docker安装typecho

缘起

由于上周企鹅云学生机超级大促销,恰逢千万云和在香港的云主机都快要到期,果断薅了6年多的低配主机,由于涉及到博客的迁移,为了让以后的更加省事儿和方便,决定将typecho搭建的博客全部用docker进行部署。在这里记录下,方便后期。

- 阅读剩余部分 -

telegraf 笔记

官方Github地址:

https://github.com/influxdata/telegraf

input 的grok 文档:

https://github.com/influxdata/telegraf/tree/master/plugins/inputs/logparser

logparser 用来监听 log 文件的变化,主要用 grok,而 grok 是 logstash 的语法,文档在这里:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

如果要测试 grok,这里有一个在线的测试http://grokdebug.herokuapp.com/

telegraf 的 telegraf 配置

[[inputs.logparser]]
files=["/Users/scofield/go/src/git.coding.net/zzjz/payment.git/log/*.log"]
from_beginning=false
watch_method="inotify"
tags=["level"]
  [inputs.logparser.grok]
  patterns=['\[%{LOGLEVEL:level}\] %{TIMESTAMP_ISO8601:timestamp:ts-"2006-01-02 15:04:05"} %{UNIXPATH:file}:%{NUMBER:line:int} %{MESSAGE:message}']
  measurement="payment_log"
  custom_patterns='''
      MESSAGE [\w\W]{1,}
  '''
  timezone="Asia/Shanghai"

nsq在docker部署后nsqadmin无法resolve所有nsqd的host的解决方法

问题

最开始部署 nsq 的时候是直接在云主机上直接部署的,但是作为一个牛逼的程序猿,哦不,紧跟潮流,哦不, 方便扩缩容, 怎么能不上 docker 呢? 于是我就上了 docker, 和所有玩法一样,跟着 nsq 官方文档上留的那个 docker-composer.yaml 文件copy 了一份 yaml, 然后docker-compose up -d,愉快玩耍去了,直到有一天,我想看下队列的一些数据,进入了 nsqadmin 准备看某个 nsqd 的数据时,蹦出了下面这个:

- 阅读剩余部分 -