スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

backlogで古い鍵交換を使ったssh接続

Macでモダンな公開鍵を使いたくて「brewで入れたOpenSSHでEd25519とECDSAを利用する。」を参考にOpenSSHのバージョンアップをしました。
これでgithubはうまくアクセスできるようになったんですが、仕事で使っていたbacklogのgitにアクセスできなくなりました。以下のようなエラーがでます。

Unable to negotiate with xxx.xxx.xxx.xxx: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
fatal: Could not read from remote repository.

調べてみたところ「OpenSSH 6.7p1にしたら algorithm negotiation fail」という情報が見つかり、どうやら新しいOpenSSHではデフォルトではサポートしない鍵交換のようです。リンク先の解決法はサーバの設定だったので、クライアント側つまり~/.ssh/configで設定したところうまく動くようになりました。

Host xxx.git.backlog.jp
HostName xxx.git.backlog.jp
User xxx
IdentityFile ~/.ssh/id_rsa
Port 22
KexAlgorithms diffie-hellman-group1-sha1

ということでbacklogさんにはEd25519が使えるくらいにバージョンアップしてほしいところ。
スポンサーサイト

fluentdでログをメールで送信する

Ubuntuにfluentdをインスートルして、メールで送信する方法です。
dはログの内容、lはログレベル、cはカテゴリーです。yiiのロギングに準拠しています。

・インストール
sudo aptitude install curl
curl -L http://toolbelt.treasure-data.com/sh/install-ubuntu-precise.sh | sh
sudo /usr/lib/fluent/ruby/bin/fluent-gem install fluent-plugin-mail
vi /etc/td-agent/td-agent.conf
<match app.mail>
type mail
host localhost
from noreply@example.com
to aoyagi@example.com
subject error
out_keys d,l,c
</match>
sudo /etc/init.d/td-agent restart

・テスト
echo '{"d":"こんにちは","l":"warning","c":"system.test"}'|/usr/lib/fluent/ruby/bin/fluent-cat app.mail

AWSでPostgreSQLをバックアップしてS3に保存

PostgreSQLのバックアップをpg_dumpで取ってそれをS3にアップするスクリプトを書きました。
毎日保存して7日前のものから削除します。

#!/bin/bash
WORK_DIR=/tmp/backup
S3CMD=/usr/bin/s3cmd
BACKUP_PATH=s3://my-backup/app-pg/
NEW_YMD=`date +"%Y%m%d"`
OLD_YMD=`date +"%Y%m%d" --date="7 days ago"`
CONFIG=/home/me/.s3cfg
NEW_NAME=$NEW_YMD.dat
BACKUP_FILE=$WORK_DIR/$NEW_NAME
PG_DUMP=/usr/bin/pg_dump
PG_HOST=localhost
PG_USER=user
PG_DB=app
MAIL_CONTENT="backup fail"
MAIL_TITLE="[error]backup"
MAIL_TO="system@example.com"

# バックアップ作成
function make_backup() {
mkdir -p $WORK_DIR
cd $WORK_DIR
$PG_DUMP -h $PG_HOST -U $PG_USER -b -Fc $PG_DB > $BACKUP_FILE
if [ $? -ne 0 ];
then
return 1
fi
$S3CMD -c $CONFIG put $BACKUP_FILE $BACKUP_PATH$NEW_NAME >& /dev/null
if [ $? -ne 0 ];
then
return 1
fi
rm $BACKUP_FILE
return 0
}

# 過去のデータは削除
function rm_old() {
$S3CMD -c $CONFIG ls $BACKUP_PATH | grep -o "[0-9]\{8\}.dat" | while read LINE
do
if [ "$OLD_YMD.txt" \> "$LINE" ];
then $S3CMD -c $CONFIG del $BACKUP_PATH$LINE >& /dev/null
fi
done
unset LINE
}

make_backup
if [ $? -ne 0 ];
then
echo "$MAIL_CONTENT" | mail -s "$MAIL_TITLE" -t "$MAIL_TO"
else
rm_old
fi

さくらVPSにZabbixのインストール

OS : Ubuntu12.04
DB : PostgreSQL9.2Beta2
Web : nginx1.2.1
の環境にZabbixをインストールします。

