Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2010-06-19 [長年日記]
_ [玄箱][Debian] ブロードバンドルーターから rsyslog に、ログを記録させる。
最近のブロードバンドルータには syslog 転送機能が付いています。が、ブロードバンドルータ自体にはストレージデバイスがついているわけじゃないので、長期間のログは保存できません。
そこで、Debian GNU/Linux Lenny (armel版) が入っている玄箱に、ログを転送することにしました。
Debian GNU/Linux Lenny になってから、syslog が rsyslog に変わりました。この rsyslog は syslog に比べて優れている点があります。
今回は、/etc/rsyslog.conf において下記の部分をコメントを外し rootないしはsudoを利用して、/etc/init.d/rsyslog restartとすれば他の所からログを受け付けるようになります。忘れやすいのは、ファイヤウォール(iptables など)で該当する udp/tcp 514 ポートを開けることです。
# provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 # provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514もちろん、ガチガチにしたいなら、iptables で 特定のPCからしかログを受け付けないようにしておくのが良いでしょう。同じ LAN の信用できる相手なら、そこまではいらないかも。まあ、あなたの所のセキュリティポリシー次第です。
_ [玄箱][Debian] rsyslog-mysql
別のマシンでは、posgresql 8.4 を動かしているので、玄箱では mysql 5.1.44 を入れてみた。ちょうど、エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド(奥野 幹也) も手元にきたことだし。
rsyslog-mysql パッケージをインストールすると、debconfで設定を聞いてくれて、/etc/rsyslog.d/mysql.confを作成され、データベースが作成されてmysqlにログが記録される。Debianめちゃ便利やん。
text のログじゃなくて detabase にログを入れて何するねんってのは、またそのうちに。管理せんで済むならそれに超したことないけど、記録に残せというなら記録を出すための準備がいりますわな。
mysql> show tables; +------------------------+ | Tables_in_Syslog | +------------------------+ | SystemEvents | | SystemEventsProperties | +------------------------+ 2 rows in set (0.01 sec)
mysql> show TABLE STATUS; +------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ | SystemEvents | MyISAM | 10 | Dynamic | 249 | 140 | 34860 | 281474976710655 | 5120 | 0 | 250 | 2010-06-19 01:39:14 | 2010-06-19 23:40:00 | NULL | latin1_swedish_ci | NULL | | | | SystemEventsProperties | MyISAM | 10 | Dynamic | 0 | 0 | 0 | 281474976710655 | 1024 | 0 | 1 | 2010-06-19 01:39:14 | 2010-06-19 01:39:14 | NULL | latin1_swedish_ci | NULL | | | +------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+ 2 rows in set (0.00 sec)InnoDBじゃなくてMyISAMになっているな。こっちの方が割り切っている分早いので、これでいいのか。
mysql> select * from SystemEvents limit 3; +----+------------+---------------------+---------------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+--------------+--------------+-----------------+----------+ | ID | CustomerID | ReceivedAt | DeviceReportedTime | Facility | Priority | FromHost | Message | NTSeverity | Importance | EventSource | EventUser | EventCategory | EventID | EventBinaryData | MaxAvailable | CurrUsage | MinUsage | MaxUsage | InfoUnitID | SysLogTag | EventLogType | GenericFileName | SystemID | +----+------------+---------------------+---------------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+--------------+--------------+-----------------+----------+ | 1 | NULL | 2010-06-18 09:39:16 | 2010-06-18 09:39:16 | 0 | 6 | debian | imklog 3.18.6, log source = /proc/kmsg started. | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | kernel: | NULL | NULL | NULL | | 2 | NULL | 2010-06-18 09:39:16 | 2010-06-18 09:39:16 | 5 | 6 | debian | [origin software="rsyslogd" swVersion="3.18.6" x-pid="1209" x-info="http://www.rsyslog.com"] restart | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | rsyslogd: | NULL | NULL | NULL | | 3 | NULL | 2010-06-18 09:39:24 | 2010-06-18 09:39:24 | 3 | 5 | debian | kernel time sync status change 4001 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 1 | ntpd[21510]: | NULL | NULL | NULL | +----+------------+---------------------+---------------------+----------+----------+----------+-------------------------------------------------------------------------------------------------------+------------+------------+-------------+-----------+---------------+---------+-----------------+--------------+-----------+----------+----------+------------+--------------+--------------+-----------------+----------+ 3 rows in set (0.00 sec)