isLandcenter 非番中

ブログトップ | ログイン

isLandcener.jp 非番中

2021/1/1 islandcenter.jp

インディペンデントコントラクター(IC)としてIT関連の仕事をしています。

このブログサイトは、私の仕事上のお付き合いがある方々をご支援するために開設しました。

どうせ技術的なメールを書いても、山のようなメールに埋もれてしまいます。HTML メールを読まない(私も使わない)し、ワープロ文書にしてもあまり整理つきませんし、リンク先や画像のスナップショットをお見せできる手段として良い方法はないものかなぁと思っていました。

せっかく作った自分の情報の山なので、思い切って公開しちゃえ、と思い、独立を機会に問題ない範囲で公開を始めました。公開するのは良いことで、仕事先でも電車の中でも、「あの手順何だっけ?」を確認できるのはいいものです。

-お仕事しませんか-

皆さまといい関係のお仕事を探しています。

私の公式ウェブサイトはこちらです。


詳細はウェブサイトでご確認ください。

--
このブログのトラックバックとコメントは承認制です。トラックバックスパムが多いので、トラックバックは受け付けていません。

 大手企業に対する批判に対して個人が名誉毀損で訴えられるケースがあります。いきなりこういう態度をとられてもこちらとしてはなすすべがありません。ブログの内容に不審な点、不愉快な表現がありましたら、まずはご連絡ください。適切に処理します。また製品担当者からのお励まし、ご意見などありましたら感謝します。

--
このブログを読んで、直接ご感想や、ご質問があれば、コメント欄にメールアドレスとコメントを書いて「非公開」チェックしていただければ私だけ皆さまのメールアドレスをチェックできます。のちほど非公開のメールアドレスからお返事します。

なお kenn*islandcenter.jp(@に置き換えてください)にメールを送っていただいても結構ですが、メールはジャンク処理していますので、必ず、サブジェクトにわかりやすいタイトルを書いてください。フリーメールやサブジェクトが空欄の場合、まず読まれることはないので、ご承知ください。詳細はウェブサイトをご参考ください。

My Home Web Site

Meil Form


- 2019/6/6 -
この6月から、広告を付けてみました。

見づらくなった。広告ウザい。などアンチのご意見もあるでしょう。コメントください。

このブログの価値を具体的な金額にするとどんなものか、書き手としてのモチベーションに繋がるだろうと思い試してみました。

一応、こちらを見る限り、アフリエイトは問題ないようです。

エキサイトブログ利用規約改定とライフログカテゴリの拡張について

有料プランの概要・支払い方法

PR- うちの大家さんもよろしく -PR




--
気が向いた時にしかコメントできなくて申し訳ありませんが、ブログの記事に関係なくご意見ご要望があれば、このトピックスにコメントください。

# by islandcenter | 2021-12-31 23:00 | 雑文 | Comments(4)

zabbix5 で SNMP デバイスを監視する方法を説明します。 SNMP  管理機能がある手頃な機器がないので、ここでは openSUSE Leap 15.2 に snmpd を走らせて、監視対象としています。

Zabbix4 はこちら
Zabbix4.2 snmp監視 デバイスのグラフを表示させるまで

ー openSUSE Leap 15.2 の snmpd 

openSUSE Leap 15.2 ではデフォルトで net-snmp はインストールされています。

SUSE Linux Enterprise(SLE) ではインストールされていないので、YaST か zypper でインストールし、YaST > System > Service Manager より snmpd を Start/Enable にセットします。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15462244.png

ー community String と、送信相手の設定

/etc/snmp/snmpd.conf を編集し、次の行を変更して、送信先コミュニティストリングと、応答先のアドレス範囲を指定します。さらに詳細な設定ができますが、ここでは最小限の説明です。

# rocommunity public 127.0.0.1
rocommunity public 192.168.1.0/24

変更したら systemctl か YaST の Service Manager からリスタートします。

myhost:~ # systemctl restart snmpd

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15470668.png

ー snmp の応答確認

zabbix  サーバーから snmpwalk を使って、応答があるかどうか確認します。指定する OID は System の値 ”.1.3.6.1.2.1.1” あたりが適当でしょう。

# snmpwalk -v 2c -c CommunityString  target_host.Yourdomain .1.3.6.1.2.1.1

zabbix5:~ # snmpwalk -v 2c -c public myhost.i.islandcenter.jp .1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux myhost 5.3.18-lp152.63-default #1 SMP Mon Feb 1 17:31:55 UTC 2021 (98caa86) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4839) 0:00:48.39
SNMPv2-MIB::sysContact.0 = STRING: Sysadmin (root@localhost)
SNMPv2-MIB::sysName.0 = STRING: myhost
SNMPv2-MIB::sysLocation.0 = STRING: Server Room

: 略

ー 監視ホストを zabbix に作成

詳細はマニュアルをご参考下さい。ここでは最低限の説明をしています。あまり役に立たないこのページよりも正しい事が書かれています。

1 CONFIGURING A HOST

snmp でネットワーク内のデバイスオブジェクトを作成し、snmpwalk で応答があった Linux デバイスの snmp 監視ターゲットを作成します。

左のメニューから Configuration > Hosts > 右上の "Create Host"

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15475378.png

Hostname : myhost
Group : Select > "Type of host" ここでは Linux Server
Interface > "Add"

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15482879.png


Interface > "snmp"
IP か DNS 名をセット(DNS名を使う時は”Connect to” を DNS に)ポートは 151  そのまま。
SNMP version は、デフォルトで v2、コミュニティストリングは、public なら、そのまま、必要に応じて変更

最後に "Add"

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15485173.png

ここで"public"以外の、コミュニティストリングをネットワーク全体で使っている場合、 Macros > Inherited and host macros > より 、下の方にある ”{$SNMP_COMMUNITY}” を Change して、別なコミュニティストリングに変更します。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15492639.png

テンプレートを指定します。

Hosts > MyHost > Template > Select > 一番近いテンプレートを選択:ここでは ”Linux SNMP” を選択します。

”Update” で登録更新します。

※複数のテンプレートが選べますが、AND 条件でダブるとエラーになります。例えば Linux SNMP と Generic SNMP は同居できません。

※テンプレートは Zabbix Share https://share.zabbix.com/ に豊富にありますが、一発では動かない事が多いです。

Zabbix をアップデートした場合は、旧バージョンのテンプレートが引き継がれるため、テンプレートの選択はかなりややこしくなります。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15501248.png