tar zxvf zabbix-2.0.1.tar.gz
cd zabbix-2.0.1
sudo groupadd zabbix
sudo useradd -g zabbix zabbix
sudo aptitude install libsnmp-dev libssh2-1-dev
./configure --prefix=/opt/zabbix-2.0.1 --enable-server --enable-agent --with-postgresql=/opt/postgresql/bin/pg_config --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2 --enable-proxy
make
sudo make install
sudo ln -s /opt/zabbix-2.0.1 /opt/zabbix
sudo cp misc/init.d/debian/* /etc/init.d
sudo ln -s ./frontends/php /var/www/app/zabbix

createdb -U dbuser -E UTF8 zabbix
psql -U dbuser zabbix < database/postgresql/schema.sql
psql -U dbuser zabbix < database/postgresql/images.sql
psql -U dbuser zabbix < database/postgresql/data.sql
sudo vi /opt/zabbix/etc/zabbix_server.conf
DBUser=dbuser
DBPassword=dbpass

sudo vi /etc/init.d/zabbix-agent
DAEMON=/opt/zabbix/sbin/${NAME}

sudo vi /etc/init.d/zabbix-server
DAEMON=/opt/zabbix/sbin/${NAME}

sudo /etc/init.d/zabbix-agent start
sudo /etc/init.d/zabbix-server start
sudo vi /etc/nginx/site-available/zabbix
server{
listen 80;
server_name zabbix.example.com;
root /var/www/app/zabbix;
index index.php

proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Real-IP $remote_addr;

location ~ \.php$ {
try_files $uri =404;

fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass phpfpm-zabbix;
}
}

upstream phpfpm-zabbix {
server unix:/var/php-fpm.sock;
}

sudo ln -s /etc/nginx/site-available/zabbix /etc/nginx/site-enabled
sudo /etc/init.d/nginx restart

極私的Apacheインストール標準

私がよく使うApcaheのインストール手順です。
OSはUbuntuでソースからインストールしています。
バイナリを/optにインストールして、シンボリックリンクを張っている理由は、新しいバージョンが出ても古いバージョンを消さずにシンボリックリンクだけで新旧を切り替えられるからです。

■ディレクトリ構成
ソース
/home/aoyagikouhei/src/httpd-2.2.17

バイナリ
/opt/httpd-2.2.17
/opt/httpd

ウェブアプリケーション
/var/www/app

ドキュメントルート
/var/www/htdocs

設定
/var/www/conf

ログ
/var/www/log

PHPの設定
/var/www/php/php.inn
/var/www/php/etc/

■コンパイル
./configure \
--prefix /opt/httpd-2.2.17 \
--enable-so \
--enable-rewrite \
--enable-vhost-alias \
--enable-auth-digest \
--enable-dav-fs \
--enable-dav-lock \
--enable-dav \
--enable-http \
--enable-ssl \
--enable-proxy \
--enable-proxy-http \
--enable-headers \
--enable-cache \
--enable-mem-cache \
--enable-deflate \
--enable-headers
make
sudo make install
sudo ln -s /opt/httpd-2.2.17 /opt/httpd

■設定
sudo cp /opt/httpd/bin/apachectl /etc/init.d/apache
sudo chmod 755 /etc/init.d/apache
sudo update-rc.d apache defaults
sudo vi /opt/httpd/conf/httpd.conf

ErrorLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-error.log 86400"
CustomLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-access.log 86400" common
Include /var/www/conf/my.conf



sudo mkdir -p /var/www/conf
sudo mkdir -p /var/www/app
sudo mkdir -p /var/www/log
sudo mkdir -p /var/www/htdocs
sudo mkdir -p /var/www/php/etc
sudo chown aoyagikouhei:aoyagikouhei -R /var/www
vi /var/www/conf/my.conf


AddType application/x-httpd-php .php .phtml
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin webmaster@example.net
DocumentRoot "/var/www/app/example/public"
ServerName example.net
ServerAlias example.net
ErrorLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-example-error.log 86400"
CustomLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-example-access.log 86400" common
<Directory "/var/www/app/example/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@192.168.0.1
DocumentRoot "/var/www/htdocs"
ServerName 192.168.0.1
ServerAlias 192.168.0.1
ErrorLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-ip-error.log 86400"
CustomLog "|/opt/httpd/bin/rotatelogs -l /var/www/log/%Y%m%d-ip-access.log 86400" common
<Directory "/var/www/htdocs">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。