TurbolinuxでDRBDインストール

Linux, コラム No Comments

Turbolinux 11 serverでDRBDのインストールに成功しました。これから色々とテストを行って実験して行くことになるのですが忘れるといやなので取り急ぎメモとして残します。

debianやCentなどでパッケージが存在しますので、DRBDの為にわざわざTurbolinuxを使用する必要はないとかもしれませんが商用のパッケージという縛りかつlinuxかつコストパフォーマンスを考えていくとTurboになったという経緯があります。

ではインストールを開始していきます。あ、DRBDのバージョンは2009年5月23日現在で最新の8.3.1を利用します。事前に
gcc-c++
・kernel-source
・flex
のインストールをturbo+などを利用してインストールして下さい。ここではインストールされているとして作業を進めていきます。またパッケージが存在しないので当然ですがソースコードからインストールを行っていきます。
インストールは大きく分けて
・カーネルのモジュール作成
・DRBDコンパイル&&インストール
という2ステップが必要です。CentOSではカーネルのソースコードをインストールしただけでカーネルモジュールが存在しているようなので最初のステップは無視できます。Turbolinuxなどのモジュールが存在しないlinuxでは、ここで紹介するステップを踏んでいくことでインストールが可能だと思います。

では最初のステップ、カーネルのモジュール作成から開始しましょう。当然ですがroot権限が必要です。suでrootユーザになって下さいね。
Turbolinuxは[/usr/src/linux]にソースが存在します。[make mrproper]にて環境を初期化して[SetupKernelSource.sh i686]で設定ファイル(.config)を作成、モジュールを作成します。

# cd /usr/src/linux
# make mrproper
# ./SetupKernelSource.sh i686
# make modules

上記コマンドを実行、エラーが発生しなければモジュール作成が完了です。次にDRBDをインストールします。技術評論社、24時間365日サーバ/インフラを支える技術などを読むとなるべく最新版を使用すべきと紹介されていましたので最新バージョンを利用しました。(安定版は8.0系のようです。ですので8.0系を利用するのも有りだと考えています。)ソースコードはいつも通り[/usr/local/src]を利用することにします。
最新版はhttp://oss.linbit.com/drbd/を確認してみて下さい。

# wget http://oss.linbit.com/drbd/8.3/drbd-8.3.1.tar.gz
# tar xvzf drbd-8.3.1.tar.gz
# cd /usr/local/src/drbd-8.3.1
# make clean all KDIR=/usr/src/linux
# make KDIR=/usr/src/linux
# make install
# mv /etc/drbd.conf /etc/drbd.conf.ORG

ポイントはKDIRオプションを用いてソースコード場所をmake時に指定することでしょうか。また設定ファイルは削除せずに上記の通り違う名前で保存しておいて、参考にするとよいでしょう。

設定は時間があって自分なりの検証が終わったらアップしたいと思いますが何時になるか(笑)

【番外編】Turbolinuxを触ってみての感想
少し触った感じではブート時のサービス起動の少なさと言い、デフォルトでインストールされるパッケージと言い、なかなか考えられているなぁと思いました。でも
・popt-develパッケージが存在しない(keepalivedのインストールに必要、結局ソースコードからインストールしてしまいました。バージョン8の時代には存在したみたいなんだけど。)
・dovecotがない(確かにまだまだこなれていない部分がありますが、通常の使い方では十分だと思うんだけどな。)
・情報が少ない(昔は吸気系加圧器か赤い帽子かと言われていたのに)
・yumなどのコマンドラインから使用しやすいパッケージ管理ツールがない(Turbo+も良いとは思うんだけど、パッケージが探しにくい。パッケージ名を検索できるようになったら、もっと使い勝手があがると思います)
という欠点が目につい来ました。でもでも最大の欠点は
・カーネルのビルドは出来てもinstallが出来なかった(なぜ!?)
点です。いや、多分間違いなく自分がなにか致命的なミスをしているか、何かだと思いますからTurbolinuxそれ自体は悪くないです。でも何が原因か分からないんですよね。。。。。。
今の所サポートが必要な状況に追い込まれていないので、サポートがどうかなどの判断ができません。なのでいろんな意味で判断は保留なのですが、超個人的意見をいえばTurbolinuxは商用で有れば次も使いたいと思ってます。