登録して Configuration > Hosts のリストの中に、登録したホストが出てきて、数分以内に右の Availability が「緑 SNMP」 になれば、とりあえずオーケーですが、グラフの描画が始まりません。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15514575.png

グラフを見るには

Monitoring > Latest data より、Host Group > Select , Host > Select,  Application > 監視するアイテム、ここでは CPU を選んでいます。試しに CPU Utilization にチェックを付けて”Display Graph” を押します。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15522271.png

CPU使用率のグラフが確認できました。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15525666.png

ー 監視アプリケーションの有効化

とりあえず CPU 負荷はすぐグラフ化できましたが、他の情報を見るには Application を Enable にする必要があるようです。
Configuration > Hosts > "Myhost" を選び "Applications" のリンクを押して、全ての "Applications" を Check して Enable ボタンを押します。

同様の操作を "Items" についても行います。

zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15532745.png

開始してから、最低 3600 秒、一時間待ちます。しばらく放置した後

Monitoring > Latest data > Host > Application : interface

でトラフィック送受信のグラフが描画されました。
zabbix 5.2  openSUSE Leap 15.2 SNMP でデバイス監視_a0056607_15540433.png

ー まとめ

Zabbix で SNMP 監視ルータやスイッチの死活・トラフィック監視がは、見えない物を見える化する事です。

とりあえず、Linux Host を対象に zabbix から最低限のリソース管理ができました。SNMP 監視は設定方法に当たり外れが多いようです。まずは最低限、見たいことが見れればラッキーかもしれません。グラフの描画が始まらないのは焦りますが、とにかく一時間以上待って変化がないかチェックします。

まずはデフォルトでは3600 秒 、一時間ごとに SNMP でデバイスの値をディスカバリーるようなので、焦ってはいけないという事です。

テンプレートをとっかえひっかえしている内にグラフが描画される場合もあります。Applicatin を Enable すると動く場合もありました。何をどうすれば、SNMP での監視タスクを作れるかの最適解はまだ見つけていません。

Zabbix の難点ですが、マイナーなバージョン変更でもUIが変わったり、テンプレートが追加されてしまい、過去の経験とは違う手順を踏まなければならない事があります。バージョンアップする場合は、書籍の情報や、素人っぽい私のブログの様を参考せず、そのバージョンのオフィシャルドキュメントを見ておく事です。バージョンによって大きく手順が違う場合があります。

あわせて読みたい

Zabbix 5.2 on openSUSE Leap 15.2 インストール

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定






# by islandcenter | 2021-03-01 16:01 | Linux | Comments(0)

Zabbix 5.2 on openSUSE Leap 15.2 Install

openSUSE Leap 15 の良い所は、有償版 SUSE Linux Enterprise 15 (SLE15) と、バイナリレベルの互換性があり、openSUSE Leap 15 から SLE へのアップデートが保証されている、という点です。SLE から openSUSE へ乗り換えても、ほとんど操作に違和感がなく、スムーズに移行できます。

openSUSE Leap は RHEL --> CentOS の様な、ソースレベルの互換性、クローンではありません。有償版 SLE のサブスクリプション購入の前に、openSUSE Leap で、とりあえず検証、トレーニングを行ってから、SLEに移行するというパスが用意されています。

ー zabbix

zabbix はヨーロッパ・ラトビア生まれのオープンソースライセンスのネットワーク管理ツールです。エージェントを使ったサーバーの負荷やリソース管理、SNMP を使ったルータやスイッチのトラフィック監視、Ping などサービスの死活監視など、広い用途でネットワークを監視できます。この種のソフトウェアとしては急速に利用者が増えており、キラーアプリケーション化して育ったプロダクトです。

何よりUIがブラウザという事で、操作に必要なプラットフォームを選びません。サーバーは主要なディストリビューションを網羅しています。

という事で、openSUSE Leap 15.2 に SLE 15 用の zabbix 5.2をインストールする手順を検証してみました。

zabbix5.2 をインストールする前の、openSUSE Leap 15,2 のインストール、Web LAMP のインストールは、次の記事、動画を参考にしてください。

ー Install openSUSE Leap 15.2

openSUSE Leap 15.2 のインストールは次の記事、動画を参考にしてください。

openSUSE Leap 15.2 Install First Look.(インストール)
https://www.youtube.com/watch?v=TvzrveD5lys (動画、音出ます)

※ /var は異なる仮想ディスク、別パーティションにしています。/var/lib/mysql/zabbixdb に zabbix データベースが作られます。/ パーティションは BtrFS 16Gb 以上、/var は別な仮想ディスクとして XFS フォーマット、10Gb 程度あれば、規模にもよりますがとりあえず充分でしょう。

ー Install Web LAMP on openSUSE Leap 15.2

openSUSE Leap がインストールできたら、Web LAMP 環境を導入します。大体の手順は次の動画を参考にしてください。

openSUSE Leap 15.2 Web LAMP install with YaST(動画、音出ます)

それでは zabbix5 をインストールします。

ー mariadb  の有効化

まずは、mariadb をスタートさせ、起動を有効化します。

 YaST > System > Service Manager から mariadb Start/Enable します。もしくは systemctl で起動します。

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13190152.png


ー Download and install Zabbix

https://www.zabbix.com を開いて右上の DOWNLOAD リンクを開きます。 

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13202641.png

バージョン > Distribution(SLES) > Version(15) > DBタイプ(MySQL) > Web Server(Apache) の順でクリックするか、ここでは次の URL を開きます。


Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13210736.png

このページに、必要なコマンドラインのサジェスチョンが記載されているので、順に実行します。

ー リポジトリの登録

rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/5.2/sles/15/x86_64/zabbix-release-5.2-1.sles15.noarch.rpm
zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'

YaST で確認します。

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13220703.png

次の操作は openSUSE Leap では不要です。

# SUSEConnect -p sle-module-web-scripting/15/x86_64

― パッケージのインストール

zypper か YaST を使って次のパッケージをインストールします。

zabbix-server-mysql
zabbix-web-mysql
zabbix-apache-conf
zabbix-agent
zabbix-web-japanese (<- 日本語化する場合必要)

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13224643.png


ー MySQL の開始/設定

事前に決定しておく事。ここでは次のユーザ名、パスワード、データベース名を使います。適時おき替えてください。

mysql の root パスワード : mysqlpwd
Zabbix Database 名: zabbixdb
Zabbix Database ユーザ/パスワード: zabbix/zdbpwd 

ー mysql の DB 作成

