ZABBIX サーバをインストールします。よくこんがらがりますけれども、このように理解します。
- ZABBIX サーバ 監視する方。データを要求する方。相手のデータをエージェントから受け取る方。
- ZABBIX エージェント 監視される方。データを催促される方。自分のデータをサーバに提出する方。
インストールにあたっては、こちらの公式ドキュメントに沿って行いました。その際に何度か失敗して、エラーに遭遇し、恥ずかしくもぎゃあぎゃあ騒がしくした部分も含め、記録したいと思います。
VPS や Vitual Box で使用している Linux、CentOS について勉強したアプリ、設定、コマンドなどを紹介いたします!
ZABBIX サーバをインストールします。よくこんがらがりますけれども、このように理解します。
インストールにあたっては、こちらの公式ドキュメントに沿って行いました。その際に何度か失敗して、エラーに遭遇し、恥ずかしくもぎゃあぎゃあ騒がしくした部分も含め、記録したいと思います。
サーバ監視に Ganglia というものを使ってみようと思いますの♪
まずは、インストール!の前に簡単に環境を整理しますわ。
これらをわけて別々のサーバにインストールすることが定石のようです。けれども、最初の一歩の練習ですので、両方共同じ端末にインストールしますわ!
。。。と思いためしてみたのですけれども、失敗しました><。今回はその記録です。
とある環境で、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」ですとエラーとなりました。
# testfile.txt の「.txt」が含まれている行を表示 # '…' 正規表現を使用 # '…' の中で「\m」 メタ文字「m」の本来の文字にマッチ grep '\.txt' testfile.txt
ポイントは、正規表現を有効化するためにパターンをシングルクォーテーション「’」で囲っておきながら、正規表現を無効化するために「¥」をドット「.」の前に置くという点です。
周りくどいですけれども、わたくしはこうしませんと拡張子をグレップできませんでした><。
Apache の mod_security をインストールしました。
以上の条件での記録を残します。
性能の低いサーバには入れないほうがよいという判断も充分にありえますわ。セキュリティのルールをたくさん設定しても性能は落ちるのでしょうけれども、インストールするだけで落ちますから。
編集するファイルはこれですわ。
vim /etc/ntp.conf
ファイル末尾に次を追加しますの。「logconfig」は、「=」の右側にスペースを入れないことがコツですわ。
logfile /var/log/ntpd.log logconfig =all
再起動も忘れずに♪起動時のログもバッチリ、指定しました /var/log/ntpd.log に記録されます。
/etc/init.d/ntpd restart
ローテート用のファイル /etc/logrotate.d/ntpd を作成しますの。
vim /etc/logrotate.d/ntpd
1行目ではもちろん、設定ファイルに記述しましたログファイルを指定しまして、内容はシンプルに次のようにいたします。
/var/log/ntpd.log { missingok notifempty copytruncate }
これで一安心ですわ。
以上の2点です。
# ディレクトリ構造を保ったまま任意のファイルを圧縮 zip -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
-- データベースをコピー。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
データベースのコピーのコマンドの前に、次の内容のパスワードファイルを作成しておく必要があります。
# 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
# データベースをコピー。db1(user1、password1) から db2(user2、password2)に mysqldump -u user1 -ppassword1 -n db1 | mysql -u user2 -ppassword2 db2
# 別サーバにデータベースをコピー。db1(user1、password1) から hostname サーバ(ユーザ名 hostuser)の db2(user2、password2)に mysqldump -u user1 -ppassword1 -n db1 | ssh hostuser@hostname mysql -u user2 -ppassword2 db2