OSC 2016 Spring/Tokyoに行ってきました
【運用をプログラマブルに!JobSchedulerを活用したOperations as Codeの世界】
資料アップされました。
http://www.slideshare.net/ikedai/osc2016-tokyo-sprintjobscheduleroperations-as-code
●JobSchedulerの特徴
- Windowsでも動く
- エージェントが入れられない場合はSSHで操作可能
- 冗長化・負荷分散機能を自分自身が持っている
- APIが豊富
- 悪いところ
- GUIでジョブ定義はできず、JOEというエディタで書く。XMLでの取り込みは可能
●JOB定義
- shell,java,JavaScript,Perl,VBScriptが使用可能
●クラスタリング構成
- 各Engineで同じ内容が共有できていればOk
- NFSで共有したりS3からSyncするとか
- DBにハートビート情報を送付
●負荷分散
- 自分自身で動く最大プロセス数を定義しておくと、Active機でジョブあふれ→Standby機で残りのジョブを実行ということができる。
●API
- 内部API
- ジョブの中でJobSchedulerに対する操作が可能
- WebAPI
- 外部ツールからJobSchedulerに対する操作が可能
- Zabbixの監視結果をもとに、あるジョブを実行する、みたいな動作
- curlでリクエストボディにXML形式のコマンド名を与えればよい
XMLは面倒なので↓を開発中
https://github.com/ike-dai/go-jobscheduler
●HyclopsJobMonitoting
- ジョブの失敗状況をZabbixに連携
- ジョブの実行処理時間をZabbixに連携
- ジョブ実行時にZabbixのトリガー条件式を動的変更
- ジョブ実行に伴う負荷に関する閾値(CPU、ディスク負荷など)を上げることが可能
簡単に試すためにDockerイメージを公開しています。 docker pull ikedai/jobscheduler
紙1枚ですが、インストールマニュアルもらってきました。
JobSchedulerには興味があったので、自分サーバのバックアップスクリプトをJobScheduler管理にしようかと思います。
【ログ収集基盤ソフトウェア Fluentd 超入門】
●Fluentdとは
- ログの転送と集約
- ログの加工
- タイムスタンプの形式統一など
- フィルタリング機能
- 取捨が可能
- バッファリング
- 転送先に障害があった場合に復旧後に送ることが可能
- 他ツールと連携してログの可視化
●いろいろ
- サーバ/エージェントの区別はない。プログラムは同じで設定が違うだけ。
- td-agentはTreasureData社が提供するFluentdのパッケージ
- 最新はtd-agent2
- Windowsは安定版がリリースされていない。
- 現状はnxlogからfluentdに転送する必要がある。
●Fluentdの設定とプラグイン Fluentdの設定は利用したいプラグインの設定
- Input
- sourceタグ
- Filter
- filterタグ
- Output
- matchタグ
- バッファ
- Outputプラグインの継承
●プラグインの検索
http://www.fluentd.org/plugins
- 開発者が日本人なので、日本語の情報がWEB上に豊富
- ruby gemでインストール
●ルーティングとタグ ルーティング
- 1つのログレコードをどんな処理をして、どのように最終目的地に届けるか
タグ
- ログレコードの識別子
chunkサイズとQueue内のchunk数は設定可能 タグ名でルーティングの制御を行うことができるが、利用が難しいこともあり、ルーティングを制御するためのラベルがtd-agent2 で利用できるようになった。
- fulentd 0.10の時に開発されたプラグインで、メンテナンスされていない場合はラベルが利用できない。
●ログの構造化
- fluentdでは時刻の統一のほか、JSON化ができる
●バッファリング
- 書き出せないとQueueが減らないので、あふれた場合にはInputが破棄される
●ログの可視化ツール
- Elasticsearch+kibana
- Zabbix
- GrowthForecast
あとは事例の紹介。未だにgnuplot使ってる事例が…
Fluentdも使ったことはありますが、logstashの方が好み。
【関数型Linux: NixOSの仕組みと特徴の紹介】
VineLinux7はまだDVDもできていないようなのでこちらへ。
http://www.meetup.com/ja-JP/Tokyo-NixOS-Meetup/
のオーガナイザーであるサニエ エリック氏のお話
資料は後ほど↓にアップされるそうな。
https://github.com/Tokyo-NixOS/presentations
資料もnixコマンドで作ってる!
●パッケージマネージャとは?
- パッケージ操作にはリスクがあるので、一般のパッケージマネージャはルート権限が必要
- 依存管理は難しい。そのため最近はコンテナでの配信が増えている。
●Nix:関数型パッケージマネージャ
- POSIX準拠
- よくできたマニュアルがある。
●Nix:特徴
- パッケージを複数バージョン扱える
- 一般ユーザがインストールできる
- 依存関係完結の保証
- ビルド再現性の保証
- nix-shell
●Nix:遅延評価純粋関数型パッケージマネージャー
- 関数型
- パッケージは関数であり、依存は引数
- インストールされたパッケージのファイルは変更されない
- 安全性につながる
- 純粋
- 関数の結果は引数のみで決まる 再現性につながる
●Nix:仕組み
- Nix言語はパッケージ用のドメイン固有言語
- NixはNix言語のコンパイラー
- パッケージはNixストアにインストールされる
- パッケージは導出ハッシュで特定されたディレクトリにインストールされる
- パッケージは他のパッケージファイルを変更できない
- Nixストアは読み込み専用ファイルシステムでマウントされる
●システムパッケージ以外の管理
関数型パッケージマネージャということで、デモのプロンプトシェルが”λ”なんだろうか。 いずれにしてもかっこいい。
【オープンソースのプロジェクト管理「Redmine」を使ったヘルプデスクシステムでサポート業務を効率化】
資料アップされました。
http://www.slideshare.net/g_maeda/redmine-58804869
以前にredmine.tokyo勉強会で聞いたお話だが、これからの案件へのアイデアと復習をかねてもう一度。
https://my.redmine.jp/farend-support/
のお話。
●利用実績
- 問い合わせ:5~6件/日、Max20件ぐらい
- 平均2往復/件程度のやりとり
- 表示フィールドを減らすことで、メールフォームに近い画面にしている。
- 非表示にできない項目は「フィールドに対する権限」を「読み取り専用」にすることでお客様には見えないように。
後で公開する資料には付録に設定があります、という他
で同じサービスもできますよ!との宣伝。 8000円/月ですが、プラグイン入れられないのはつらいかも。
●質疑応答から。
Redmineの設定変更のみであり、コアには一切手を入れていない。 新規チケットでガイダンスを表示するプラグインのみ追加。
残念ながら今日は「COBOLか!」のノリつっこみは無し。
懇親会など
あえてFirefoxOSの袋をもらった。
懇親会開始
生ハムを切り分ける宮原さん