mysql -uroot -p
mysqlpwd
mysql> create database zabbixdb character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'zdbpwd';
mysql> grant all privileges on zabbixdb.* to zabbix@localhost;
mysql> show databases;
mysql> quit;

ー スキーマ拡張

zcat /usr/share/doc/packages/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbixdb
Enter password: zdbpwd

5分待ちます。

ー zabbix_server.conf の書き換え

zabbix_server.conf の次の三か所を必要に応じて書き換えます。

gedit /etc/zabbix/zabbix_server.conf &

DBUser=zabbix
DBName=zabbixdb
DBPassword=zdbpwd

ー restart zabbix_server

YaST か systectl コマンドで zabbix_server/agent, apache2 を onboot  start/enable にします。

systemctrl restart zabbix_server zabbix_agent apache2
systemctrl enable zabbix_server zabbix_agent

yast > System > Service Manager

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13232630.png

ー フロントエンドの起動、セットアップ


言語の選択 > とりあえず英語のまま次へ

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13250432.png

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13253426.png

データベースへ接続

Database name: zabbixdb
user: zabbix
password: zbxpwd

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_14225710.png

Server Detail : 特に変更なくNext

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13262909.png


Default Time Zone : UTC+9 Asia/Tokyo

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13271759.png


Summary

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13273531.png

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13281075.png

WebUI ログイン

Login:
Admin/zabbix (デフォルト初期値です case sensitive 大文字小文字注意)

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13283014.png


Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13284376.png

フロントエンドのセットアップが終わると、ダッシュボードが起動します。ダッシュボードの時計がローカルタイムになっている事を確認してください。

Monitering > Hosts > Zabbix Server が(ZBX 緑)になっていれば、サーバー/エージェント共に稼働中です。

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13290074.png

グラフも出てきました。

Zabbix 5.2 on openSUSE Leap 15.2 Install_a0056607_13291878.png

ー ポイント(忘れがちなこと)

・データベース名、DBユーザ名、パスワードは事前に決めておく事です。ダウンロードページの指示通りでも構いませんが、デフォルト password じゃいかにもですからね。大抵、何らかのエラーが起こるとすれば、この三つの設定がおかしい。
・Web LAMP のインストール手順が、サジェスチョンに含まれていないので、事前にインストールして mariadb を起動しておく事。
・WebUI へのログインは Admin/zabbix です。ケースセンシティブ、大文字小文字注意です。クラウド運用する時は早めに変更しておく事。
・ UI のURLは、http://ip-address/zabbix です。/index.html を書き換えて、リダイレクトすると良いでしょう。

ー まとめ

openSUSE Leap 15.2 で zabbix5.2 をインストールしてみました。公式サポートは SUSE Linux Enterprise 15 ですが、インストール自体は幾つかの間違えやすい点に注意すれば、特にストレスなく行えます。

CentOS8 の将来性に不安があるのなら、無償でオープンフリーの openSUSE Leap は、SLE の信頼性を引き継いでおり、rpm に慣れていて Debian/Ubuntu 系はちょっと、というシステム管理者にとっては一つの代替手段になります。

大規模なデータセンターでもなく、数十台のサーバー、スイッチなどのデバイスを管理したい中小規模のネットワークなら openSUSE Leap + zabbix の組み合わせは一つの良い選択になります。既に仮想環境が用意できているのなら、Zabbix5 は是非試して欲しいネットワーク管理ツールです。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定

zabbix4.2 を zabbix5.0 アップデート







# by islandcenter | 2021-02-25 13:48 | SUSE | Comments(0)

openSUSE Leap 15.2 で virt-managerからVMをスタートさせようとすると

error: internal error: Failed to start QEMU binary /usr/bin/qemu-system-x86_64 for probing:
qemu-system-x86_64: cannot create PID file: Failed to write pid file

となるので一旦VMを削除して残した VM のイメージから新しいVMを作ろうとすると

error host does not support any virtualization options

と怒られてしまった。

pid ファイルは   /run/libvirt/qemu/ にあります。

原因はディスク容量の不足でした。

opensuse152:~ # df -h /var
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda9       493G  493G     0 100% /var
opensuse152:~ #

あ”....

不要なvmイメージファイルを削除して問題を解決できた。


/var はルートと異なる xfs パーティション化しています。SUSE 15(openSUSE Leap/SLES) ではデフォルト では BTrFS です。 

BTrFS では、パーティションの空き容量を正確に把握できないため、 私はKVM の運用をする際は /var は別パーティションとして XFS などのフォーマット形式にすることをお勧めします。

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認

# by islandcenter | 2021-02-07 08:43 | Comments(0)

ー似て非なる openSUSE、Leap と Tunbleweed

openSUSE Tunmleweed をインストールしてみたので、openSUSE とは何だ? から openSUSE Leap と Tunbleweed の違いに付いて考えてみました。

openSUSE Tumbleweed を試してみた。Leap とどう違う?_a0056607_11380863.png


まず、openSUSE Tumbleweed を KVM 環境にインストールしてみました。 20210115 Build です。6分ちょっとの動画です。音出ます。

openSUSE Tumbleweed 20210115 Install インストール


ー openSUSE Leap

Leap は「跳躍」の意味です。openSUSE のウェブページでは

Portal:15.2

"また openSUSE Leap 15.2 では、 SUSE Linux Enterprise (SLE) 15 Service Pack (SP) 2 をベースとして構築された、多数のコミュニティパッケージが提供されています。このような共有型の構造は Leap 42.1 (SLE 12 SP1 ベース) から行なわれているものです。"

と紹介されています。基本的に有償版 SUSE Enterprise から構築された、SUSE のディストリビューションの一つです。私は無意識に "openSUSE" と言った場合は、Leap を示しています。

ーopenSUSE Tumbleweed

Tumbleweed は「転がり草」の意味です。良くハリウッドの「荒野のヒチニン」のような西部劇なんかで荒地を転がる草や枝の塊のアレの意味です。

Welcome to the Tumbleweed Portal

"Tumbleweed ディストリビューションとは、純粋な openSUSE の ローリングリリース版 で、特定のリリース間隔によらずに最新の安定版を提供する仕組みです。このプロジェクトは、ユーザに対して最新のソフトウエアを安定して届けるための活動を行なっています。
Tumbleweed は Factory と呼ばれる、 openSUSE のメイン開発コードベースを利用して作られています。 Tumbleweed は Factory 内にある最新のソフトウエアが統合され、安定化されてテストが完了した時点で更新されます。そのため、 Tumbleweed には最新の安定版ソフトウエアが日々配信され続けることになります。"

