監視とかで定期的に SSH するなら ControlMaster を設定するとスッキリするけど常用はちょっと

Cacti の Percona のテンプレートを使う場合、Cacti から監視対象のサーバに SSH で接続してメトリクスを取ってくることになるのですが・・・普通にやると都度サーバにSSH接続する事になりますし、対象サーバの /var/log/secure にログが無駄に記録されて辛…

Jenkins でビルドのパラメータ化でブランチをフィルタしつつ自動でもビルドするメモ

文章で説明しにくい・・・要するに次のようにしたいとき。 master と issue/* のみをビルドの対象にする Gitlab とかの WebHook で Jenkins の /git/notifyCommit を呼んでプッシュから自動ビルドさせる 手動でビルドするときも↑のパターンにマッチするブラ…

Gitlab CI でカバレッジレポートを公開するメモ

Jenkins で PHPUnit 実行時に出力したカバレッジレポートを Jenkins 上で閲覧できるようにしているのですが、同じことを Gitlab CI でやるときのメモ。 Jenkins の場合 Jenkins なら HTML Publisher plugin でサクッと PHPUnit のカバレッジレポートを公開で…

Gitlab CI を使ってみるメモ

Jenkins からの移行のために今更だけど使ってみたメモ。 なお、うちの Gitlab はソースから入れていてデータベースも MySQL です。たまにしかバージョンアップしていないのでちょっと古いです(8.17.2)。 参考 https://docs.gitlab.com/ee/ci/ 公式のドキュメ…

debian ベースの Docker コンテナで busybox の cron を実行

DockerHub の言語系のイメージは(alpine のもあるけれども)debian ベースのものが多いですが cron でスクリプトを定期的に実行しようとして、 RUN apt-get update && apt-get install -y cron とかすると、 cron から実行するスクリプトにコンテナの環境変…

Cacti でアラートを thold プラグインを使わずにやるアイデア(中途半端)

Cacti の thold プラグインでアラートを仕込むのがめんどくさくて仕方なかったので、もういっそのこと直接 rra ファイルを見てアラートを出すスクリプトを自前で作れば良いんじゃないかと思ったときのメモ。 Cacti のバージョンは 0.8.8h です。 Prometheus …

PhpStorm の Run/Debug で docker-compose run でテストを実行

docker-compose で複数のコンテナで構成されている環境に対して、PhpStorm の Run/Debug で docker-compose run でテストなどを実行できるようにしたときのメモ。 PhpStorm 2016.1 ぐらいから Remote interpreter に Docker が追加されており、PhpStorm の R…

CentOS を Kickstart の liveimg で rootfs の tgz からインストールする

最近は CentOS のインストールは Kickstart でなるべく自動化して GUI でぽちぽちしなくて良いようにしていますが、Kickstart で liveimg というものを使えばインストール自動化だけでなく、あらかじめ作成しておいた rootfs のディレクトリツリーをそのまま…

CentOS 7 で Pacemaker/Corosync 使うなら LinuxHA Japan と CentOS のどっちが良い?

元は 1 年くらい前に書いたものなので古いです 今は CentOS の公式レポから入れた Pacemaker/Corosync が元気に動いています Pacemaker/Corosync を使うにあたり、LinuxHA Japan のパッケージと CentOS のパッケージのどちらが良いかのメモ。 LinuxHA Japan …

最近の snmptrapd は DISPLAY-HINT 255t でもマルチバイト文字が置換されてしまう件

諸事情でアプリやサーバからいろいろな通知を SNMP トラップで送ることがよくあるのですが、データバインディングの中身に日本語(UTF-8)を含めなければならないことがあります。 送るのは snmptrap コマンドで普通に送れますが・・snmptrapd でそれを受信…

Jenkins Pipeline を使ってみたメモ その2

notifyCommit を呼び出したときに実行されるビルドについて、フリースタイルと Pipeline で下記の違いが合った。 フリースタイル 1回の notifyCommit で複数のブランチがビルドされる(こともある) Git ポーリングで見つかった、更新されたすべてのブラン…

Jenkins Pipeline を使ってみたメモ

次のようなことがやりたかった。 テストを実行するジョブと、テストが通った特定(master)のブランチをデプロイするジョブを作る さらにデプロイが完了したブランチを Redmine に同期するジョブも作るけどそれは省略 機能ブランチをテスト → master にマージ…

Windows と Linux (*nix) のコマンドライン引数の違い

元は下記で回答したものですけど。。。 https://teratail.com/questions/33915 Linux でプログラムを実行するとき、最終的に次の関数が実行されます。 execve(2) int execve(const char *filename, char *const argv[], char *const envp[]); つまり、次のも…

redmine_dmsf を試してみたメモ

Redmine のファイル管理プラグイン redmine_dmsf をちょっと試してみたメモ。 インストールします。 sudo su - redmine cd /var/lib/redmine/plugins git clone https://github.com/seventhsense/redmine_dmsf cd /var/lib/redmine/ bundle install なにやら…

KVM で macvtap (direct) を使ってみるメモ

KVM

下記の記事で KVM の macvtap (direct) というものを知ったので使ってみたメモ。 http://qiita.com/sengoku/items/3b3715c6124cdd0afb00 ホスト・ゲストともに下記で試しています。 # cat /etc/centos-release CentOS Linux release 7.2.1511 (Core) sv01 と…

HAProxy を使ってみたメモ

CentOS 7 の yum でさくっとインストールできるバージョンで試しています。 haproxy-1.5.14-3.el7.x86_64 その他に、ログとかスティッキーセッションとかについても書いてます。 http://ngyuki.hatenablog.com/archive/category/HAProxy あと、いまのところ…

rsyslog のメモ

rsyslogd - reliable and extended syslogd 信頼できる拡張された syslogd Remote syslogd ではない(syslogd 時代からリモートからの受信は可能) 設定ファイル 設定ファイルは /etc/rsyslog.conf ですが、このファイルで下記の通りに記述されているので、 …

Logwatch で独自の通知を追加するメモ

Logwatch とは Logwatch 日次でシステム内のさまざまなログから見つかった問題を通知する /etc/cron.daily/0logwatch で実行される デフォだと root へのメールで通知される デフォでいろいろなログの通知が組み込まれている ls /usr/share/logwatch/scripts…

HAProxy でスティッキーセッションするメモ

CentOS 7 の yum でさくっとインストールできるバージョンで試しています。 haproxy-1.5.14-3.el7.x86_64 appsession アプリケーションが発行する cookie の値とサーバとの対応表のテーブルを HAProxy が保持する。 appsession PHPSESSID len 32 timeout 30m…

HAProxy のログのメモ

CentOS 7 の yum でさくっとインストールできるバージョンで試しています。 haproxy-1.5.14-3.el7.x86_64 ログの宛先の設定 chroot しない場合 chroot しない場合は /dev/log を指定すれば簡単でした。 /etc/haproxy/haproxy.cfg global log /dev/log local2…

keepalived を使ってみたメモ

いまさらだけど keepalived を使ってみたメモ。LVS ではなく HAProxy の冗長化に使用するつもりなので LVS 関係の設定はありません。 CentOS 7 に yum で入れたバージョンで試しています。 keepalived-1.2.13-7.el7.x86_64 vrrp_script と track_script vrrp…

daemontools とか supervisor とか pm2 とか forever とか foreman とか systemd で同じコマンドを複数のプロセスでサービスにする

これまでスクリプトをデーモン化するために daemontools をよく使っていたのですが、同じコマンドを複数プロセス起動させたいときに煩雑というか、そもそもこのやりかたあってんの? って思ったので、代替になりそうなものをいくつか試しました。 例として、…

Munin で PING 監視する

Munin マスターで次のようにプラグインのシンボリックリンクを作成します。 sudo ln -s /usr/share/munin/plugins/ping_ /etc/munin/plugins/ping_192.168.33.10 プラグインを実行してみます。 munin-run ping_192.168.33.10 パケットロスト率と応答時間が結…

Munin をさらに触ってみた

社内で使っているサーバに munin-node を入れてリソース監視するようにしてみたときのメモ。 最初にちょっと触ってみたときの内容は↓こちら。 Munin を触ってみた Munin マスターの設定ファイルはなるべく小さくした Munin マスターの設定ファイルには監視対…

Munin を触ってみた

Mackerel のような SaaS のリソース監視サービスが流行ってそうな中、あえていまさら Munin を触ってみました。 ところで Munin のドキュメント、公式っぽいものが下記の 2 箇所にあるっぽいんですけど、どういうことなの? http://munin-monitoring.org/wik…

正規表現再入門

PHP

最近ピザとかも出るようになった社内勉強会(仮)で発表した資料がでてきたので置いておきます。 正規表現再入門 先日、とあるサイトで再帰的パターンというものを知りまして、改めて PHP の PCRE のページを見てみると、知らない構文とか、知ってはいたけど…

GlusterFS を使ってみた

先日、もう社内勉強会でいいや的な何か(仮)で、GlusterFS について話したりデモしたりしたときの資料が出てきたので置いておきます。 212 番煎じぐらいで真新しいものではありません。 GlusterFS とは いわゆる分散ファイルシステム 分散並列フォールトト…

Consul を使ってみた

先日、社内勉強会以外の伺か(仮)で、Consul について話したときの資料がでてきたので置いておきます。 213 番煎じぐらいで真新しいものではありません。 Consul is なに? Packer や Vagrant の HashiCorp 社が作っているオーケストレーションツール。 Doc…

Serf 使ってみた

先日、社内勉強会以外の何か(仮)で、serf について話したときの資料がでてきたので置いておきます。 https://gist.github.com/ngyuki/23b9fa494fd49e358734 まあ、4096番煎じぐらいで真新しいものではありません。 Serf is なに? Packer や Vagrant の Ha…

Zabbix でホストグループのすべてのホストのグラフをずらーっと並べるやつ

死活監視やリソース監視には長いこと Nagios と Cacti を使ってきたのですが、他のものも使ってみようかなーと思って GW に Zabbix を触ってみました。 デフォで標準的な項目はひと通り監視できそうだしアラートも送れるので、概ね Cacti よりも良さそうだと…

ngrok が便利すぎて漏らしそう

先日、かつて社内勉強会と呼ばれた何か(仮)で、ngrok というサービスについて話しました。 そのときの資料がこちら。 ngrok ngrok を知ったきっかけは下記の Qiita の記事です。 ngrok を使って楽々 API 開発 - Qiita ちょっと使ってみたところ、漏れそう…

Pushbullet が便利すぎて鼻血が出そう

先日、かつて社内勉強会と呼ばれたなにか(仮)で Pushbullet というものについて話しました。 そのときのスライドがこちら。 Pushbullet が便利すぎて鼻血が出そう 先月ぐらいに AirGram というものについて話していたのですが・・・ AirGram で Android や…

AirGram で Android や iPhone に PUSH 通知

先月、かつて社内勉強会と呼ばれた何か(仮)で話したスライドがあったので晒しておきます。 AirGram で Android や iPhone に PUSH 通知 諸事情でスクリプトから自分の携帯に PUSH 通知したくなったことがあり、そのときに知ったサービスです。 Airgram - M…

xip.io で簡単バーチャルホスト

DNS

先日、かつて社内勉強会と呼ばれた何か(仮)で xip.io というものについて話しました。 xip.io: wildcard DNS for everyone そんときのスライドはこちら。 xip.io で簡単バーチャルホスト PowerDNS といういろいろなものをバックエンドに使える DNS サーバ…

Ansible おれおれユースケース

先日、社内勉強会改め、おれとわたしと仲間たち勉強会(仮)で Ansible のことを話しました。 http://rawgit.com/ngyuki/c625e8d85b2a2e1ce281/raw/index.html ユースケースの紹介をしたかったというか、 「ホスト一台の構成でも Ansible 便利だから使ってい…

Ansible をゆるふわに使う

先日、社内勉強会のようななにかで Ansible のことを話しました。 https://rawgit.com/ngyuki/ee41cbc6bee149871bf6/raw/index.html 当初は、role を使わずにプレイブックからプレイブックを include する方が簡単なのでよほど大きな構成にならない限りは ro…

PhpStorm の PHPSTORM_META でサービスロケーターとかを入力補完

先日 Twitter を眺めていたら、PhpStorm Advanced Metadata というものを知ったので使ってみました。 下記はいわゆる社内勉強会的ななにかで話したときのスライドです。 https://rawgit.com/ngyuki/31dd23f946ae1520dade/raw/index.html スライドの通りです…

EC2 で CentOS 6 の HVM の AMI をゼロから作る

AWS

最近 AWS Marketprice で CentOS 7 の HVM の AMI が使えるようになりましたが、CentOS 6 の HVM の AMI は AWS Marketprice にはまだありません。 CentOS 6 でも t2.micro インスタンスが使いたかったので、ゼロから AMI を作成してみました。 概ね参考記事…

Eclipse PDT + MakeGood でも SSH 経由で PHPUnit を実行する

PhpStorm 8 が正式にリリースされましたね。 PHP Remote Interpreters というものが実装されたので PHPUnit を SSH 経由で実行するのがとても簡単になりました。 が、少し触ってみたところちょっと微妙なことろもありました。下記の記事にも記載されています…

cmd.exe のコマンドラインの解釈と Windows と Linux のプロセス作成の違い

PHP の escapeshellarg の実装が Windows だと謎すぎたので調べていたら下記の記事にたどり着きました。 cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成 わりと長いこと Windows を使っているつもりなのですが知らなかったこともあり、とても…

PhpStorm 7 で SSH 経由で PHPUnit を実行する

下記の記事によると PhpStorm 8 では SSH 経由で PHPUnit が実行できるようです。 Vagrantユーザに朗報!PhpStorm8ではPHPUnitをSSH経由で実行できる ホストが Windows で開発環境の VM が Linux(CentOS) なわたしは PhpStorm から PHPUnit が実行できるよう…

ストリームラッパーを使って素の PHP で自動エスケープ

PHP

素の PHP をテンプレートとして使うフレームワークは今でも結構あるようです。 素の PHP をテンプレートに使う、というのがどういうことかというと、簡単な例ですが次のようなものです。 index.php <html> <head> <meta charset="utf-8"> <title></title> </head> <body> Hello </body></html>

MySQL の where 狙いと order by 狙い

わたしは参加していないのですが YAPC::Asia Tokyo 2014 で次のような発表があったようです。 Where狙いのキー、order by狙いのキー このセッションを聞いている人を WHERE gender = 'male' なら ORDER BY を狙った方がいいだろうし、WHERE gender = 'female…

AWS で WordPress を RDS とか s3fs とか使って動かしてみる

AWS

前回は WordPress にアップロードされた画像などのファイルを AWS SDK for PHP の S3 ストリームラッパーを使って無理やり S3 に保存しましたが、 AWS で WordPress を RDS とか S3 とか使って動かしてみる s3fs-fuse を使えばもっと簡単そうなのでやってみ…

AWS で WordPress を RDS とか S3 とか使って動かしてみる

AWS

少し前に AWS で DRBD やら Pacemaker やら Heartbeat やら GlusterFS を使って WordPress を HA 構成にしてみましたが、 AWS で HA クラスタで WordPress を動かす なんで RDS とか S3 とか使わないの? 馬鹿なの? 死ぬの? とセルフツッコミが入ったので …

Zend Framework 2 で Smarty を使うためのモジュール

そういえばだいぶ前に Zend Framework 2 で Smarty を使うためのモジュールを作りました。 ngyuki/zf2-smarty なお、ZfcTwig を大いに参考にしました。 最初に作ったのは1年ぐらい前だったと思います。その当時に GitHub とかで同じようなものを探してみた…

AWS で HA クラスタで WordPress を動かす

最近お仕事でも AWS を使わざるを得ない状況になってきたので、ためしに AWS で WordPress を HA 構成にしてみました。 なお、RDS や S3 は使っていないのであまり AWS っぽくはありません(オンプレをできるだけそのまま AWS に移行する想定だったので)。 …

ISC dhcpd で IP アドレスに基いてホスト名を自動設定

AWS EC2 のインスタンスを立ち上げたとき、(AMI によるかもしれませんが)DHCP で付与された IP アドレスに基いて ip-10-11-12-13 のようにホスト名が設定されるのを見て、さすが AWS は不思議なチカラでよくわからんことをしよる、と思いました。 と、思っ…

CentOS 7 の dhcpd で DDNS が失敗する

次のような感じで、リースした IP アドレスを Dynamic DNS でネームサーバに登録する DHCP サーバを CentOS 6 で作っていたのですが、なぜか CentOS 7 にすると同じような設定でも DDNS での更新が失敗するようになりました。 dhcpd.conf log-facility daemo…

PHP のクラス定数のちょっと奇妙な話

PHP

このコードは Notice なく実行できる。よく考えると奇妙じゃない?