ラベル Solaris の投稿を表示しています。 すべての投稿を表示
ラベル Solaris の投稿を表示しています。 すべての投稿を表示

2009年4月21日火曜日

ZABBIXの重さ…もといPostgreSQLの重さ?

ZABBIXを稼動させるようになってからしばらく経つが、どうもサーバに負荷がかかりすぎているようで、ほぼ100%のCPU負荷をキープしている。
いくつかのグラフが途切れ途切れになっている。
どうもエージェントの送ってくるデータを取りこぼしているらしい。

topコマンドで稼働中の状態を確認すると、ZABBIXのサーバデーモン自体は大した負荷ではないが、PostgreSQLのCPU占有率がかなり高く、そいつらだけで90%を軽く超えているようだ。

MySQLの方が軽いのでそっちを使うように変更して試したいが、configureが通ってもmakeが通らない状況が続いている。
ん~、まじめにCとかC++(正確にはmakeとかautomakeとかリンカとか?)に取り組んでおけばよかった(-_-;

さて、どうしたものか…。

2009年4月20日月曜日

あるユーザーが起動しているプロセスのPIDを全て得るには…

あるユーザーが起動しているプロセスのPIDを全て得るには…って前も書いた気がするが、もっと簡単なコマンド発見(-_-;
pgrep -U <ユーザー名>

で、これを使ってプロセスを終了させる方法は…って、pkillコマンドを使えばそれも不要(-_-;
pkill -U <ユーザー名>

考えることは同じってことで≧(´▽`)≦アハハハ
Solaris10とSolaris9で確認(・ω・)b

2009年4月9日木曜日

ZABBIX 1.6.4 インストール

zabbix 1.6.4をインストールしてみた。

環境は'Solaris 10 10/08 x86版 + Sun Web Stack 1.4(install amp)' (・ω・)b

  1. アーカイブを展開
    ダウンロードしてきたアーカイブを展開する。
    gzip -dc zabbix-1.6.4.tar.gz | tar xvf -

  2. configure
    configureでMakefileを作成
    ./configure --enable-agent --enable-server --with-net-snmp -- with-pgsql

  3. コンパイル
    gmake

  4. インストール
    gmake install

  5. PostgreSQLへのデータ登録
    PostgreSQLの管理者アカウントにsuして、
    createdb zabbix
    cat <展開したディレクトリ>/create/schema/postgresql.sql | psql zabbix
    cat <展開したディレクトリ>/create/data/data.sql | psql zabbix
    cat <展開したディレクトリ>/create/data/images_pgsql.sql | psql zabbix
    としてDBMSにDBを作ってテーブル作ってデータを流し込む。
    本来であれば、PostgreSQLのユーザー'zabbix'も作って、このDBへのアクセス権も制限して…ってやるのであろうが、とりあえず省略ヾ(--;)ぉぃぉぃ

  6. ZABBIXサーバの起動
    /etc/zabbix/zabbix_server.confをいじってから
    /usr/local/sbin/zabbix_server

  7. ZABBIXエージェントデーモンの起動
    /etc/zabbix/zabbix_agentd.confをいじってから
    /usr/local/sbin/zabbix_agentd

  8. 自動起動の設定
    本当はここで/etc/init.dに起動スクリプトを作成して/etc/rc3.dあたりにリンクを張って…ってやるのであろうが、とりあえずパスヾ(--;)ぉぃぉぃ

  9. インターフェイスの公開
    ZABBIXのインターフェイスはPHPで書かれたWebアプリケーションなので、展開したディレクトリ内のfrontends/phpの中身をごっそりApache2.2が公開するディレクトリにコピー。

  10. インターフェイスの設定
    コピーしたディレクトリにブラウザを使ってアクセスすると、いろいろ親切に教えてくれるので、それに従って適当に調整する。

2009年4月6日月曜日

GLPIインストール

GLPI version 0.71.5をインストールしてみた。

環境は'Solaris 10 10/08 x86版 + Sun Web Stack 1.4(install amp)' (・ω・)b

  1. アーカイブを展開
    ダウンロードしてきたアーカイブを展開する。
    gzip -dc glpi-0.71.5.tar.gz | tar xvf -

  2. MySQL設定
    MySQLに新規のデータベース'glpi'を追加し、ユーザー'glpi'に権限を与える。

  3. 公開
    展開したPHPのソースをApacheで公開できるディレクトリに丸ごとコピー。
    続いてコピーしたディレクトリの中にあるconfigとfilesの二つのディレクトリにApache起動ユーザーからの書き込み権限を与える。

  4. GLPI設定
    ブラウザでコピーしたディレクトリにアクセスし、表示される情報に従って進める。
以上。
こっちはあっさり動作した(*^-^)
今のバージョンは日本語表示にも対応しているし、日本語の入力も問題ない。
が、PDFで出力する機能を使うと文字化けする。
たぶん、1バイトフォントしか指定されていないからだと思う。
あと、CSVで出力する機能もあるが、こっちも直接Excelで開いてしまうと文字化けするが、一旦保存して、UTF-8として開けば問題ない。

あとは運用だな。

2009年4月3日金曜日

ZABBIX 1.4.6 インストール

zabbix 1.4.6をインストールしてみた。
正確にはインストールしようとしてみた(^^;)

環境は'Solaris 10 10/08 x86版 + Sun Web Stack 1.4(install amp)' (・ω・)b

  1. アーカイブを展開
    ダウンロードしてきたアーカイブを展開する。
    gzip -dc zabbix-1.4.6.tar.gz | tar xvf -

  2. configure
    configureでMakefileを作成
    ./configure --enable-agent --enable-server --with-net-snmp\
    -- with-mysql=/opt/webstack/mysql/lib/mysql/libmysqlclient.so

  3. コンパイル
    gmake
    以上。
で、あとはgmake installして、MySQLのユーザー作って、MySQLにzabbixのデータを流し込んで、/etc/zabbix/zabbix_serverと/etc/zabbix/zabbix_agentをいじって、起動スクリプト書いて起動して、フロントエンドをApacheのドキュメントが参照できるところに持っていって、ブラウザからそれを参照してユーザーインターフェイスの設定をして終わり…のはず。

が、コンパイルでこけた( ̄▽ ̄;)
どうも複数のバージョンのMySQLがいて、configureでどれを参照するか指定しているのに、別のバージョンのヘッダファイルを参照するようになっていることが原因らしい。
強引にMakefileのCFLAGSに-Iでlibmysqlclient.soのありかを指定してコンパイルしても、lddで確認すると、別バージョンを参照するようになっている。

…自分の今の知識では、参照先を変更する方法がわからないので、とりあえず放置ヾ(--;)ぉぃぉぃ

2009年3月7日土曜日

SolarisをDVDからネットワーク経由でインストールするには

Solaris10をDVD-ROMからインストールしたいが、インストール先のホストがDVDを読めない(ドライブがない、あるいはCD-ROMしか読めない)場合、手に入れたSolaris10のインストールDVDを使って、リモートで行う。

  1. DVD-ROMをリモートホストでマウント
    DVDドライブを提供するサーバで、DVDをマウントする。
    mount -F nsfs /dev/dsk/cXtXdXsX /cdrom
    (デバイス名とマウントポイントは適宜変更)とし、マウントする。

  2. サーバにSolarisをインストールするノードのホスト名とIPアドレスを登録
    /etc/hostsに記述する。

  3. サーバにSolarisをインストールするノードのホスト名とMACアドレスを登録
    /etc/ethersに記述する。

  4. サーバ側のプログラムをいくつか起動
    と言っても、スクリプトで自動でやってくれる。
    cd /Solaris_10/Tools
    ./add_install_client <ホスト名> <プラットフォームグループ>
    ここで、ホスト名にはインストール対象のホスト名を、プラットフォームグループには、そのホストで実行した`uname -m`を入れる。
    エラーが出なければ、大丈夫だと思う。

  5. クライアントを起動する
    このとき、サーバと同一セグメントに接続しておくこと。
    OSが起動し始めたら、一旦ブレーク信号やStop+Aで止める。
    その後、{ok}プロンプトで
    boot net
    とする。

  6. Solarisをインストール
    うまくいけば、インストール対象のホストがネットワーク経由で起動し、Solarisのインストーラが起動するので、続けて作業する。

  7. DVD-ROMの取り出し
    インストールが終わったら、サーバで
    ./rm_install_client <ホスト名>
    cd /
    eject /cdrom
    とする。
はずが、何故かサーバからDHCPでIPアドレスをもらえず、原因調査中…。
LANケーブルを抜けないサーバだが、さて、どうしたものか(-_-;

2008年11月4日火曜日

Solaris9にファイル名に'@'を含むファイルをFTPで転送するには

Solaris9のFTPDは、標準設定では、英数、'.'、'_'、'-'しかファイル名として受け付けない。
また、'@'はファイルシステム的には使えるが、bashではタブ補完のときにバックスラッシュでエスケープされるので、推奨されないのだろう。
だが、訳あって通さないといけなくなったので、その設定を行う。

というわけで、/etc/ftpd/ftpaccessを編集する。
path-filterの行の第4項
^[[:alnum:]._-]*$
^[[:alnum:].@_-]*$
に変更する。
ここで、変なところに挿入すると違う意味になる場合があるので注意。

ftpdはinetdから起動しているので、再起動の必要はなし。

UNIXで古いファイルを検索するには

findを使用。
find <検索対象ディレクトリ> -mtime +<経過日数>
とすればよい。
例えば/home/hoge内の10日以上経過したファイルを検索するには、
find /home/hoge -mtime +10
上記の記述の中で'+'の記号は必須。
これを付けないと、指定した日数だけ経過したファイルを検索するので、それより古いファイルが対象外になってしまう。
また、対象ディレクトリ内にあるサブディレクトリ内も検索対象になるので注意。

これを踏まえて、検索したファイルの詳細情報を表示するには、
ls -l `find <検索対象ディレクトリ> -mtime +<経過日数>`
とする。

で、恐らく
rm -rf `find <検索対象ディレクトリ> -mtime +<経過日数>`
とすれば対象ファイルを削除できるが、面倒なので未検証(^^;)

以上、(rm以外は)Solaris9で確認。

2008年10月2日木曜日

あるユーザーが起動しているプロセスのPIDを全て得るには

あるユーザーが起動しているプロセスのPIDを全て得るには、
ps -ef | grep ユーザー名 | grep -v grep | awk '{print $2}'

とすればよい。

ついでに、
for pid in `ps -ef | grep ユーザー名 | grep -v grep | awk '{print $2}'` ; do kill $pid ; done

で、得たPID全てに終了シグナルを送る。

以上、Solaris 9で確認。