ops

records of learning.

Zabbix使用Telegram发送报警

环境 CentOS 6.X x86_64 编译Telegram yum -y install lua-devel openssl-devel libconfig-devel readline-devel libevent-devel git clone --recursive https://github.com/vysheng/tg.git cd tg ./configure make mkdir /usr/local/tg cp tg-server.pub /usr/local/tg cp bin/telegram-cli /usr/local/tg zabbix报警脚本/usr/local/tg/telegram.sh: #!/bin/sh cd `dirname $0` ./telegram-cli -k tg-server.pub -WDCRE -P 8890 -d &>/dev/null & Zabbix报警配置 将如下Zabbix Server配置注释并修改如下 AlertScriptsPath=/usr/local/zabbix/alertscripts /usr/local/zabbix/alertscripts/tg.sh内容如下: #!/bin/sh export to=$1; export subject=$2; export body=$3; echo -e "msg $to ${subject}_#_${body}" | nc localhost 8890 #注意事项: body只能有一行内容,超过一行的内容是不会发送的。 Zabbix添加Media types PS:Telegram已于2015年7月10日被天朝和谐。。。

Monitor SSL certificate expiry

看到网上弄了个zabbix监控SSL证书过期时间的,给咱业务也加了个此监控。 改进如下: 基于域名监控(一台服务器上有多个证书) 当前使用的shell脚本如下 #!/bin/sh host=$1 port=443 end_date=`openssl s_client -servername $host -host $host -port $port -showcerts </dev/null 2>/dev/null | sed -n '/BEGIN CERTIFICATE/,/END CERT/p' | openssl x509 -text 2>/dev/null | sed -n 's/ *Not After : *//p'` # openssl 检验和验证SSL证书。 # -servername $host 因一台主机存在多个证书,利用SNI特性检查 # </dev/null 定向标准输入,防止交互式程序Hang。从/dev/null 读时,直接读出0 。 # sed -n 和p 一起使用,仅显示匹配到的部分。 //,// 区间匹配。 # openssl x509 -text 解码证书信息,包含证书的有效期。 if [ -n "$end_date" ] then end_date_seconds=`date '+%s' --date "$end_date"` now_seconds=`date '+%s'` echo "($end_date_seconds-$now_seconds)/24/3600" | bc fi

使用Hugo搭建免费个人Blog

Hugo是什么 Hugo是一个工具,可以用于搭建静态站点,类似jekyll,不过Hugo是Golang写的,大家应该知道Golang有一个对部署友好的特点,那就是静态编译,所以安装起来非常方便,不像jekyll安装起来比较麻烦。 可能有些读者也不知道jekyll是干啥的,我这简单解释一下,这些软件通常可以叫做静态站点生成器,我们可以使用Markdown格式编写一些文本,按照指定的目录结构存放,然后再在指定的目录里放置css等静态文件,jekyll就可以帮你生成一个静态站点。那既然是静态站点,你就可以很方便的部署了,因为只要搭配一个web server即可,甚至可以部署在github pages上,ops.m114.org是部署在gitcafe pages上的,这样国人访问速度快一些。因为github和gitcafe的pages功能是免费的,这也是我标题中“免费”二次的原因 Hugo的使用 Hugo的官网是gohugo.io,里边有个Docs,大家可以跟着走一遍,主要是里边的quickstart。笔者就不给大家做翻译了,给读者介绍一下如何基于笔者这个Blog来搭建,在这基础上修改就要容易不少了。 下载Hugo 官网上首页就有下载链接,去Hugo下载即可 把笔者的这个blog clone下来 git clone https://github.com/vinsonzou/hugo.blog.git cd hugo.blog hugo server -w 上面的代码是Linux、OS X控制台命令,windows用户请自己转换成windows操作方法。看到控制台打印出的内容了么?Hugo已经帮忙生成了一个静态站点,并且监听在本机的1313端口,访问一下试试吧:) 修改hugo.blog 一行代码就跑起来了,是不是so easy,接下来笔者大体介绍一下各个目录中的作用,读者可以修改成自己的一些信息 content目录就是存放你原始markdown文本的地方,content的子目录和markdown文件名组成了url地址,比如这篇文章的url是:http://ops.m114.org/post/how-to-use-hugo/ ,那是因为content目录下有个post/how-to-use-hugo.md public目录是刚才运行hugo server -w命令生成的,这里边的内容就是静态站点的内容,之后咱们把这些内容提交到gitcafe pages中 static目录是存放一些静态资源 themes目录是主题目录,我使用了hyde这个主题,在上面做了一些修改,读者要想让Blog比较个性化,就可以定制主题 themes/hyde/{layouts,static}是我们主要修改的内容。index.html是首页,你修改一下看看,浏览器会自动刷新看到效果;partials目录是存放的一些页面片段,便于复用;_default目录是博文单页和博文列表页面,相信你一看就懂;static目录中有一些css,想怎么个性化就调整它们就成了 使用gitcafe pages制作站点 上面搞定之后,最好把修改之后的内容push到github上。public目录无需push,这是每次都可以自动生成的。咱们这里要把public也作为一个repo,push到gitcafe,生成静态站点。 gitcafe有个帮助文档:GitCafe Pages,照着搞一下,把public的内容push上去,绑定域名,O了 是不是很简单,有明白的地方可以查看Hugo文档或留言。