运维烂笔头

一个 SA 老兵的工作日志

缘起

老套路,公司在用 AWS 上的 Elasticsearch 服务,连带的就有一个 Kibana,按照官方的说法,Kibana 这块的密码保护,可以用 AWS 的 Cognito 服务来做,或者是用前置 Nginx 反向代理的方法来做。

阅读全文 »

缘起

办公室某台跑 wireguard 打洞的机器挂了,重启之后发现 wireguard 设备起不来,

1
2
wg-quick up wg_ofc;
# 配置文件为:/etc/wireguard/wg_ofc.conf

会报错:

Cannot find device “wg_ofc”

阅读全文 »

缘起

今天下午面了一家特别想去的公司,结果聊很多,但是……折了,不要问我为什么知道的,面试完本来说别的同事(一般会是 HR)再聊一下但结果是前台来直接送走这不是凉了是什么?

主要原因我想是:

  • 人家本来要求就高
  • 我有几个技术点答的不好

我想,折了就折了吧,我只能看能不能变废为宝,从中学到点什么,吸取什么教训什么的,于是就有了本篇面试总结。

阅读全文 »

缘起

最近要登某一台 ec2,结果其私钥丢了,于是根据文档,将这台 ec2 的机器 stop 掉,然后将根区先 detach 掉,然后再将其 attach 到同 subnet 的另外一台 ec2 上。

按照正常的流程,在另外一台好的 ec2 的机器上将刚 attach 过来的分区 mount 上以后再修改好其 authorized_keys 文件即可完成任务的。

阅读全文 »

Eliza Sorensen 的访谈

NOTE:

你是谁,你做什么工作

我是 Eliza Sorensen 或其他任何地方的 @zemmiph0bia。我是澳大利亚墨尔本市的一名基础设施和安全工程师,也是创建了性工作友好社交空间 Switter.at 和现代广告平台 Tryst.linkAssembly Four 的共同创始人。

您使用什么硬件

看来这些天我一直在移动,所以我严重依赖我的 X1 Carbon, Google Pixel 3 XL, Audio Technica ATH-AR5BT headphones,powerpack(很大的背包?),笔记本和 Lamy(凌美,一种笔)Safari

当我在办公桌前时,可以使用两台 Dell 27 英寸显示器,一个 Ducky One 机械键盘(樱桃棕色轴)和一个Logitech G700 鼠标。

您用什么软件

我只想在台式机上使用 Linux,我的操作系统是Ubuntu,我的 shell 是 zsh,我用 ProtonVPN 连接,我用 Firefox (上网)冲浪,我用 1Password 保存密码,我用 Spotify 听音乐,我用 Toggl 管理时间、用 Clubhouse 管理任务,用 vim 写作,用 Sublime Text 3 写代码,使用 Zeal 保留我的文档。

您的理想设置是什么

我对当前设置非常满意,但是我不介意回到带有樱桃蓝色轴的键盘……但是我不想赶走我的伴侣。

缘起

以前有个贪便宜(一年 5 刀)而入手但目前在吃灰中的小鸡,当然是 OpenVZ,网络条件很差,用起来很鸡肋,后来看到 Google 的 BBR 也有能用在 OpenVZ 的案例,于是也想尝试下,看是否能将其起死回生。

阅读全文 »

缘起

自然是我司每周都要完成的周报。

背景

我司重度依赖“不存在网站”:Facebook 开源出来的项目:Phabricator,我们的每项工作也来自于其中的 Maniphest(不知道是什么语言,不像英语,反正应该就是 task 的意思),每周的工作周报里提到的事情如果有 task 的(一般都有),都还要附上其 task id。

同时,Phabricator 目前的运营公司: Phacility 同时也放出了一套 php 的类似于 SDK 的东西:libphutil,所以我就开始尝试着用 php 来撸一个自动生成、发布周报的东西。

about Pha_WR_SRE

