カテゴリー
Linux

◆大変◆ZABBIX サーバを CentOS 5.10 に苦労してインストール!◆でしたの◆

ZABBIX サーバをインストールします。よくこんがらがりますけれども、このように理解します。

  • ZABBIX サーバ 監視する方。データを要求する方。相手のデータをエージェントから受け取る方。
  • ZABBIX エージェント 監視される方。データを催促される方。自分のデータをサーバに提出する方。

インストールにあたっては、こちらの公式ドキュメントに沿って行いました。その際に何度か失敗して、エラーに遭遇し、恥ずかしくもぎゃあぎゃあ騒がしくした部分も含め、記録したいと思います。

カテゴリー
Linux

★失★Ganglia インストール後の表示がうまくいきません><★敗★

サーバ監視に Ganglia というものを使ってみようと思いますの♪

まずは、インストール!の前に簡単に環境を整理しますわ。

  • 管理する、監視する、結果を受け取って表示するサーバの gmetad(Ganglia Metadata collection daemon)
  • 管理される、監視される、状態を送るサーバの gmond(Ganglia Monitoring daemon)

これらをわけて別々のサーバにインストールすることが定石のようです。けれども、最初の一歩の練習ですので、両方共同じ端末にインストールしますわ!

。。。と思いためしてみたのですけれども、失敗しました><。今回はその記録です。

失敗内容

  • 監視サーバで、PHP のエラーで収集結果を表示できない><
カテゴリー
Linux

iptables のログが /proc/kmsg に出ました。見たいなら dmesg を使いますの♪

とある環境で、iptables のログが /var/log/message に出ませんでした。

そこで iptables ログに出していたテキスト、仮に「[Port Scan?] 」といたしましょう、を全ファイルを対象にグレップいたしました。そうしましたら /proc/kmsg に出ていました。

find / -type f -name \* -print | xargs grep 'Port Scan?' /dev/null

/proc/kmsg 、一体何者なんです?いえ、その前にログ情報をもっとほしいです。そこで

tail -20 /prom/kmsg

と試みるのですけれども、全く出力されません。次のようにすると、出力されました。

dmesg | tail -20

ちなみに、「dmesg | tail -f」ですとエラーとなりました。

カテゴリー
Linux

grep でファイル拡張子をマッチさせる方法メモ♪

grep コマンドで拡張子を検出するメモ

# testfile.txt の「.txt」が含まれている行を表示
# '…' 正規表現を使用
# '…' の中で「\m」 メタ文字「m」の本来の文字にマッチ
grep '\.txt' testfile.txt

ポイントは、正規表現を有効化するためにパターンをシングルクォーテーション「’」で囲っておきながら、正規表現を無効化するために「¥」をドット「.」の前に置くという点です。

周りくどいですけれども、わたくしはこうしませんと拡張子をグレップできませんでした><。

カテゴリー
Linux

Apache の mod_security を yum インストール【高いバージョン、リポジトリ】【性能測定】【CentOS 5.9】★わふー♪2★

Apache の mod_security をインストールしました。

  • yum で簡単にお手軽に mod_security をインストール
  • CentOS 5.9
  • できるだけ最新版のバージョンの mod_security を導入したい

以上の条件での記録を残します。

ポイント

  • 本家で紹介されているリポジトリ RHEL/CentOS Yum Repository (Jason Litka) よりも、EPEL の方がより最新のバージョンの mod_security を CentOS へインストールできる
  • ルールを設定しなくとも mod_security をインストールするだけで性能は落ちる

性能の低いサーバには入れないほうがよいという判断も充分にありえますわ。セキュリティのルールをたくさん設定しても性能は落ちるのでしょうけれども、インストールするだけで落ちますから。

カテゴリー
Linux

なんだか動きがおかしいですわ? → ntpd ログ出力&ローテートを設定メモ♪

ntp 設定ファイルを編集してログが出力されるようにします

編集するファイルはこれですわ。

vim /etc/ntp.conf

ファイル末尾に次を追加しますの。「logconfig」は、「=」の右側にスペースを入れないことがコツですわ。

logfile /var/log/ntpd.log
logconfig =all

再起動も忘れずに♪起動時のログもバッチリ、指定しました /var/log/ntpd.log に記録されます。

/etc/init.d/ntpd restart

ntp ログのローテート設定をします♪