Linuxでもzabbix (Server編)

Linux, zabbix No Comments

最近はLinuxでの仕事が増えてきて、自宅のサーバは全然かまってあげてません。最低限のメンテナンス位かなぁ。FreeBSD6.4-RELEASEも公開されているから色々と試したいし、シェルスプリクトもいくつか公開したいし、ページデザインも見直してPC系のコラムが書けるようにしたいし(インストールの紹介は新しくページを作ってHTMLで見やすくしたいなぁ、シェルスプリクトなページも作りたいし。)、でも時間がない上に古いノートを(液晶に2本の筋がはいってる)がんばって使っている今の現状ではいかんともしがたいのです。

とまぁ、愚痴はここまで、さくさくとインストールを行っていきましょう(笑)。 基本的にはFreeBSDのportsを用いたインストールと大きく変わりません。またいくつかのディストリビューションではrpmなどのバイナリが提供されています。ただ仕事で利用したRed Hat Enterprise Linux 5では残念ながらrpm提供されていなかったためソースコードからインストールを行います。事前に

・mysql5.0
・php
・apache
・net-snmp-devel(SNMPを利用する場合)

のインストールを行っておいてください。rpmコマンドを利用するよりもyumを利用したほうが依存関係をしらべて必要なパッケージも同時インストールされるので簡単です。

例:)yum -y install net-snmp-devel

では、さくさくとインストールを進めていきましょう。Agent編と同様に作業用のディレクトリは 【/usr/local/src】 とします。インストール時にrootになるのが正しいとは思いますが、今回も最初からrooユーザで作業します。またインストールを行うバージョンは1.4.6です。(なるべく最新のバージョンを利用しましょう) apacheのDocumentrootは「/var/www/html」とします。zabbixフォルダを作成して「http://IPアドレス/zabbix」でデータが閲覧できるように設定します。

■zabbix_serverのインストール
# cd /usr/local/src/
# wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.4.6.tar.gz
# tar xvzf zabbix-1.4.6.tar.gz
# cd zabbix-1.4.6
# ./configure –enable-server –with-mysql –with-net-snmp
# make
# make install

次にzabbixユーザとグループをシステムに追加しましょう。

# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix

ここからmysqlにデータベースを追加して、php.iniなどを調整します。

■mysqlにデータベースを作成
# mysql -u root -p PASSWORD
# create database zabbix

■テーブルを作成
# cd /usr/local/src/zabbix-1.4.6/create/schema/
# cat mysql.sql | mysql -u root zabbix
# cd ../data/
# cat data.sql | mysql -u root zabbix
# cat images_mysql.sql | mysql -u root zabbix

■php.iniの設定
/etc/php.ini
max_execution_time = 300
date.timezone=”Asia/Tokyo”

■zabbixの設定前準備
# mkdir /etc/zabbix
# cp /usr/local/src/zabbix-1.4.6/misc/conf/zabbix_server.conf /etc/zabbix/
# mkdir /var/run/zabbix
# mkdir /var/log/zabbix
# chown zabbix:zabbix /var/run/zabbix
# chown zabbix:zabbix /var/log/zabbix
# mkdir /var/www/html/zabbix
# cp -a /usr/local/src/zabbix-1.4.6/frontends/php/* /var/www/html/zabbix/
# chown -R root:root /var/www/html/zabbix

■zabbixサーバの設定
# vi /etc/zabbix/zabbix_server.conf
~~~変更内容~~~
PidFile=/var/run/zabbix/zabbix_server.pid
LogFile=/var/log/zabbix/zabbix_server.log
DBName=zabbix        <- 適宜変更のこと
DBUser=zabbix        <- 適宜変更のこと
DBPassword=zabbix    <- 適宜変更のこと
~~~~~~~~~~

 

最後に起動ファイルを準備します。fedora用のファイルがありますのでAgent編と同様に流用します。

■自動起動スプリクトの修正
# cp /usr/local/src/zabbix-1.4.6/misc/init.d/fedora/core/zabbix_server /etc/init.d/
# vi /etc/init.d/zabbix_agentd

~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
FULLPATH=$BASEDIR/sbin/$BINARY_NAME
BASEDIR=/usr/local
PIDFILE=/var/run/zabbix/$BINARY_NAME.pid
~~~~~~~~~~~~~~~~~~~~~~~~~~