Tumbleweed の名前の通り、openSUSE Tumbleweed は「転がり草」のようなローリングリリースのバージョンで、同じ openSUSE とは言っても、Leap とは全く生まれも育ちも違うものだと考えて良いでしょう。実際にポータルに書かれてある様に、カーネルやドライバによっては「今日動いたものは明日も動く可能性がない」とあり、プロプラエタリなデバイスドライバが動かないケースはかなりあるようです。
SLE をベースとした openSUSE Leap と違い、openSUSE Tumbleweed は Factory 版をベースとしています。

Portal:Factory

"Factory 内のパッケージは常に流動的で、バージョンや機能の固定化は行なわれません。それはつまり、 Factory 内にあるリポジトリは、安定していない場合があることを意味します。ディストリビューションの中枢をなすシステムパッケージに対しては、 openQA による自動テストが実施されます。この自動テストが正常に終了し、各種パッケージの構築処理が落ち着くと、リポジトリはダウンロードミラーに対して同期化を行なます。これはおおよそ、1週間あたり1回程度発生します。"

実際、openSUSE Tumbleweed を使った感想から、Leap と違って YaST の機能が制限されていたり(デフォルトで一部機能がインストールされていない)などの違いがあり、「基本の SUSE」らしさを感じる、悪く言うと「出来上がっていない荒っぽい」ディストリビューションであるという印象を受けました。openSUSE Tumbleweed は引き続き SUSE Linux Enterprise(SLE) の開発に引き継がれ、そこからオープン化されたものが openSUSE Leap になります。

SUSE Linux Enterprise の Basic インストールのような感じでしょうか、ここからシステムを YaST で使えるように仕立ててビルドするのは、かなり面倒くさい、と感じました。インストーラ自体の印象、流れは Leap とは変わりませんが、Linux のディストリビューションってインストーラが決めるものだと感じさせられるものです。カーネルも、アプリケーションも、全部元を正せば同じルーツなんですね。ディストリビューションはインストーラが色を付ける訳です。インストーラの機能は Linux ディストリビューションにとっては「顔と一緒」で、初めてディストリビューションに触れるヒトにとっては、とてもインパクトが大きなものなのです。その点では openSUSE Leap と Tiubleweed に大きな印象差はありませんが、内部の動きやパッケージ全体の構成はかなり違ったものになるでしょう。

SUSE Linux Enterprise のインストールはこちら

SUSE Linux Enterprise 15 (SLES15) のインストール




--

今回、はじめは openSUSE Leap 15.2 上の KVM 上で Tumbleweed をインストールしてみたのですが、何故か挙動不審で、 SLES15 の上で動かすとうまく一発インストールできました。要注意です。やっぱり SUSE を業務用で選ぶなら、徹底的にテストされた SUSE Linux Enterprise だなと思ったシーンです。

openSUSE を「使ってみたい」と「試してみたい」の間には微妙な温度差があります。openSUSE を「使ってみたい」場合は Leap を断然お勧めします。

openSUSE を「試してみたい」のであれば、Tumbleweed を選ぶことです。 Linux ユーザには様々なタイプがあり、実用的で安定性を求めるなら、やっぱり SUSE Linux Enterprise、手軽に安く安定している Leap、常に最新のパッケージにチャレンジするなら Tumbleweed という選択肢があります。

また openSUSE Leap を入れて、最新のパッケージにチャレンジしたい場合は software.ope.suse.org から、最新の Tumbleweed 向けのパッケージを入れて「試してみる」のもいい方法でしょう。




# by islandcenter | 2021-01-26 11:48 | Comments(0)

openSUSE 15.3 (alpha) が公開

ー CentOS に何がおこった?

CentOS Linux is dead—and Red Hat says Stream is “not a replacement”

CentOS8 は終わり CentOS Stream になると報じられ、CentOS Stream に危機感を感じている ユーザやデベロッパーも多いのでしょう。CentOS は RedHat から、「後出しジャンケン」で RHEL のソースコードから、ある意味「うまい汁」を吸って利用者を惹きつけてきたわけで、資金提供をはじめたレッドハットにすれば「CentOS は RedHat にとって一円の利益ももたらさない」と言われてしまうのも、まぁありえる話でしょうか。

CentOS8 が、「CentOS Stream」 として、Fedora に次ぐ RedHat のパイロットプロジェクトとして人身御供化されることになる決定に恐々としているユーザ、デベロッパーが多いわけですね。

ー SLE と密着する openSUSE Leap 15.3 alpha が登場

昨年末 openSUSE Leap15.3 のアルファリリースが公開されました。openSUSE は、本家 SUSE Enterprise Linux (SLE) の先導プロジェクトの様に言われる事が多いのですが、SUSE15 以降、openSUSE tumbleweed がパイロットプロジェクトに位置し、openSUSE Leap は SLE ベースの、言わば SLE の「後出しジャンケン」の位置になりました。

私は SLES からこの世界に入ったので、openSUSE はちょっと手を出し辛かったンですが、 SLE のコミュニティ版とも言える openSUSE Leap 15 からは、SLE と共通部分が多く、実に使いやすく安定したディストリビューションになりました。

安心して中小規模の軽サーバー運用にも耐えられます。

Alpha Releases of openSUSE Leap 15.3 are Available for Testing

「openSUSE Leap 15.3 Alpha」が登場,CentOSユーザにもアピールへ

Portal:Leap

ー openSUSE Leap 15.3 (alpha) の何が変わる?

今回はインストールだけしたので、中身がどう変わったのかについては触れません。インストーラで一番目に付いたのは、デフォルトパーティションのプロポーザルです。中身の改良は大いに歓迎。だけど変わらない事を好む利用者もいるということです。

インストールデバイスの全てのパーティションを / (ルート) BtrFS で提案してきました。仮想化運用の低負荷サーバーならこれでもいいかも知れません。

openSUSE 15.3 (alpha) が公開_a0056607_14372335.png

今回は KVM を使うならという前提でインストールのストーリーを作ってみました。/var だけ別パーティションにしています。

実際のインストールは簡単に動画にまとめました。(盛大に音出ます)

openSUSE Leap 15.3 alpha Install & First Look インストール




ー インストール直後にもたつく動きがある

一点、気になったのは、インストール直後の最初のログインで、YaST の挙動と言うか、レスポンスに問題がありました。YaST のソフトウェア管理、リポジトリ管理のアプレットがなかなか起動しない。デバッグコードの為か、たぶんバックグラウンドで何かの最終処理をしているのでしょうか、たぶん。インストール後、最初の起動からもう一度再起動すると治りました。