ローテート用のファイル /etc/logrotate.d/ntpd を作成しますの。

vim /etc/logrotate.d/ntpd

1行目ではもちろん、設定ファイルに記述しましたログファイルを指定しまして、内容はシンプルに次のようにいたします。

/var/log/ntpd.log {
    missingok
    notifempty
    copytruncate
}

これで一安心ですわ。

カテゴリー
Linux

phpPgAdmin を yum を使ったときと同じようにインストールするためのポイント♪

ソースからインストールするときでも yum でインストールしたときと同様の構成にするためのポイント

  • ソースファイルは /usr/share/phpPgAdmin に置く。
  • Apache の設定ファイルは /etc/httpd/conf.d/phpPgAdmin.conf とする。
  • もちろん phpPgAdmin の設定ファイル /usr/share/phpPgAdmin/conf/config.inc.php も適当に修正する。

以上の2点です。

Apache 設定ファイルの内容

カテゴリー
Linux

zip コマンドで指定したファイルをディレクトリ構造を保ったまま圧縮する方法メモ!

ディレクトリ内の、指定したファイルをディレクトリ構造を保ったまま抜き出して圧縮する zip コマンドまとめ

# ディレクトリ構造を保ったまま任意のファイルを圧縮
zip -r test.zip dir1/ -i dir1/file1.txt dir1/dir2/file21.txt
  • コマンドを実行する場所に dir1 ディレクトリがある
  • -r オプションでファイルとディレクトリを再帰的に処理するように指定
  • test.zip は圧縮されて作成されるファイル
  • dir1/ は圧縮対象となるディレクトリ
  • -i オプションで指定したファイルのみを圧縮する
  • dir1/file1.txt と dir1/dir2/file21.txt が圧縮対象のファイル

このときの dir1 ディレクトリの中は、次のような構造ですので、指定したファイルのみが圧縮されているか否かを確認することができます。

.
`-- dir1
    |-- dir2
    |   |-- file21.txt
    |   |-- file22.txt
    |   `-- file23.txt
    |-- file1.txt
    |-- file2.txt
    `-- file3.txt

解凍して本当にディレクトリ構造を保ったまま圧縮できているか、確認します!

カテゴリー
Linux

PostgreSQL のデータベースを別サーバへコピーする方法メモ♪

データベースを同じサーバの PostgreSQL へコピーするコマンド

-- データベースをコピー。db1(user1、password1) から db2(user2、password2)に
-- pg_dump -U user1 -W db1 | psql -U user2 -W db2 とすると
-- 「ERROR:  ロール"user1"のメンバでなければなりません」や
-- 「WARNING:  "public"の権限を取り上げられませんでした」の
-- メッセージが出るため、スーパーユーザーで実行することで回避
pg_dump -U postgres -W db1 | psql -U postgres -W db2

データベースを別のサーバの PostgreSQL へコピーするコマンド

データベースのコピーのコマンドの前に、次の内容のパスワードファイルを作成しておく必要があります。

  • コピー元サーバで、pg_dump を実行するユーザのホームディレクトリに .pgpass ファイルを作成する
  • コピー先サーバで、psql を実行するユーザのホームディレクトリに .pgpass ファイルを作成する
# hostname:port:database:username:password
localhost:5432:*:postgres:postgrespassword

実際の別サーバへのコピーは次のコマンドで行います。

-- 別サーバに PostgreSQL データベースをコピー。db1(user1、password1) から hostname サーバ(ユーザ名 hostuser)の db2(user2、password2)に
-- ただし、事前にパスワードファイルの設定が必要
pg_dump -U postgres db1 | ssh hostuser@hostname psql -U postgres db2
カテゴリー
Linux

MySQL のデータベースを別サーバへコピーする方法メモ♪

データベースを同じサーバの MySQL へコピーするコマンド

# データベースをコピー。db1(user1、password1) から db2(user2、password2)に
mysqldump -u user1 -ppassword1 -n db1 | mysql -u user2 -ppassword2 db2

データベースを別のサーバの MySQL へコピーするコマンド

# 別サーバにデータベースをコピー。db1(user1、password1) から hostname サーバ(ユーザ名 hostuser)の db2(user2、password2)に
mysqldump -u user1 -ppassword1 -n db1 | ssh hostuser@hostname mysql -u user2 -ppassword2 db2