logmonでログをリアルタイム監視
サービスを運用しているとどうしても不具合が出てしまいます。
出た不具合はできるだけ早く察知したいです。
ということでlogmonを使ってログをリアルタイムに監視して、
致命的なエラーが出たら、メールなりチャットなりで通知するようにしてみました。
インストール
wget http://www-06.ibm.com/jp/linux/tech/doc/attachments/00057580_logmon_20100411.tgz tar zxvf 00057580_logmon_20100411.tgz cd logmon_20100411/ sh setup.sh
設定ファイル作成
今回はとりまapacheのerror_logにFatal errorが出たら、通知します。
vi /etc/logmon/logmon.conf #監視対象ログファイル :/var/log/httpd/error_log #検索文字列 (.*Fatal.*) #検索後の実行コメンド <%%%%>は検索した行 php ~/send_mail.php "<%%%%>"
起動
/etc/init.d/logmon start #設定変更後は /etc/init.d/logmon restart
なんて簡単!
感謝致します。
今年買ってよかったもの~2014~
なんか年末ということもあり、よく見るので自分も書いてみる。
THERMOS 真空断熱タンブラー2個セット シルバー 400ml
THERMOS 真空断熱タンブラー2個セット シルバー 400ml JMO-GP2
- 出版社/メーカー: THERMOS (サーモス)
- メディア: ホーム&キッチン
- 購入: 35人 クリック: 265回
- この商品を含むブログ (20件) を見る
お酒はもちろんあったかいのも冷たいもの全部OK。
もう全ての飲み物はこれで飲んでます。
サイズ的にも缶ビール全部入りますし、洗うのも簡単なのでこのサイズでちょうど良かったです。
Raspberry Pi Type B 512MB
- 出版社/メーカー: RS Components Ltd (ソースマーキング及び販売 Umemoto LLP)
- メディア: エレクトロニクス
- この商品を含むブログ (12件) を見る
転職の間の暇つぶしで買ってみたのですが、色々勉強になりました。
電子工作とか全くやったことなかった自分としては、LEDを光らせただけでけっこう感動しました。
まだまだ使いこなせていないので、ネタ見つけて色々やってみたいです。
今は新しいモデルも出てます。
- 出版社/メーカー: raspberrypi.org
- メディア: エレクトロニクス
- この商品を含むブログ (2件) を見る
シュノーケルグッズ
Masks : M-212QB / Morbi|GEARカタログ|TUSA
Snorkels:SP-175 / PLATINA2 Hyperdry|GEARカタログ|TUSA
Fins : SF-5 / PLATINA Plus|GEARカタログ|TUSA
もともとはスキューバ用に買ったのですが、
やはりスキューバだと諸々費用なり、準備なりかかってしまうのであまり頻繁には行けそうにないです。
でもシュノーケルならさくっと行って潜れるので、来年の夏は伊豆とか行って潜りたいと思ってます。
Kindlle Fire
- 出版社/メーカー: Amazon
- 発売日: 2014/10/16
- メディア: エレクトロニクス
- この商品を含むブログ (11件) を見る
自分が買ったのはこれの一つ前のモデルですが、電子書籍見る用で買ってみました。
正直タブレットとして使うには色々難ありだと思うのですが、電子書籍専用なら十分だと思います。
これを購入してからはもはや、物理的な本を買う気がなくなっちゃいました。
スーパーソニックスクラバー
- 出版社/メーカー: ジャパン・インターナショナル・コマース
- メディア: ホーム&キッチン
- この商品を含むブログを見る
台所周りの掃除用に買ってみました。
けっこう音がうるさいし、宣伝動画みたいには、
きれいには取れませんが、洗剤とかと合わせれば十分油汚れが取れます。
この値段なら十分だと思います。
宇宙柄iPhoneケース
宇宙柄iPhoneケース | AKUTSU YURIE's SHOP
もう販売してないようです・・・
宇宙柄といい、「Why so serious?」といい、フォントといいかなり気に入っています。
酔っ払って落として割れたので2個目買いました。
家デスク用に買ったやーつ
BenQ 24型ワイドディスプレイ(5ms/フルHD/HDMI×1) GL2460HM
- 出版社/メーカー: ベンキュージャパン
- 発売日: 2013/06/21
- メディア: Personal Computers
- この商品を含むブログ (2件) を見る
ディスプレイは特に写りにこだわりがないというか、
違いがわからない男なので、これで必要十分でした。
デスクはikeaのやつ。
あまりスペースがないので、コンパクトなやつは欲しかったのでこれにしました。
デザインもシンプルでいい感じ。
これの上にbenqのディスプレイ+mac bookと、mac miniとHDDを引き出し?的なとこに置いてます。
LENNART 引き出しユニット - IKEA
あと引き出しの下にこれがちょうどはまるので合わせてオススメです。
以上でーす。
感謝致します。
我が家を支えるChatOps
この記事はHubot Advent Calendar 2014 - Adventarの15日目です。
我が家でやり始めたchatopsのことを書こうと思います。
家族構成
- 私、嫁の二人暮らし
- 共働き
- 私:めんどくさがり
- 嫁:めんどくさがり
巻き起こる問題
- どっちがゴミ捨てる問題
- どっちが洗濯、掃除するか問題
- どっちがシャンプーとか詰め替えるか問題
お互いめんどくさがりなので、
毎回、ギリギリまで耐えて相手にやらせようと戦っています
その結果
- 貯まるゴミ、洗濯モノ・・・
これはイカン!
ということで、
家庭内問題解決のためChatOpsやってみました。
ゴミ出しBot作った
毎日夕方に明日出すゴミとその担当をチャットに流します。
って感じでゴミ出し当番を回すようにしています。
毎回この通りにやっているわけではないですが、以前よりはよくなったような。
ソースはこんな感じです。
persons = ['夫','嫁'] week = ["日","月","火","水","木","金","土"] garbage_config = ["燃えるゴミ","ビン缶ペットボトル","燃えるゴミ","燃えないゴミ","燃えるゴミ","燃えるゴミ","燃えないゴミ"] module.exports = (robot) -> #gabage new cron cronTime: "0 0 21 * * *" start: true timeZone: "Asia/Tokyo" onTick: -> now = new Date() target_day = now.getDay() + 1 rand_num = (Math.floor(Math.random() * 100) + 1) % persons.length if target_day > week.length target_day = 0 winner = persons[rand_num] robot.send {room: "xxxxxxx@conf.hipchat.com"}, "明日の#{week[target_day]}曜は#{garbage_config[target_day]}の日ですー!\n担当は#{winner}ですん"
チーム運用の改善に利用されるChatOpsですが、
今回は家庭運用に使ってみました。
家族も重要なチームと捉えれば色々改善できそうなとこありそうですね!
同じネタで社内LTをやったので、
その時のスライドも貼っておきます!
感謝致します。
hubot×hipchatでcron的な定期スクリプトをつくる
またまた前回に引き続きChatOps系を。
hubot×hipchatでJenkinsのジョブを実行する - 恥知らずのウェブエンジニア
今回はcron的な定期スクリプトをつくってみます。
朝10時になったら、朝会を通知してくれるようにしてみます。
さっそく。
必要モジュールインストール
cd BOT_DIR npm install cron --save npm install time --save
スクリプト作成
cd BOT_DIR vi scripts/my_cron.coffee cron = require('cron').CronJob module.exports = (robot) -> robot.enter -> new cron cronTime: "0 58 9 * * 1-5" start: true timeZone: "Asia/Tokyo" onTick: -> robot.send {room: "xxxxxx_hoge@conf.hipchat.com"}, "朝会はーじまーるよー"
roomのところには発言させたいroomのXMPP JIDを指定します。
hipchatのroomsから確認できます。
スクリプト作成後、hubotを再起動します。
よさげです。
通知だけじゃなく、普通に定時処理とかもbot経由でやってみようと思います。
感謝致します。
hubot×hipchatでJenkinsのジョブを実行する
前回の続き
hubot×hipchatでChatOps的なアレ - 恥知らずのウェブエンジニア
今回はチャットからjenkinsのジョブを実行して、
結果をチャット上に出力するようにします。
まずはチャットからjenkinsのジョブを実行できるようにします。
チャットからjenkinsのジョブを実行する
どうやらデフォルトでjobを実行するscriptがあるようなのでそれを利用させてもらいます。
- jenkins.coffee を有効にする
- 環境設定設定
jenkins.coffee を有効にする
hubot-scripts.jsonにjenkins.coffeeを追記
cd BOT_DIR vi hubot-scripts.json [ "jenkins.coffee" ]
こうすることで、
node_modules/hubot-scripts/src/scripts/jenkins.coffee
が有効になるようです。
src/scripts以下に他にもscriptがあるのでいろいろできそうです。
Hubot Script Catalog
環境変数設定
指定された環境変数を設定します。
起動script内に記述してもいいかも。
export HUBOT_JENKINS_URL="http://jenkins.hoge/" export HUBOT_JENKINS_AUTH="username:password"
これだけでおkです!
さっそくhipchatからジョブを実行してみます。
コマンドは下記になります。
hubot jenkins list => ジョブリスト出力 hubot jenkins b <jobNumber> => ジョブ実行 hubot jenkins build <job> => ジョブ実行 hubot jenkins describe <job> => ジョブ情報出力 hubot jenkins last <job> => 最後のジョブ結果出力
よさげです。
でもこれだとジョブの結果がわからないので、
次はジョブ結果もチャットに出力するようにします。
ジョブ結果をチャットに出力する
こちらはhubotではなく、jenkinsから直接hipchatに通知を送るようにします。
流れは下記です。
[jenkins]hipchatプラグインをインストール
jenkins側でプラグインをインストールします。
jenkinsの管理 => プラグインの管理
からHipChat Pluginをインストールします。
[hipchat]APIトークン生成
次hipchat側でjenkinsがアクセスするためのトークンを生成します。
hipchatのページでGroup Admin => API => Create new token
でトークンを生成します。
[jenkins]通知を送るように設定
次はjenkins側で通知を送るように設定します。
jenkinsの管理 => システムの設定 => Global HipChat Notifier Settings
で先ほどのトークンと等を設定します。
また通知を送りたいジョブを個別で設定します。
ジョブの設定 => HipChat Notifications
で通知を送るroomとStart Notificationにチェックを入れます。
また、ビルド後の処理の追加から「HipChat Notifications」を追加します。
これで設定は完了です。
さっそくhipchatからジョブを実行してみます。
出力内容は要調整ですが、一旦できたっぽいです!
ちょっとずつChatOps感出てきました!
感謝致します。
Raspberry PiでLED点灯させてみる
なんかアレなのでこちらの商品買ってみました。
Amazon.co.jp: ハック ラズベリーパイ Raspberry Pi 電子工作入門キット。: パソコン・周辺機器
さっそくLEDを点灯させてみました。
同封されていた説明所にある通り下記のサイトを参考に進めてみました。
Raspberry PiでLED点灯(Lチカ)してみよう。 - Raspberry Pi 電子工作
手順通りやったらLEDぴかぴかできました。
その際のちょっとメモ。
- 抵抗をちゃんと計算しないとLEDが割れる><
- GPIOはここを参考に
The Pi4J Project - Control Example
進める毎に更新していくやーつ
感謝致します。
hubot×hipchatでChatOps的なアレ
最近よく聞くChatOps
chatのbotを利用して色々なオペレーションを自動化するワークフローで、
githubがやりはじめたってやつです
chatopsとはなんぞや的なことは下記を一読
ChatOps at GitHub // Speaker Deck
ちょっと思うとこがありやってみました。
hhubot側の設定
hubotインストール
まずはインストール。
node,redisが必要なのでない場合はインストールしてください。
以前はhubotをnpmでインストールしたような気がするのですが、
現在は下記でインストールできるようです。
hubot/docs at master · github/hubot · GitHub
npm install -g yo generator-hubot
nodeのバージョンが低いとインストールできませんでした。
自分はv0.10.26にすることでインストールできました。
hipchat側の設定
次はhipchatの内容をhubotが受け取れるようにしていきます。
hipchatアカウント作成
なにはともあれhipchatのアカウントをつくりましよう。
自分とbot用のアカウントを作成します。
プライベートグループチャットと IM サービス | Atlassian HipChat (アトラシアン ヒップチャット)
Jabber ID取得
上でつくったbotが反応できるようにするにはJabber IDなるものが必要だそうです。
下記からメモります。
https://username.hipchat.com/account/xmpp
hipchatアダプターインストール
hipchatの内容を受け取れるようにアダプターをインストール
npm install hubot-hipchat --save
hipchat用環境変数設定
下記のようにhipchat用の環境変数の設定が必要ありだそうです。
export HUBOT_HIPCHAT_JID="hogehoge@chat.hipchat.com" export HUBOT_HIPCHAT_PASSWORD="xxxxxxxxxx"
アダプタ設定してのhipchat起動
- aでアダプタ設定するとのこと
cd ~/test_bot bin/hubot -a hipchat
問題なければhipchatからpingやってみます。
イケマシタ。
ついでに新しいscript作ってみます。
対象のbotディレクトリのscriptの下に作成します。
cd myhubot vi scripts/hello.coffee module.exports = (robot) -> robot.hear /hello/i, (msg) -> msg.send 'hello!!!'
coffeescriptで書きます。
botがhelloという文言を受け取るとhello!!!と返します。
作成したscriptを反映させるためには、botを再起動する必要があるみたいです。
robot.hearなので@をつけなくても反応します。
こんな感じでscriptを作成していって、自動化してけばよさそうです。
感謝致します。