ー ますます密着する openSUSE Leap と SLE

どうも、openSUSE Leap は SUSE Linux Enterprise (SLE) とのバイナリ互換と密接性を求めて行くようです。オープン・フリーな openSUSE Leap に SLE の堅牢さが加わる事で、言わば "SLE の CentOS" になろうとしているようです。

ただ、RHEL クローンだった CentOS ユーザが、系列の異なる openSUSE Leap に靡くかと言えば難しいでしょう。RHEL クローンは他に沢山あるし、 CentOS ユーザがそちらに大挙移行するケースがありそうです。いずれにせよ openSUSE Leap が他のディストリビューションと差別化された高い信頼性や使い勝手を身に着けた方向性に進む事を歓迎しています。






# by islandcenter | 2021-01-08 14:42 | Comments(0)

SUSE15(SLE15x/openSUSE Leap15x) で NTP タイムサーバーを稼働させます。

知らなかったで済まされなかったンですが、いろいろ言い訳はありますよ。古い SLES11 を NTP サーバーとしていたので気にならなかったのですが、openSUSE Leap 15.2 に変えてからどうもNTPサーバーがおかしい。ってか全然機能していない。

よく見たらフレッシュにインストールした openSUSE Leap 15.2 って ntpd のサービスが YaST Service Manager にないんです!こりゃおかしいと思って調べてみました。

SUSE 15(SLE15/openSUSE15)では、ntpd ってなくなっていたんですね。その代わりに chrony というパッケージに置き換わっていました。


という事で、 SUSE Linux 15 (SLE15/openSUSE Leap 15) で NTP サーバー chronyd を動かしてみました。

31 Time Synchronization with NTP

chronyc(1) Manual Page

ー chrony パッケージ

chrony パッケージは、デフォルトで SLE/openSUSE 15x のインストーラがインストールしてクライアントとして機能します。別途インストールする必要はないのですが、なければ 1 クリックインストールします。こちら

chrony System Clock Synchronization Client and Server

SUSE15(SLE15x/openSUSE Leap15x) で NTP タイムサーバー_a0056607_12343156.png


ー /etc/chrony.conf の書き換え

デフォルトでは chronyd はクライアントとして動作します。 YaST > Network Services > NTP Configuration で」タイムソースを指定すると、 /etc/chrony.conf ファイルは YaST により更新されます。

YaST で更新されない部分が allow の行です。ここはコメントアウトされているので、自身がタイムソースとなる場合、提供する相手の IP アドレスを次の様に指定します。

chrony.conf を書き換えたら、chronyd を YaST > System > Service Manager か systemctl コマンドで再起動します。

suse15:~ # cat /etc/chrony.conf | grep llow

# Allow the system clock to be stepped in the first three updates
# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 192.168.1.0/24
suse15:~ # systemctl restart chronyd
suse15:~ # systemctl status chronyd
● chronyd.service - NTP client/server 

: 以下略

SUSE の場合、YaST > Network Services > NTP Configuration から、タイムソースを追加して、TEST ボタンを押すと、NTP ソースとして機能しているかをテストすることができます。

SUSE15(SLE15x/openSUSE Leap15x) で NTP タイムサーバー_a0056607_12345406.png

どうやら動いているようです。

ちなみにタイムソースを設定する場合、デフォルトで "Quick Initial Sync" にチェックがはいっており、iburst オプションが有効になります。

SLES 15 は SLES12 よりアップデートしたものなので、ntpd が残っていたのですが、YaST > Software Maanagement から削除してしまいました。

ー slew モードと step モード

chrony のデフォルトは step モードです。デフォルトで、タイムソースとの一秒以上の時刻ズレを3回以上検出すると、一挙に時刻合わせを行います。時刻のズレが大きいとアプリケーションによっては深刻な誤動作(時刻戻りによる)が発生する場合があるので、slew モード(徐々寄せモード)にするのが良いでしょう。ただし slew モードは時刻ズレが大きいと同期に時間がかかります。時刻ズレがあまり影響ない場合はデフォルトの Step モードでも構いません。

# makestep 1.0 3 # Comment Out
leapsecmode slew # <--- Add Line

デフォルトではポーリング間隔(Polling interval) minpoll 64sec / maxpoll 1024sec です。詳細はマニュアルでご確認ください。

chrony.conf(5) Manual Page


isLandcenter.jp





# by islandcenter | 2021-01-08 12:38 | SUSE | Comments(0)

- zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視する。snmp Agent, zabbix Agent の設定 -

ここでは、SUSE Linux Enterprise 15 (SLE15) と openSUSE Leap 15 を対象に zabbix 5.2 で監視する snmp と zabbix Agent の設定方法について説明しています。

ー snmpd の設定

YaST か zypper で net-snmp パッケージをインストールします。

# yast

Software > Software Management より "snmp" などでサーチして net-snmp をインストールrします。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13313231.png

/etc/snmp/snmpd.conf の rocommunity の行に、 Community string ここでは "public" とネットワークアドレスを設定します。

opensuse15:~ # cat /etc/snmp/snmpd.conf | grep community
# to enable it uncomment the rwcommunity line and change the community
# rocommunity public 127.0.0.1
rocommunity public 192.168.1.0/24
# rwcommunity mysecret 127.0.0.1
opensuse15:~ #

# yast

System > Services Manager より、snmpd を Start, On boot enable にセットします。もしくは systemctl コマンドで有効化します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13320239.png

systemctrl で行う場合

opensuse15:~ # systemctl start snmpd
opensuse15:~ # systemctl enable snmpd
opensuse15:~ # systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2021-01-03 16:54:32 JST; 2s ago
Main PID: 7541 (snmpd)
Tasks: 1
CGroup: /system.slice/snmpd.service
└─7541 /usr/sbin/snmpd -LS0-6d -f

Jan 03 16:54:34 opensuse15 snmpd[7541]: Connection from UDP: [192.168.1.221]:59884->[192.168.1.3]:161

: 略

opensuse15:~ #


zabbix サーバー側から snmpwalk で string が返ってくるか確認します。

zabbix:~ # snmpwalk -v 2c -c public opensuse15.mydomain.com .1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Linux opensuse15 5.3.18-lp152.19-default #1 SMP Tue Jun 9 20:59:24 UTC 2020 (960cb00) x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (4960) 0:00:49.60
:
: 略
:

ー Community String の変更

WAN 越しにクラウドサービスを監視したい場合や大規模ネットワークの場合、 Community String をデフォルトから変更して運用するケースが多くあると思います。

その場合、Configuration > Hosts > "Your Hostname" > Macros > Inherited host macros を選んで

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_11382838.png

{$SNMP_COMMUNITY} > Change リンク > 「"public" を別なストリングに変更」します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_11385719.png

ー zabbix agent のインストールと設定

次のページから、SUSE Linux Enterprise 15 用のリポジトリを登録するコマンドをコピーして実行します。

Download and install Zabbix

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13323494.png


SUSE Linux Enterprise 15 用のコマンドは次の様に記述されています。

# rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/5.2/sles/15/x86_64/zabbix-release-5.2-1.sles15.noarch.rpm
# zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'

リポジトリの登録ができたら zypper か YaST を使って zabbix agent をインストールします。

# yast

Software > Software Management で "zabbix" でサーチ、zabbix-agent をインストールします。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13325625.png

/etc/zabbix/zabbix_agentd.conf Seerver= , ServerActive= の2行に送信先 zabbix Server のアドレスを記述します。

sles15:~ # cat /etc/zabbix/zabbix_agentd.conf | grep mydomain.com
Server=zabbix.i.mydomain.com
ServerActive=zabbix.i.mydomain.com
sles15:~ #

YaST か systemctl コマンドで zabbix agent を有効化します。

YaST > System > Services Manager で、 Zabbix Agent を Active/Onboot に設定します。

zabbix5 で SUSE Linux15(SLE openSUSE Leap) を監視、snmp Agent, zabbix Agent の設定_a0056607_13331746.png

エラーがないか確認します。

sle15:~ # systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: di>
Active: active (running) since Sun 2021-01-03 17:12:04 JST; 30s ago
Process: 12512 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCC>
Main PID: 12514 (zabbix_agentd)
Tasks: 6
CGroup: /system.slice/zabbix-agent.service
├─12514 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
├─12515 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
├─12516 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
├─12517 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
├─12518 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
└─12519 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Jan 03 17:12:04 opensuse15 systemd[1]: Starting Zabbix Agent...
Jan 03 17:12:04 opensuse15 systemd[1]: Started Zabbix Agent.

後は、サーバー側の設定で zabbix Agent と snmp agent で監視します。

ー まとめ

zabbix と SUSE Linux (SLE/openSUSE Leap) で監視ターゲット側の設定をまとめました。

openSUSE Leap は 15 以降、SUSE Linux Enterprise との互換性が高くなり共通点も多く、デスクトップ用途以外のサーバ用途でも安定しています。I/F をはじめとするルック&フィールも SLE と共通なので、ヘルプデスクやオペレータのトレーニングにも最適です。

openSUSE Leap は使いやすいディストリビューションになりました。中小規模環境でミッションクリティカルな用途以外で zabbix の様な用途で openSUSE Leap を使うのは一つの良い選択です。

ここにない内容は次の記事を参考にしてください。

Zabbix3 でSNMPデバイスを監視する

How to setup zabbix4.2 on openSUSE Leap 15.1 セットアップ

Zabbix4.2 snmp監視 デバイスのグラフを表示させるまで

zabbix4.2 を zabbix5.0 アップデート openSUSE Leap 15.1

Zabbix 5.2 on openSUSE Leap 15.2 





# by islandcenter | 2021-01-04 13:44 | SUSE | Comments(0)

 長い事 SUSE Linux をやっていると、 YaST GUI にあまりにも慣れすぎてしまって、すっかりキーボードをたたく事に億劫になってしまいます。Linux やってるエンジニアがキーボードにこだわるのはわかりますが、私は SUSE Linux 使う上ではマウスにこだわるヒトになってしまいました。

良くテレビドラマやニュースの資料映像なんかで、ブラインドタッチがやたらと早くて、マウスなんて全然つかってないじゃないか、という資料映像みたいなシーンを見ますが、私にはわかる。

「嘘だ、演技だ」

特に「ハケンの品格2」の篠原涼子のキーボード叩く演技は下手だったなぁ。ブラインドタッチになってない。ただ指がキーボードの上を撫ぜてるだけで「スーパー派遣」の品格がなかった。下手なビデオのオフィスシーンの方が演技している場合があるンですよ。

逆にマウスを使いこなしているシーンを見ると「演技っぽくなくリアル」に思えてくるものです。

それくらいいまの時代、マウスは重要です。

まぁ与太はそこまでにして

ー virt-manager GUI で KVM ゲストのライブマイグレーション

というのが今回のテーマです。

随分と昔に XEN 環境+ iSCSI NAS を使ったライブマイグレーションをやた事を思い出します。

iSCSI 上に仮想イメージを導入し、ついでに Live Migration してみる

時は移り変わり、まず XEN は見なくなったし SUSE でも XEN から KVM への移行ガイドを用意するくらい、仮想化と言えばすっかり KVM の時代になってしまいました。

かわいそうな Citrix ....

今回は SUSE Linux Enterprise 15.0 と openSUSE Leap 15.2(gnome) 上で KVM が稼働しているので、それぞれライブマイグレーションしてみました。virsh migrate --live .... コマンドではなく、 virt-manager、 GUI を使います。

※ SLE 側は gnome Desktop のみです。openSUSE Leap 側も gnome Desktop を使っています。

ー リモート virt-manager に接続

openSUSE Leap 15.2 側の X 端末から Virtual Machine Manager GUI. を起動して、別なハイパーバイザー(SLES15 KVM)側に接続します。

# virt-manager &

openSUSE より File > Add Connection から、SLES の KVM ハイパーバイザーにログインします。そうするとエラー。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20463964.png

openssh-askpass パッケージが要求されます。

yast を見ると ssh-askpass は既にインストールされていますが、ssh-askpass-gnome はインストールされていないため、追加インストールします。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20473094.png

openSUSE Leap 16.2 では標準リポジトリに openssh-askpass, openssh-askpass-gnome が標準で含まれているため、zypper か YaST でインストールするだけです。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20483839.png

接続先のパスワードが要求されました。

リモートハイパーバイザーに接続できました。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20485945.png


稼働中のVMをポイントして右ボタンから Migrate をします。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20541056.png

今回はネットワーク上の共有ストレージ(iSCSI や NFS)を使っていない(単にイメージをSCP コピーしただけの手抜き)ので、エラーとなりました。Advanced Option の中に Allow unsafe のチェックボックスがあるのでこれをチェックして、強引にマイグレートしてみます。(敗因)

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20571842.png