Pha_WR_SRE
不许说项目名称起的很雷人。:(

这个东西怎么做的就不说了,这里主要说下大概实现了哪些功能。

输出的信息

输出的信息分三种:“completed”、”ongoing” 和 “other”,分别对应着“已完成”、“未完成”和“其他”。

输出的目标

已实现的是四种:

  1. Console
  2. OneNote
  3. Evernote
  4. Phabircator’s Phame

第一种就不用说了,如果在控制台运行,运行结果会被直接输出到控制台的;

第二种也简单,OneNote 支持用 Email 的方式发布 Note,不过需要先在 OneNote 里设置下发邮件的地址白名单(具体见 README 文件);

第三种跟 OneNote 差不多,不过 Evernote 需要一定级别的帐号才支持这种功能,而且他的目标 email 地址是隐藏的,需要自己去找,而且不建议让别人知道;

第四种是我自己想的,反正 Phabricator 也支持 blog 功能(Phame),不过这个需要先在 Phabricator 中新建一个 blog 获得其的 phid 并配置在 config.ini 中;

macOS

对于用 macOS 的用户,这里还有个特殊的新功能:可以直接设置定时运行这个任务。具体方法就是把项目里那个 .plist.example 文件稍稍修改下(也可以不修改),改名去掉“.example”,放到 ~/Library/LaunchAgents 目录下,然后可以用命令:

1
2
3
4
# load .plist file if U have not change it's name
launchctl load gs.theyan.phawrsre.plist;
# start job manually
launchctl launchctl start GenerateReport.job;

缘起

about Tasker

早先通过 Google Opinion Rewards 做调查挣了小几美刀,于是就购买了 Google Play Store 下的第一个收费软件:Tasker。但后来由于种种原因,Tasker 一直没有真正用起来(我最看重的几个功能都实现的不好)。

about IFTTT

一直在用 IFTTT 的一个功能:每日抓取 NASA 的图回来做 Android 手机的 Wallpaper,但最近同时用两个 Android 手机,不希望两个手机同时一样的 Wallpaper,但这个需求如果用 IFTTT 来做只能每台 Android 手机用单独的账号来实现,这个实现显然太丑陋了。

最终方案

Tasker 官方其实有一个放出来的 profile,是来抓 reddit 的图的,但那是几年前的东西了,现在几乎没法用,但作为例子,这个 profile 处理这种问题的思路是可以借鉴的。于是我就修改了下这个 profile,实现了抓 reddit.com/r/wallpaper 和 reddit.com/r/pic 以及 NASA iotd(Image of the Day) 的功能。

about tasker_profile

上面提到的这个 profile,我放到了 github 下面了,这里远期还会放一些 Tasker 可用的、实现了一些实用好玩儿功能的 profile,但是暂时,就这么一个 profile,叫“Wallpaper”,意思是更系统 Wallpaper 相关的一个 profile。使用起来也不难,README.md 里都有提到。

写在最后

如果我辛苦折腾的这个东西真能帮上你的忙,请帮我给项目点赞吧,谢谢!

WHY

这里的为什么不是说为什么要装 zabbix-proxy 的问题,而是说为什么要写这篇文章。
为什么要写这篇文章呢?答案很简单,官方文档太碎了,东一榔头西一棒子,一个简单实际直接的问题:怎样在 ubuntu 上安装部署 zabbix-proxy,翻官方文档得翻四五篇文档,而且这四五篇文档中还有很多干扰信息,需要仔细分辨,否则会对部署造成负面影响。
所以,就有了这篇“流水账”。

HOWTO

INSTALLATION

1
2
3
4
5
6
7
8
9
# 安装 zabbix 官方的 ubuntu 16.04(版本号 xenial) 的软件仓
wget \
https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb;
dpkg -i zabbix-release_3.4-1+xenial_all.deb;
apt-get update;
# 安装 zabbix-proxy 所需之 mysql 数据库服务器软件
# 注意这一步会让设置 mysql 服务器的 root 密码(不是系统密码!)
# 这个要记住,在执行下一步操作的时候要输入的
apt-get install mysql-server-5.7;
1
2
3
# 用 root 身份连入 mysql 数据库系统并进入交互式模式
# 注意:这里需要输入上一步设置的 root 的密码
mysql -uroot -p
1
2
3
4
5
6
7
8
# 创建 zabbix-proxy 系统所用数据库:zabbix
create database zabbix character set utf8 collate utf8_bin;
# 创建 zabbix-proxy 应用所用数据库账号:zabbix 并其密码以及响应权限
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
# 使权限及时生效
flush privileges;
# 退出 mysql 交互式环境
quit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 安装一些 zabbix-proxy 系统可能会需要
# 但又未在 zabbix-proxy-mysql 软件包里
# 明确指定依赖的软件包,
# 这里对于有用 snmp 监控网络设备的场景来讲非常重要
# 因为缺省是不会安装 snmp-mibs-downloader 之类
# 必须的软件包的。
# 注意,同时也安装上了 zabbix-agent,这个是无所谓的,
# 毕竟,所有的服务器都要装 zabbix-agent 不是吗
apt-get install \
libsnmp-base \
snmp-mibs-downloader \
snmp \
libsnmp30 \
zabbix-proxy-mysql \
zabbix-agent;
# 创建 zabbix-proxy 需要的数据库结构及一些初始数据
zcat \
/usr/share/doc/zabbix-proxy-mysql/schema.sql.gz \
| mysql -uzabbix -p zabbix;

CONFIGURATION

1
2
# 修改 zabbix proxy 的设置文件
vim /etc/zabbix/zabbix_proxy.conf
1
2
3
4
# 修改 zabbix agent 的配置文件
# 本来这个不是本文讨论的重点
# 只是部署 zabbix proxy 时都会部署 zabbix agent
vim /etc/zabbix/zabbix_agentd.conf
1
2
3
4
# 最后,将几个服务设为自启动
systemctl enable mysql.service;
systemctl enable zabbix-proxy.service;
systemctl enable zabbix-agent.service;
0%