syslog-ng 3.7.1をなんとかインストールして初期動作までもっていく手順

私が担当した案件ではなかったのですが、syslog-ng 3.7.1のインストールがうまくいかないということで、導入のお手伝いをしました。バグがあったりインストールの詳しい情報がなかったりと苦戦しましたが、インストールと初期動作確認までなんとかできたので、ナレッジとして投稿します。

ちなみに初投稿なので、記載の未熟さについてはご容赦ください。

#【syslog-ngって何？】
名前からsyslog関係であることは分かりますが、私も良く知りませんでした。

Wikipediaによると

>syslog-ngは、Syslogプロトコルのオープンソースの実装である。オリジナルのsyslogdの機能はもちろんのこと、リッチなフィルタリング機能や柔軟な設定オプション、TCPでのログ転送など、さまざまな機能がサポートされている。syslog-ngは現在、Balabit IT Securityにより開発されている。

とのことです。
従来のsyslogdの問題点を解消し、安全性や信頼性を向上させる機能が多く追加されているようです。ngは「next generation」の意味だそうですが、1998年から開発されていたようなので、もはや次世代ではないですね。知らなかった私は恥ずかしいです。。。

[syslog-ng公式ページ](https://github.com/balabit/syslog-ng/releases)で確認すると2015年11月24日時点でバージョンは3.7.2が最新のようです。

#【導入OS】
案件は「Red Hat Enterprise Linux 6.6」でしたが、OSが入手できなかったので、検証環境はほぼ同じ「CentOS 6.6」で実施しました。

#【導入SW】
syslog-ngを導入するにあたり下記が必要になります。
バージョンは今回インストールに成功した構成です。

|ソフトウェア名  |バージョン    |ダウンロード先|
|:--------------|:------------|:------------|
|eventlog       |0.2.12       |[ダウンロード](https://my.balabit.com/downloads/eventlog/0.2)|
|libffi         |3.2.1        |[ダウンロード](http://www.linuxfromscratch.org/blfs/view/svn/general/libffi.html)|
|glib           |2.46.2       |[ダウンロード](http://www.linuxfromscratch.org/blfs/view/svn/general/glib2.html)|
|Python         |2.7.10       |[ダウンロード](https://www.python.org/downloads/release/python-2710/)|
|json-c-devel   |0:0.11-12.el6|yum|
|syslog-ng      |3.7.1        |[ダウンロード](https://github.com/balabit/syslog-ng/releases)|

#【インストール手順】
## 1.eventlog(0.2.12)インストール
・以下のコマンドを順に実行してインストールします。
`tar xfvz eventlog_0.2.12.tar.gz`
`cd eventlog-0.2.12`
`./configure`
`make && make install`

## 2.libffi(3.2.1)インストール
・以下のコマンドを順に実行してインストールします。
`tar xfvz libffi-3.2.1.tar.gz`
`cd libffi-3.2.1`
`./configure`
`make && make install`

## 3.glib(2.46.2)インストール
・以下のコマンドを順に実行してインストールします。
`export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig`
`tar Jxf glib-2.46.2.tar.xz`
`cd glib-2.46.2`
`./configure`
`make && make install`

## 4.Python(2.7.10)インストール
・以下のコマンドを順に実行してインストールします。
※「**./configure**から**/lib"**」までは一つのコマンドです。
`tar Jxf Python-2.7.10.tar.xz`
`cd Python-2.7.10`
`./configure --enable-shared \`
`--prefix=/usr/local \`
`LDFLAGS="-Wl,--rpath=/usr/local/lib"`
`make && make install`

## 5.json-c-devel(0:0.11-12.el6)インストール
・以下のコマンドを実行してインストールします。
`yum install json-c-devel`

## 6.syslog-ng(3.7.1)インストール
・以下のコマンドを順に実行してインストールします。
`tar xfvz syslog-ng-3.7.1.tar.gz`
`cd syslog-ng-3.7.1`
`./configure`

configureを実行し、Makefile作成後、以下の手順を実行しないとmakeでエラーになります。
※バグのようです。[こちら](https://github.com/ihrwein/syslog-ng/commit/e30fe7c3717a7bda4036448c7777747df1a4e0f9)に対処法が載っていました。

`vim modules/afsocket/transport-mapper-unix.c`
33行目の「**typedef**」を削除
38行目の「**TransportMapperUnix**」を削除

`make && make install`

これでsyslog-ng 3.7.1のインストールは完了です。

#【初期設定手順】
## 1.自動起動設定
・以下のコマンドを順に実行して自動起動設定を実施します。
`cp contrib/init.d.RedHat /etc/rc.d/init.d/syslog-ng`
`chmod 755 /etc/rc.d/init.d/syslog-ng`

`vim /etc/rc.d/init.d/syslog-ng`
※以下を先頭行から順に追記します。
**#!/bin/bash**
**# chkconfig: - 85 15**
※以下は同じ設定項目を書き換えます。
**INIT_PROG="/usr/local/sbin/syslog-ng"**

`chkconfig --add syslog-ng`
`chkconfig syslog-ng on`
`service syslog-ng start`

これでsyslog-ngが起動します。

#【初期動作確認】
・以下のコマンドを順に実行して動作確認を実施します。
`logger "test"`
`tail /var/log/messages`

messagesに"**test**"が出力されていれば初期動作確認は完了です。
あとは適宜環境に合わせてカスタマイズしてください。