以上で設定は完了しました。chkconfigなどで起動時に自動起動されるように設定して起動確認を行いましょう。

Linuxでもzabbix (Agent編)

Linux, zabbix No Comments

 しばらく忙しくて更新が出来ていませんでしたが、やっと時間が取れたので忘れないうちにLinuxでzabbixのインストール方法を紹介したいと思います。

 自分が思うに基本的にLinuxでのソフトウェアインストールはrpm等のFreeBSDでいうPackagesを利用してWindowsアップデートのような自動アップデートツールを利用してアップデートを行い、rpmで用意されていないツールを利用する場合にソースコードからインストールして運用する、が正しい運用方法のような気がしています。ですので各ディストリビューションでrpm等が提供されている場合はそちらを利用してください。

今回はRed Hat Enterprise Linux 5にてソースコードよりインストールを行います。作業用のディレクトリは 【/usr/local/src】 です。インストール時にrootになるのが正しいとは思いますが、今回は最初からrooユーザで作業します。下記の通り、一気にコンパイル&&インストールを行いましょう。この記事を書いている時の最新バージョンである1.4.6を利用します。適時バージョンは確認を行ってください。(※しかし最近のdorakenの仕事はRed Hatを利用することが多くなってきました)

# cd /usr/local/src/
# wget http://nchc.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.4.6.tar.gz
# tar xvzf zabbix-1.4.6.tar.gz
# cd zabbix-1.4.6
# ./configure –enable-agent
# make
# make install

以上でエージェントは 【/usr/local/sbin】 にインストールされました。ここからは設定ファイルおよび起動ファイルを修正していきます。基本的にFreeBSDで設定したとおりですが「zabbix」ユーザとグループを作成すること、起動ファイルを一部修正することが必要です。

最初にzabbixユーザとグループをシステムに追加しましょう。

groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

次に 【zabbix_agentd.conf】 を環境に合わせて修正していきます。zabbix_agentd.confのサンプルファイルをコピーして適宜修正していくこととします。

mkdir /etc/zabbix
cp /usr/local/src/zabbix-1.4.6/misc/conf/zabbix_agentd.conf /etc/zabbix/
vi /etc/zabbix/zabbix_agentd.conf

 ~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
# ServerのIPを編集します。
Server=xx.xx.xx.xx
(※注意事項:この時zabbixサーバーのzabbix_server.confに記述したIPと同じIPを記述しないとうまくデータ取得ができません。。)

# エージェントを動作させるサーバのHostnameを記載します。
Hostname=xxxxxx

#ListenIPのコメントを外して自分のIPを記述します。
ListenIP=xx.xx.xx.xx
(※注意事項:この時後々zabbix上で設定するIPと異なっているとうまくデータ取得ができません。)

# pidファイルの場所を/var/runに配置します。
PidFile=/var/run/zabbix/zabbix_agentd.pid

# ログファイルの場所を/var/logに配置します。
LogFile=/var/log/zabbix/zabbix_agentd.log
~~~~~~~~~~~~~~~~~~~~~~~~~~

最後に起動ファイルを準備します。fedora用のファイルがありますので、これを流用することとします。

cp /usr/local/src/zabbix-1.4.6/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
vi /etc/init.d/zabbix_agentd

~~修正内容(抜粋)~~~~~~~~~~~~~~~~~
FULLPATH=$BASEDIR/sbin/$BINARY_NAME
BASEDIR=/usr/local
PIDFILE=/var/run/zabbix/$BINARY_NAME.pid
~~~~~~~~~~~~~~~~~~~~~~~~~~

変更点は 【/usr/local/sbin】 配下にzabbixがインストールされているのでFULLPATHの指定を 「bin ->sbin」に修正、pidfileの保存ディレクトリを「/var/run/zabbix」に修正した。の2点です。修正が完了したらエージェント起動を行うために最終調整を行いましょう。

chmod 755 /etc/init.d/zabbix_agentds
mkdir /var/run/zabbix
mkdir /var/log/zabbix
chown zabbix:zabbix /var/run/zabbix/
chown zabbix:zabbix /var/log/zabbix/

上記、起動準備が整ったらエージェントを起動してみます。
/etc/init.d/zabbix_agentd start

