はじめに
Cisco機器のログをCentOS8に同期させる方法を紹介します。rsyslogの設定ファイルの編集、firewallの許可設定、Cisco機器の設定がありますが、1つ1つは大変な作業ではありません。Cisco機器のログが実際にサーバーに書き込まれるまで見ていきたいと思います。
環境設定
今回は以下のような環境を構築したいと思います。
構成図
※Zabbixでログを取得する検証を行ったので、今回はその検証環境を例に、ログの同期の方法をご紹介しします。今回の記事ではZabbixの機能は全く関係ありません。Zabbixに興味がある方は、是非他の記事をどうぞ。 Zabbixの記事一覧→ https://www.ricecake24book.com/category/zabbix/
機器情報
【Zabbix01】OSはCentOS8。繰り返しになりますが、Zabbixはログ同期に必須ではありません。
【PC01】Zabbix01をVMware上で構築しているホストOS。OSはWindows10。
【rt01】監視対象のルーター。機器はCiscoのCisco1921/K9 。
【sw01】監視対象のスイッチ。機器はCiscoのCatalyst2960。
【sw02】監視対象のスイッチ。機器はCiscoのCatalyst2960。
設定手順
以下の手順は、上記の環境でICMP(ping)で疎通ができていることを想定しています。上記環境を作る手順については、別で紹介しています。
rsyslogの設定
まず、rsyslogの設定方法から紹介していきます。
rsyslogの設定はrsyslog.confを編集します。
1 |
[root@localhost ~]# vi /etc/rsyslog.conf |
編集する箇所は2点です。
まず、以下が初期設定ではコメントアウトされているので、コメントアウトを消去します。
1 2 3 4 5 |
module(load="imudp") # needs to be done just once input(type="imudp" port="514") module(load="imtcp") # needs to be done just once input(type="imtcp" port="514") |
次に以下の内容を追記します。ログサーバーがログを同期した際にログを格納する場所を、以下のように設定します。
1 2 3 4 5 6 7 8 9 10 |
#### RULES #### # RULES1 rt01のIPとログの格納先を指定。 :fromhost-ip, isequal, "192.168.68.51" -/var/log/zabbix_logtest/rt01 # RULES2 sw01のIPとログの格納先を指定。 :fromhost-ip, isequal, "192.168.60.10" -/var/log/zabbix_logtest/sw01 # RULES1 sw02のIPとログの格納先を指定。 :fromhost-ip, isequal, "192.168.60.20" -/var/log/zabbix_logtest/sw02 |
今回はZabbix用のログ監視なので、上記のようなファイル作成しています。
今回の指定するログの格納先はデフォルトでは存在しないディレクトリなので、必要に応じて作成します。なお、ログファイル自体は自動で作成されます。
1 |
[root@localhost log]# mkdir /var/log/zabbix_logtest |
firewallの設定
次にCentOSのfirewallの設定をします。デフォルトではudp(514)は許可されていないので、許可します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
[root@localhost~]# firewall-cmd --permanent --zone=public --add-service=syslog success [root@localhost~]# firewall-cmd --reload success [root@localhost~]# firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: cockpit dhcpv6-client ssh syslog syslog-tls ports: 10051/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: |
「firewall-cmd –list-all」コマンドを実行した時に、「services: cockpit dhcpv6-client ssh syslog syslog-tls」という表示が出てきています。syslogが許可されています。
SELinuxの設定確認
たまにSELinuxが原因でうまくいかないこともあるので、確認しておきます。
1 2 3 4 5 |
root@localhost~]# semanage port -l |grep syslog syslog_tls_port_t tcp 6514, 10514 syslog_tls_port_t udp 6514, 10514 syslogd_port_t tcp 601, 20514 syslogd_port_t udp 514, 601, 20514 |
udp(514)は許可されているようなので、問題なさそうです。
rsyslog.serviceを起動する
ログを同期するために必要な設定が最低限できたので、rsyslogを起動させます。
1 2 3 4 5 6 7 8 9 10 11 12 |
[root@localhost log]# systemctl start rsyslog.service [root@localhost log]# systemctl status rsyslog.service ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-09-29 22:10:10 JST; 13h ago Docs: man:rsyslogd(8) https://www.rsyslog.com/doc/ Main PID: 1235 (rsyslogd) Tasks: 9 (limit: 11332) Memory: 2.6M CGroup: /system.slice/rsyslog.service mq1235 /usr/sbin/rsyslogd -n |
Active: active (running)となっているので、rsyslog.serviceが起動しました。
Cisco機器の設定
Cisco側の設定はあまり多くないです。ログ同期について調べると「logging on」というコマンドを実行していないこともありますが、私が検証した時にはlogging onを実行したらうまくいったので、掲載しておきます。
rt01の設定
1 2 3 4 |
rt01#configure terminal rt01(config)#logging 192.168.68.250 rt01(config)#logging trap 6 rt01#copy running-config startup-config |
sw01の設定
1 2 3 4 |
sw02#configure terminal sw02(config)#logging 192.168.68.250 sw02(config)#logging trap 6 sw02#copy running-config startup-config |
sw02の設定
1 2 3 4 |
sw01#configure terminal sw01(config)#logging 192.168.68.250 sw01(config)#logging trap 6 sw01#copy running-config startup-config |
これで必要な設定は終わりです。
ログを発生させてみる
実際にログを発生させて、ログが発生しているか見てみたいと思います。
今回はsw01とsw02の23番ポートをshutdownさせます。
1 2 |
sw02(config)#interface fastEthernet 0/23 sw02(config-if)#shutdown |
ログが発生しているかを見ます。
Cisco側のログを見る場合、以下のコマンドを実行します。
1 |
sw02#show logging |
CentOS側で見る場合、以下のコマンドを実行します。
1 |
[root@localhost ~]# tail /var/log/zabbix_testlog_sw02 |
両方で同じログが見ることが出来ていれば、同期成功です!
その他(補足)
上記の手順でできない場合は、再起動や設定を消して再度実行するなどやってみると、解決することがあります。個々の環境で様々ですが、参考程度に試してみてください。
ログ転送設定の後の話
ログ転送設定が完了すると、当然指定したログファイルにログが追加され続けます。このまま放っておくと、ファイルの容量がじわじわと増え続けます。ディスクの容量を圧迫するほど膨大になることはなくても、ファイル容量が大きくなりすぎると開くだけでも時間がかかるようになります。
ログローテーションさせよう!
過去のログをすぐに消してしまうのは困るけど、ある程度の期間が経過したら削除したい。そんな時はログローテーション設定をして、過去のログを適切に管理しましょう。以下の記事で実際に設定した際の記録を紹介しているので、参考にしてみてください!