「SRE Tech Talks #2」サービスを支える工夫たちを聞いてきた

I’ve heard the ideas and practices to support their Services.

Introduction

2017/1/30 に開かれた「SRE Tech Talks #2」に参加してきたので感謝の念でコメントを書きたいと思い。 ・・・書き終わって見てみたら個人的インプレッションワード集。

Who am I ?

https://twitter.com/sogaoh

Event Information

https://eventdots.jp/event/609456

  • 素敵な会場
  • 100人満員
  • 暑(熱)かったのでTシャツで聞いてた

Talks Line-up with my Impressions

「On-call Engineering」メルカリ社

  • 整えられているルール、そこに適用されてるイマドキな小技
  • PagerDutyほんとに初めて知りました
  • 「Slackがダウンしてる場合に備えて別途緊急連絡先リスト」なるほど

cybozu.com のデータバックアップとリストア、それを活用したリハーサル」

  • 「インクリメンタル・フォーエバー」なんかいい響きですね
  • 「バックアップデータは安全にお客様のデータに触れる手段」ちゃんと管理されてればね・・・凄い
  • リハーサル重要

cookpad.com 全 HTTPS 化の軌跡」

  • 2017/01/05は何の日?
  • 広告全部がHTTPS対応しているとは限らない(自分たちだけじゃなく周りも見なきゃ)
  • 世の中には「まだ」WindowsXPが生きている

「SREグループができてこの半年間やってきたこと」ミクシィ社XFLAGスタジオ

  • ハイブリッドクラウドな話だったのはここだけだった感覚(ほかはプライベート・・・あ、メルカリさんは違うか)
  • (僕には話が深いところ過ぎたかな・・・MySQLだし by PostgreSQL派)

「Arukasの運用事例と、末永くインフラ運用していくためのTips」さくらインターネット

  • インフラに詳しいエンジニアはそう多くない → みんなで考えてやれば
  • 大惨事の予兆はある、予兆は見逃されやすい
  • Hope is not a strategy.

First Look

話の中で、初めて見た聞いたことは以下の通り。勉強になりました。

References

Others

Omake

  • イベントあった日の朝の通勤電車乗ってるときに見つけて爆笑しそうになった

□ItamaeでCentOS7にFabricをインストールする

Vagrantインスタンスを2つ作成

ubuntuにItamaeをインストール

  • sudo apt-get install rubygems
  • gem install itamae
  • itamae # インストール確認
    • ヘルプ的なのが出ずにスタックトレースが出た
    • ライブラリがよくないようなので入れ直して回避
      • gem uninstall thor
      • gem install thor -v 0.19.1
  • ベストプラクティスな感じでコードを配置
    • cookbooks, roles
    • Serverspec の test 用に spec も

vagrant@CentOS の private_key を ubuntu に置くなど

  • root@ubuntu の ~/.ssh/private_key に
  • ~/.ssh/config に Serverspec 用の定義を追加
Host personal-centos
  HostName 192.168.33.31
  Port 22
  User vagrant
  IdentityFile ~/.ssh/private_key

ItamaeでインストールとServerspecテスト

 INFO : Starting Itamae...
 INFO : Recipe: /root/ItamaePractice/roles/deploy.rb
 INFO :   Recipe: /root/ItamaePractice/cookbooks/fabric/default.rb
 INFO :     package[openssl-devel] installed will change from 'false' to 'true'
 INFO :     execute[install fabric] executed will change from 'false' to 'true'
  • テストコードを自動生成後に調整
    • apt install ruby-bundler
    • bundle exec serverspec-init
root@personal-ubuntu:~/ItamaePractice# bundle exec serverspec-init 
Select OS type:

  1) UN*X
  2) Windows

Select number: 1

Select a backend type:

  1) SSH
  2) Exec (local)

Select number: 1

Vagrant instance y/n: n
Input target host name: personal-centos
 + spec/personal-centos/
 + spec/personal-centos/sample_spec.rb
 + spec/spec_helper.rb
 + Rakefile
 + .rspec
  • テスト実行
    • cd ItamaePractice
    • rake spec
Command "fab -V"
  stdout
    should contain "Fabric 1.13.1"

Finished in 0.96617 seconds (files took 0.3601 seconds to load)
1 example, 0 failures

コメント

  • コンソール出力が適度でよい

ToDo

  • 参考情報を拾って載せる

□CentOS7でzabbix-server-mysqlが起動しなかったときの処置

Zabbix Advent Calendar 2015 に投稿する内容を検証しようとして当たった壁を乗り越えたのでメモ。

起点

CentOS7にZabbix2.2をインストール http://qiita.com/tukiyo3/items/e974627fbb393037fa8a

つまづき

[root@server log]# systemctl start zabbix-server-mysql
Job for zabbix-server-mysql.service failed. See 'systemctl status zabbix-server-mysql.service' and 'journalctl -xn' for details.
[root@server log]# systemctl status zabbix-server-mysql.service
zabbix-server-mysql.service - Zabbix Server with MySQL DB
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server-mysql.service; enabled)
   Active: failed (Result: signal) since Sat 2015-12-05 13:27:45 UTC; 12s ago
  Process: 16651 ExecStart=/usr/sbin/zabbix_server (code=killed, signal=SEGV)

Dec 05 13:27:45 server systemd[1]: Starting Zabbix Server with MySQL DB...
Dec 05 13:27:45 server systemd[1]: zabbix-server-mysql.service: control process exited, code=killed status=11
Dec 05 13:27:45 server systemd[1]: Failed to start Zabbix Server with MySQL DB.
Dec 05 13:27:45 server systemd[1]: Unit zabbix-server-mysql.service entered failed state.

処置トライ

yum update trousers

備考

以下に全く同じ話が。。(これ投稿後の十数分後に発見)

qiita.com

□TakenScreenShotsLiner

基本を発展させてツールを作ってちょっと汎用的にした。

基本

qiita.com

補足(結果的に、情報として使えるのは Groovy の入れ方だけ)

sogaoh.hatenablog.com

作ったツールのソース

github.com

□Ubuntu 14.04 Memo

Ubuntu に Jenkins のインストール

Ubuntu で Jenkins に sudo の設定

Ubuntuタイムゾーン変更

cp -p /etc/localtime /etc/localtime.bak
ln -snf /usr/share/zoneinfo/Japan /etc/localtime

Ubuntu のバージョン・CPUアーキテクチャ確認

cat /etc/lsb-release

arch

uname -a

Ubuntu の chkconfig は sysv-rc-conf

sudo apt-get install sysv-rc-conf
sysv-rc-conf --list

Ubuntu に Groovy を sdkman でインストール

■RedmineのCharts2プラグインでフィルタにカスタムフィールドを指定したい

したいこと

  • フィルタにデフォルトのフィールドしか指定できないっぽいので、 カスタムフィールドを指定+チャートの描画もされるようにしたい

方法

  • (未解決)

参考

○EclipseでGradleのSample「JavaQuickStart」をビルドすると失敗

現象

  • EclipseでGradleのSample「JavaQuickStart」をビルドする

→ FAILURE: Build failed with an exception. で失敗。

対策

  • Windowsの場合、C:\Users(yourname).gradle\gradle.properties に以下を記述する
    • org.gradle.java.home=C:\Program Files\Java\jdk1.8.0_20

参考