以上で設定は完了しました。自動で起動を行う場合はchkconfigで自動起動設定を行って下さい。今回の場合は下記のようになります。

chkconfig –add zabbix_agentd
chkconfig zabbix_agentd on

Linuxでテープバックアップ

Linux, mysql No Comments

 しばらく前に「サーバに内蔵されているシングルテープドライブを利用したいんだけど」と相談されました。普通に考えると商用ソフトであるCA ARCserve Backupの使用を進めたりするのですが諸般の事情によりmt を利用することにしました。

 お客様が利用されているのは Red Hat Enterprise Linux 、CDを確認するとの三枚目に「mt-st-0.9b-2.2.2.i386.rpm」を見つけましたのでこちらをインストールして利用することとにします。サクっとCDをマウントrpmインストールを行いましょう。

# rpm -ihv mt-st-0.9b-2.2.2.i386.rpm

でインストールを行うとmtコマンドが利用できるようになります。コマンドの使用方法は他のホームページを参照してもらうとしまして、bashスクリプトでマネージャーもどきバックアップリストアする3本のスクリプトを作成しました。

 バックアップするシェルスクリプトとは、バックアップする対象フォルダは「/var/www」と「/etc」、あとはmysqlのdb名を指定して(ここではtest_data)バックアップするときに必要なrootアカウントのパスワードを設定(ここではroot_passとしましょう)、「/root/backup/latest/」へバックアップデータをまとめてテープで圧縮、その後「日付+tar.gz」でまとめたら「/root/backup/latest/」フォルダを削除、7日分の「日付+tar.gz」ファイルより古いファイルは削除するという設計にしています。さらに金曜日はテープが自動的にイジェクトされるようにしてみました。

 リストアスクリプトは「/root/restoring」フォルダへデータをリストアするという設計です。

 マネージャスクリプトはドライブの状態確認したり、テープの内容を消去したり、リストアスクリプトやバックアップスクリプトを実行したりします。またバックアップはcrontabで毎日決まった時間に起動するようにします。bashスプリクトで配列変数を使用していますのでバックアップしたいmysqlデータベースを追加していくだけでバックアップ可能です。

 このスプリクトは少し改変するだけで色々と転用方法があると思います。このデータベースバックアップ方法には欠点もあるので、内容を理解して使用してくださいね。

ちょっとした小技

FreeBSD, Linux No Comments

小技 その1

サーバ管理をしていているとroot宛のメールを自分がメインで使用しているメールアドレスへ転送したくなってきますよね?なのでエイリアス設定を行って転送されるように設定しましょう。

エイリアス設定は標準MTA(sendmail)の場合、「/etc/mail」フォルダ内にある「aliases」ファイルで設定を行います。設定を行った後は.dbファイルを更新する必要がありますので、ディレクトリチェンジを行ってからファイル編集を行いましょう。

%cd /etc/mail/
%vi aliases

テキストファイルをエディタで開くと17行目付近に

# root’s email from here.
root: メールアドレス

という記述があると思います。「root: 」の行に転送したいメールアドレスを記述してファイルセーブ&エディタを終了してください。その後

%make

コマンドを発行して.dbファイルを更新、設定を有効にします。以上でメール転送設定が完了しました。

 

小技 その2

findってとっても便利なコマンドですよね。でも使い方がちょっと難しいと思いませんか?自分が良く迷うのは「-mtime」 や「-mmin 」の「+、-」の部分です。もう一つカレントディレクトリ以下を検索する方法と指定のディレクトリのみ検索したい場合の切り分けですね。パスにピリオド(.)を使用するとカレントディレクトリ以下を検索するという意味になります。なので下記のようなコマンドを発行すると

# 7日以上前のカレントディレクトリ以下にあるファイルを検索する
find . -mtime +7
# 7日前(7*24h - 8*24h)のカレントディレクトリ以下にあるファイルを検索する
find . -mtime  7
# 7日以内のカレントディレクトリ以下にあるファイルを検索する
find . -mtime -7

ちなみに「/tmp」フォルダ内にある7日以上前のファイルを一気に削除を行い対場合は「find /tmp -mtime +7 -exec rm -f {} \;」のような使い方になります。

その他、便利な小技があればちょっとずつ公開していきたいと思います。逆にこのようにコマンドを利用すれば便利だよって技があれば是非是非教えてくださいね。

« Previous Entries