無事、SLE のインスタンスを openSUSE Leap 側に移行出来ました。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_20582225.png

ー よくあるトラブル

よくあるトラブルとして、移行元、移行先のディレクトリ構造が違ったり、移行先に、仮想イメージがマウントしているインストールDVDメディアがないなどが原因で移行出来ないトラブルがあります。使わないハードウェアは外しておきます。VM のコールドブートが必要ですけど...

ー 頻繁に認証を求められる

リモートハイパーバイザーにアクセスすると、頻繁に root パスワードを求めてきました。原因/意味不明です。ちょっと実用的ではないですね。(敗因)

ー SLE の場合

SUSE Linux enterprise (SLES) 15 の場合、openssh-askpass, openssh-askpass-gnome は標準リポジトリに含まれないため、software.opensuse.org より1クリックインストールするか、expert Download にある指示に従って、リポジトリの追加、インストール
します。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_21003537.png



openssh-askpass-gnome

openssh-askpass

zypper addrepo https://download.opensuse.org/repositories/openSUSE:Leap:15.2:Update/standard/openSUSE:Leap:15.2:Update.repo
zypper refresh
zypper install openssh-askpass-gnome

zypper addrepo https://download.opensuse.org/repositories/openSUSE:Backports:SLE-15-SP3/standard/openSUSE:Backports:SLE-15-SP3.repo
zypper refresh
zypper install openssh-askpass

zypper でインストールできない場合は YaST のソフトウェア管理 (YaST Software Management) でインストールできました。

opensuse152:~ # rpm -qa openssh*
openssh-askpass-1.2.4.1-bp153.1.3.x86_64
openssh-askpass-gnome-7.6p1-7.13.x86_64
openssh-helpers-7.6p1-7.8.x86_64
openssh-7.6p1-7.8.x86_64
opensuse152:~ #

今度は openSUSE Leap に移動した、VM インスタンスを SLE 側に戻しました。

KVM on SUSE15(SLE/openSUSE Leap) virt-manager でライブマイグレーション_a0056607_21012912.png

よくあるトラブル

ー 移行先のメモリが足りない
 
 メモリアロケーションエラーになります。メインで使っているハイパーバイザーの稼働率が高く、8割程度でパツンパツンのところに、無理してマイグレートしないことです。不要不急のVMインスタンスをシャットダウンして、移行させるとうまく移行できます。

そもそもライブマイグレートは負荷の高い、ミッションクリティカルなサービスを移動させるのが本質的な目標なので、インスタンスを止めるのは本末転倒かもです。

ー 必ずネットワークの共有ディスクを使うこと、バックアップは重要

 今回は手抜きして、 QEMU のイメージと XML ファイルを SCP コピーして、マイグレートしましたが、できたできたと喜んでマイグレートしてたら、遂にブートローダーが壊れて起動できなくなりました。まぁ今回はテスト環境で、スレーブ用DNSサーバーだったので笑って済ませますが、本番環境がこの様な事では済まされません。

必ずバックアップを取って、共有ディスクからマイグレートします。

ー 異なる環境ではマイグレートできない

インスタンスのイメージがあるディレクトリなど環境は必ず揃えること。特に、インスタンスを作ったときのインストールDVDメディアは、仮想ハードウェアから削除しておくことです。

ー 2つのハードウェアの違いはあるか

 ライブマイグレーションの大きな課題としては、双方のハードウェアアキテクチャに大きな違いがあってはいけないことです。一度 XEN 時代にテストしたのですが、AMD アキテクチャから Intel マシンの移行は、コールド移行もできませんでした。同じ Intel 系でも、CPU世代が大きく違ったりする場合のライブマイグレーションがどの程度成功するかは未知数です。どれだけ環境が異なると移行できないかは経験を積むしかないでしょう。

また移行先のハイパバイザーが古かったりOSベンダーが異なると、成功の可能性は低そうです。

例えば、最新の XEON プロセッサ搭載サーバーから、数年前の古い Core i3 の古いデスクトップ応用PCへの移行がうまく行くとは思えません。コールドマイグレーションでさえ失敗しそうです。逆のケースではうまくいきそうなきがします。( ...そう思っているだけですが… )

いずれにせよ、いざと言う時にライブマイグレーションがおこなえるかどうか、システムを止められる機会に、計画的にテストしておく事が重要です。

ー まとめ

ライブマイグレーションは万能の機能ではありません。想定していなかった設定ミスで失敗したり、
起動できなくなるというトラブルもありました。個人的にはサービス停止が、10分許されるなら、イメージの別 HV へのコピー、サービス 再起動でいい。仮想化マイグレーションは、運用技術としては自己満足に陥りやすい危険性があります。

ただし、せっかくハイパーバイザー運用するつもりなら、キチンと iSCSI などの共有ストレージを作って2つ以上の HV 運用を検討すべきでしょう。いざという時に提供される手段だし、緊急時のオペレーションテスト、訓練も重要です。

また、「小>大」、「古>新」のマイグレーションは成功の可能性が高いのでしょうが、新しいサーバーから古いハイパーバイザーハードウェアへの移行はかなり不安があります。いずれにせよ行き当たりばったりのチャレンジは避けた方がよさそうです。

今回は、SUSE Linux15(SLE/openSUSE Leap) で GUI からライブマイグレーションをテストしてみました。実用性、可用性はギリギリ合格点。 実運用には Open stack などを検討すべきでしょう。

また、SLE ではなく openSUSE Leap 15.2 をつかってみた初めての KVM ですが、使用感は SLES とそれほど変わらないので、ミッションクリティカルではないシーンでは openSUSE Leap でも充分かなと感じました。








タグ:
# by islandcenter | 2021-01-01 20:56 | SUSE | Comments(0)

openSUSE 15.2 でルータ(らしきもの)を作ってみました。

openSUSE Leap15.2 でルータを作ってみた_a0056607_13060411.jpg

そんなに資材がある訳ではないので、 SUSE Linux Enteprise (SLE15) で動いている KVM 仮想環境に、仮想ブリッジと仮想クライアント(openSUSE 15)を作り、仮想化された内部ルータ(openSUSE 15)で、仮想別セグメントのクライアントから、構内ネットワークとインターネットに繋がる、と言うのが目標です。

ちょっとややこしいので簡単な図

openSUSE Leap15.2 でルータを作ってみた_a0056607_11512216.png

