2015年1月12日月曜日

rsyslog + MySQL 特定ホストだけMySQLへの出力を停止するには No.2

少し前に「rsyslog + MySQL 特定ホストだけMySQLへの出力を停止するには」という記事を書いているのですが、実現手段としてもう一つ追加します。
※評価は、CentOS6.6 + rsyslogのver8.6.0で行っています



ログを受信するポート + rulesetで除外する方法


リモートホスト側で、ログを転送するポートが自由に変更(例えばTCPの5140ポートなどに)できる場合には、以下のように設定することで、テンプレートSTOPSQLとして指定した先にのみログを出力し、その他のファイルやMySQLへの出力を止める事ができます。


input(type="imtcp" port="5140" ruleset="stopsql")

$template STOPSQL, "/var/log/%fromhost%/%$year%%$month%%$day%.log"

ruleset(name="stopsql"){
     action(type="omfile" dynaFile="STOPSQL")
}


(備考)
※詳細は以下のページで確認してください。
http://www.rsyslog.com/doc/v8-stable/concepts/multi_ruleset.html?highlight=ruleset

設定次第で、特定のホストのログだけを特別扱いするといった事が、より簡単に実現できると思います。

2015年1月6日火曜日

ソースの中のmanをインストール前に参照するには

ソースの中に含まれるmanをインストール前の事前確認として参照したい時ってありませんか?

そんな時の対応方法を2例ほど。
 →カレントディレクトリでpostfixのソースを展開後、anvil(8)を参照する例


1.manコマンドを使って参照
$ man postfix-2.12-20141228/man/man8/anvil.8

2.lessコマンドを使って参照
$ less -is postfix-2.12-20141228/man/man8/anvil.8

(備考)
より詳細な内容は、man(1)のDESCRIPTIONやENVIRONMENTなどで確認してください。

2015年1月4日日曜日

CentOS(RHEL)6 クラッシュダンプ用のメモリ割り当てを無効にする


クラッシュダンプを取得する必要がない + kexec-toolsのパッケージを導入していない(kdumpの機能を有効にしていない)にもかかわらず、クラッシュダンプ用にメモリの割り当て(消費)だけはされてしまうという状況を回避しようというのが今回の内容です。
※評価は、CentOS6.6(x86_64)でメモリ2GBを搭載したマシンで行っています


grub.confのkernel行にある”crashkernel=auto”の記述を削除する方法

(注意)
CentOS(RHEL)6系では、新しいkernelをインストールすると、必ず”crashkernel=auto”が付与されるようになっているので、新しいkernelをインストールした場合はその都度、削除をする必要があります
 ⇒ rpm -q --scripts kernel-<version> とするとその付与する処理が確認できます


/etc/init/kexec-disable.confを修正する方法

ファイルの中で”crashkernel=auto"をgrepしているのですが、/proc/cmdlineには実際に割り当てられたメモリの容量が入ってくるので、修正をしないと機能しません。
具体的には以下のように修正するか、その行自体を削除してしまっても良いと思います。

# diff -u /etc/init/kexec-disable.conf.orig /etc/init/kexec-disable.conf
--- /etc/init/kexec-disable.conf.orig     2015-01-02 23:02:11.067185577 +0900
+++ /etc/init/kexec-disable.conf  2015-01-02 23:06:03.607481618 +0900
@@ -8,7 +8,7 @@
 script
        if [ ! -x /sbin/kexec ] || ! chkconfig kdump 2>/dev/null ; then
-               grep -q "crashkernel=auto" /proc/cmdline && \
+               grep -q "crashkernel" /proc/cmdline && \
                echo -n "0" > /sys/kernel/kexec_crash_size 2>/dev/null
        fi
        exit 0
#

これで以下の条件にマッチすると、メモリの割り当てが無効になります。
・kexec-toolsパッケージがインストールされていない
・kexec-toolsパッケージがインストールされているが、自動起動がonになっていない