動機は、ADSLに繋がっているルータの調子が悪く、Wifi の干渉が酷くて、無線を止めて有線化したかったのですが、Wifi ルータは安いのに有線ルータは、結構値が張ります。また、内部向けに DNS があるのですが、安い Wifi SOHO ルータは DHCP をオフにできず、Wifi ルータの DHCP が イントラ向けの DNSを自分自身に勝手にしてくれるものが多く、実に使い勝手が悪い。
という事で、安く有線ルータが出来ないかなという理由です。

Windows でも似たような事をやってみました。

Wifi から有線LANに変換接続するWindows10 Pro で簡易ルータ

実際の環境で作るとなると零細とは言えSOHOネットワーク全体にトラブルが出てしまうので、まずはテスト環境で、という事で、openSUSE 15.2 でルータを作ってみたわけです。

ー 仮想ブリッジを作る

KVM ホストとなる SUSE Enterprise 15 (SLES15) で yast > system > Network Settings から、Add で Device Type : "Bridge" を作ります。

openSUSE Leap15.2 でルータを作ってみた_a0056607_11521120.png

この KVM ハイパーバイザーには、Amazon で 1000円で買った USB HUB 付 NIC が付いているのですが、今回はこれは使いません。空白。

"br2" という仮想ブリッジが作られます。設定はしません。

openSUSE Leap15.2 でルータを作ってみた_a0056607_11525879.png

SLE のインストールはこちら

SLE15 Linux Enterprise sp2 (SLES15sp2) のインストール(動画付き)

openSUSE で KVM を使う場合はこちら

openSUSE Leap 15.1 で初めての KVM, 仮想化

次に、今回ルーターとなる openSUSE 15.2 を virt-manager から create します。1枚目の仮想 NIC は、ホストサーバーの実 NIC の1番目にバインドされているブリッジデバイスに、二枚目の NIC は br2 の仮想ブリッジにバインドします。

openSUSE Leap15.2 でルータを作ってみた_a0056607_11571289.png
ここでは、openSUSE をインストールして、

openSUSE Leap 15.2 Install (動画付き)

YaST > System > Network Settings から

Eth0 には 192.168.1.254 で、本体のローカルネットワーク(192.168.1.0/24)にバインドします。
Eth1 の仮想ネットワーク側に 192.168.10.254 のアドレスをバインドします。 192.168.10.0/24 は KVM の中だけに存在する、仮想ネットワークです。

ルータとなるシステムのネットワーク設定はこんな感じです。

openSUSE Leap15.2 でルータを作ってみた_a0056607_11592305.png
ついでに DNS もインストールします。

速攻 1分で DNS on SUSE12 by YaST

ー ip forward Enable

YaST > SYstem > Network Settings > の Router のタブはこの様になりました。実ポートが繋がっている側にはデフォルトゲートウェイが設定されています。

ルータ化するため、Enabele IPv4(6) Forwarding は両方ともチェックしておきました。

(早く IPv6 にも慣れないと...)

openSUSE Leap15.2 でルータを作ってみた_a0056607_11592305.png

YaST を終了させるとネットワークの設定は自動的に再起動されます。

フォワードが有効かどうかは次のプロセス ip_forward が "1" (Enable) になっていればOKです。/etc/sysctl.conf を設定する必要はSUSE Linux では必要ないようです。

router:~ # cat /proc/sys/net/ipv4/ip_forward
1
router:~ #

ip route で確認、

router:~ # ip route
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.254
192.168.10.0/24 dev eth1 proto kernel scope link src 192.168.10.254


※ 従来の route コマンドは Depricated - 非推奨 - なので YaST > Software Manegement から明示的に Net-tools パッケージをインストールすると使えます 。

ー NAT とマスカレードの設定

ここからがハマりどころでした。結論としては、NATとマスカレードを有効にしろという事です。次のコマンドを実行したら、内側のネットワークから、本線とインターネットに通信ができる様になりました。ネットワークを変換して仮面舞踏会に参加させます。

ただし、SOHO 本線側からは、デフォルトゲートウェイが違うため通信はできません。

router:~ # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

ネットワークサービスを再起動します。

router:~ # systemctl restart network

永続的に設定するためには、ファイアウォールの設定が必要か、起動時に iptables コマンドを実行させる方法を探す必要があります。(挫折)

opensuse152desktop:~ # ip a | grep 192
inet 192.168.10.20/24 brd 192.168.10.255 scope global eth0
opensuse152desktop:~ #
opensuse152desktop:~ # ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=5 ttl=111 time=32.2 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=111 time=31.1 ms
64 bytes from 8.8.8.8: icmp_seq=7 ttl=111 time=31.4 ms
^C
--- 8.8.8.8 ping statistics ---
7 packets transmitted, 3 received, 57% packet loss, time 6097ms
rtt min/avg/max/mdev = 31.157/31.620/32.294/0.508 ms


ー より深く設定するには firewall-config を使う

具体的には firewall-config という GUI アプレットをインストールして設定するようです。openSUSE 15.2/SLES15 のリポジトリにあるので YaST からインストールできます。

openSUSE Leap15.2 でルータを作ってみた_a0056607_12005594.png

第14章 マスカレードとファイアウオール

fire-wall-config アプレットを起動します。

router:~ # firewall-config &

で起動できます。 firewalld が Active/Boot Enable の場合でないと、起動できません。YaST > System > Service Management メニューから firewalld を有効にしておきます。

アプレットのUIはこんな感じです。

openSUSE Leap15.2 でルータを作ってみた_a0056607_12012822.png

ー まとめ

とりあえず目標とする事はできました。うまく設計すれば、仮想環境だけで物理ポートが2つあれば、DMZ を含んだインターネットとのバウンダリシステムを作る事ができます。今時は SaaS でメールやウェブページを運用するのが一般的なのでしょうが、例えば DNS や DHCP、 認証/パススルー・プロクシのようなコンテンツキャッシュやコンテンツフィルタリングなど、オフィスのバウンダリ・エッジで必要とされる機能は数多くあります。これらを一つの仮想化パッケージとして運用するのも一つの手段です。

何しろ余計な UPS や HUB、ケーブルが必要なくて実にスッキリします。

あいにく、私はネットワークシステムについては不勉強です。でもファイアウォールの設計やテスト、小規模な開発環境を構築するには、なかなか便利な経験でした。

次の目標は firewall-config ツールを使いこなして、Fire Wall の勉強です。






# by islandcenter | 2020-12-16 12:01 | SUSE | Comments(0)