タグ: Ubuntu Page 13 of 14

自宅サーバの監視システム。(Ubuntu 20.04にZabbix追加)

Zabbixサーバ追加

宅内サーバの障害の切り分けのため、監視システムであるZabbixを導入しました。

環境

  • Kubuntu 20.04
  • MySQL / Apache導入済み

手順

LAMP設定

aptitude install libapache2-mod-php
aptitude install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql

PHP構成変数の更新

vi /etc/php/7.4/apache2/php.ini
変更内容
memory_limit 256M
upload_max_filesize 16M
post_max_size 16M
max_execution_time 300
max_input_time 300
max_input_vars 10000
date.timezone = 'Asia/Tokyo'

Zabbix リポジトリの設定

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb 
dpkg -i zabbix-release_5.0-1+focal_all.deb

Zabbix サーバのインストール

aptitude update
aptitude install zabbix-server-mysql zabbix-frontend-php zabbix-agent zabbix-apache-conf

Zabbixデータベースとユーザの作成

mysql -u root -p 
CREATE DATABASE zabbixdb character set utf8 collate utf8_bin; 
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'パスワード'; 
GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES;
quit
cd /usr/share/doc/zabbix-server-mysql 
zcat create.sql.gz | mysql -u zabbix -p zabbixdb

Zabbix構成の更新

vi /etc/zabbix/zabbix_server.conf
ファイルの内容
  DBHost=localhost
  DBName=zabbixdb
  DBUser=zabbix
  DBPassword=パスワード

zabbix有効化

systemctl enable zabbix-server 
systemctl restart zabbix-server

ディレクトリ権限変更

ここで [サーバIPorドメイン/zabbix]を入力しましたが404 Not Found。以下を施しました。

cd /usr/share
chown -R www-data:www-data zabbix
systemctl restart apache2

その後、インストーラ画面が出てきたので後に続きます。

サーバ追加後

このように、監視システムが現れました。

  • 監視設定の精査
  • メール通知などの追加

が残っていますけれど、まずは一歩前進。

余談

Zabbix-AgentはWindowsにも対応しています。そこでメインで使っているデスクトップにもAgentを入れてみたら

  • マザーボード備え付けのLANポートが認識しない
  • 同様にマザーボードのサウンドも認識しない
  • 壁紙設定が強制的に上書きされる

などの不具合が発生し、やむなくWindowsからエージェントをアンインストールしました。

redmineサーバのクラッシュとリビルド。

運用が始まったばかりの自室サーバのredmineに思わぬ冷や水がありました。

原因:操作ミスによるサーバクラッシュ

全く恥ずべき話ですが、redmineサーバに新たなシステムを導入しようとインストールスクリプトを叩いていたらmysqlが起動しなくなり、

更に、その原因となるファイルを削除したら親のシステムディレクトリを削除したという二重の詰み。

システムリビルド

こうなったらやることは一つ。「もう一度のサーバ構築」。

とても幸いだったことに、今までやっていたものは全て記録していました。

https://manualmaton.com/category/%e3%82%ac%e3%82%b8%e3%82%a7%e3%83%83%e3%83%88/pc/linux/redmine/

これを元に

  1. サーバインストール
  2. DNS設定
  3. redmineインストール
  4. プラグイン導入

と進めていき、

データ以外は復旧です。

このデータも「本当に残しておきたい」ものはローカルに保存していたので被害は抑えられました。

反省点

しかし、これは間違いなくインシデントとして報告すべきものでした。

  • 影響範囲のリサーチ不足
  • ミスを修正時に切り戻しポイントを作っていなかった
  • そもそもバックアッププランが足りていなかった

と、根本的な誤りがありました。

これは手痛い授業料として、次につなげていきます。

redmineのログ閲覧プラグイン導入とローテーションの設定。

もはやインフラとなった自サーバのredmine。よりよい運用のために以下を施しました。

環境

  • OS: Ubuntu 20.04 (Linux Mint 20.3でも同様)
  • redmineバージョン:4.2.4

手順

※全て管理者権限で行います。

ログを参照するプラグインの導入

cd /var/lib/redmine/plugins
# 自環境のredmineのプラグインが格納されているディレクトリに読み替えてください
git clone https://github.com/haru/redmine_logs.git redmine_logs
chown -R www-data:www-data redmine_logs
systemctl restart apache2

導入後、redmineにログインし、管理をクリックすると「ログ」のカテゴリーが見られるようになります。

ログローテーションの実施

結構な容量があるので、ローテーションさせて肥大化を防ぎます。

redmineのログを/var/log 配下に移動(シンボリックリンク張り替え)
mkdir /var/log/redmine
chown www-data:www-data /var/log/redmine
cd /var/lib/redmine/log
mv *.log /var/log/redmine
cd ../
rmdir log
ln -s /var/log/redmine/ log
chown -R www-data:www-data log
ls -la log
# log -> /var/log/redmine/となっていることを確認
ローテーション
cd /etc/logrotate.d
vi redmine
設定ファイル内容
/var/lib/redmine/log/*.log {
        missingok
        notifempty
        copytruncate
        compress
}

ログローテート実行

logrotate -d redmine
# テストして問題ないことを確認
logrotate -f redmine
# 強制的にローテーションさせる

ローテーション後の挙動

  1. redmineに管理者権限でログイン
  2. 管理>ログに移動
  3. 画像のように以前のログが圧縮されていることを確認
  • /var/lib/redmine/log/production.log
  • /var/lib/redmine/log/production.log.1.gz

redmineプラグイン「clipboard_image_paste導入」。

redmine4.1以降から、チケット発行時にクリップボード上の画像を直接貼り付けられるようになりました。

ですが、knowlegebaseではそれが反映されないので別途プラグインを追加しました。

参考

手順

※全て管理者権限で行います。

ディレクトリ移動・配置

cd /var/lib/redmine/plugins
# 自分のredmineプラグインが配置されている場所に読み替えてください
git clone https://github.com/peclik/clipboard_image_paste.git clipboard_image_paste
# 4.x以降に対応したフォーク版です

権限変更・反映

chown -R www-data:www-data clipboard_image_paste
systemctl restart apache2

反映後の挙動

記事入力欄に以下のようなボタンが追加されるのでクリックします。

Ctrl + Vで貼り付け、OKをクリックします。(このとき、さらに細かい範囲を指定できます)

後はWikiの記述に従って該当の画像を貼り付けます。

これで、redmineプラグインのknowledgebaseでもスクリーンショットの貼り付けができるようになりました。

ローカルサーバにredmineを構築。

はじめに

を試してみたものの、機能が足りなかったり機能に特化しすぎたりで一長一短。

そこで、

  • 自分のインプット/アウトプットを効率的に視認できる
  • やりたいことを一覧で見ることができる
  • ToDoをカレンダーで表示したり
  • 各進捗の状況を把握する

となると、もっと根本的に使えるものがあればいいのではと思いました。

そこで白羽の矢を立てたのがredmineです。

これを選んだ理由

  • 多くの人が使っているツールはノウハウが揃っているため、とっつきやすいと判断。
  • プラグインが充実している。
    • 特にmermaid記法を表示できるのは大きい。
  • 自分の趣味ごとにプロジェクトを作っておけば、それらの管理もできる。

インストール

環境

自宅のサブマシンを利用しました。

  • 32GB Memory
  • 1TB SSD
  • Core i-5

と、動作性能に申し分はありません。

OSインストール

デスクトップ環境としても運用したいので、Kubuntuを用います。バージョンは現時点でのLTSである20.04。

インストールウィザードに従ってインストールするのみですが、IPアドレスのみローカル固定としました。(外部公開は運用の考慮外です)

初期設定

サーバ(という名のサブPC)からコマンドラインを立ち上げ、以下を行っていきます。

sudo apt install aptitude # aptよりも好みのパッケージ管理
sudo aptitude update
sudo aptitude upgrade # OSを最新バージョンにします。
reboot # 一度再起動をします。

再起動後、sshをインストール。

sudo aptitude install sshd

メインPCのターミナルソフトからIPアドレスでSSH接続を確認。

Redmineインストール

こちらに関しては、このサイトに従いましたが、mysqlを導入後に以下を実行して安全性を高めます。

sudo mysql_secure_installation

インストール後、ipアドレス/redmine をブラウザに打ち込み

表示を確認。

今後の展望:

  • プラグインを入れていく。
  • テーマを変える。
  • プロジェクトなどを設定していく。

ナレッジサーバ構築メモ-2- Docker/Knowlege構築篇

はじめに

先日から始まった「Linux機にナレッジサーバを構築して運用する」プロジェクト。

OS基盤の前に、

  • 何かあっても切り戻しができる
  • VMと異なりリソース消費が少ない

ことから、Dockerを入れてみます。

前提条件

ベースPCは前述したとおり。

  • Kubuntu 21.04を導入
  • NWをIPv4のローカルで固定
  • 家庭内のNWからSSH接続できるよう設定

Dockerインストール

以下、全てrootで実施します。

(参考:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ja)

  • 必要なパッケージをインストール
# aptitude install apt-transport-https ca-certificates curl software-properties-common
  • Docker公式リポジトリをシステムに追加
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
  • パッケージ更新→ Dockerインストール
# aptitude update
# aptitude install docker-ce
# aptitude install docker-compose
  • Dockerステータス確認
# systemctl status docker

● docker.service - Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Active: active (running) since Sun 2021-09-12 07:54:43 JST; 1min 35s ago
TriggeredBy: ● docker.socket
      Docs: https://docs.docker.com
  Main PID: 51598 (dockerd)
    Tasks: 9
    Memory: 28.6M
    CGroup: /system.slice/docker.service
            └─51598 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

以下、通常ユーザで実行します。

  • 通常ユーザでdockerを実行できるように設定
$ usermod -aG docker [ユーザ名]
  • 反映後、ログアウトし再ログイン
  • 自動起動有効化
$ sudo systemctl enable docker

docker 動作確認

まずはコンテナが動いているかを確認します。

(参考:https://qiita.com/Esfahan/items/52141a2ad741933d7d4c)

$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS   PORTS     NAMES

→ 何も動いておらず。

  • Docker上でbash起動
$ docker run -i -t centos /bin/bash
# cat /etc/redhat-release
CentOS Linux release 8.3.2011
→ CentOS8.3が起動
# exit
  • Dockerイメージ再確認
$ docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED             STATUS                     PORTS     NAMES
99b9e451b8c0   centos   "/bin/bash"   About a minute ago   Exited (0) 14 seconds ago             compassionate_allen
  • テスト用のイメージ削除
$ docker rm [コンテナID]
  • テスト用イメージ削除確認
$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS   PORTS     NAMES

何も動いていないことを再確認。

DockerコンテナからKnowledgeを作成

ここまで来たらあっけなく終わりました。

$ sudo docker pull koda/docker-knowledge
$ sudo mkdir /home/manualmaton/knowledge ## コンテナを格納するディレクトリ
$ sudo chmod a+w /home/manualmaton/knowledge
$ sudo docker run -d -p 80:8080 -v /home/manualmaton/knowledge:/root/.knowledge --name knowledge koda/docker-knowledge

あとは、ブラウザ上から

http://[サーバのIPアドレス]

にアクセスし

正常にアクセス完了。Tomcatやnginxの設定すら不要でした。

残る課題

  • コンテナの自動起動設定。→ 現状、リスタートしても自動的にサービスが立ち上がらないので、ベースマシン再起動のたびにdocker start knowledgeを入力する必要があります。これを自動起動する設定を行います。
  • データ(コンテナ)の自動バックアップ

まとめ

なんとなく作ったシステムが実は有用だったと気づいたものの、それを再現するためのメモがなかったことに唖然としました。

「前に取得した知識がどこかで役立つよう」

メモを残しておくことは本当に大事だと思ったわけで。

なにはともあれ、今後は

  • 適当なMarkdownエディタを使って生地を作成
  • それをKnowledgeに放り込む

スタイルが確立しそうな予感です。

ナレッジサーバ構築メモ-1- インフラ構築篇

はじめに

普段、オンラインのメモ書きとしてGoogle Keepを多用していますが、以下の不満点がありました。

  • 記事が雑多すぎて欲しい情報がすぐに見つけられない
  • 記憶を思い起こすときの明確なトリガーとなる「日付」でのソートが難しい
  • オンラインサービスのため、機微情報を保存できない

そこで、上記を解決するために

  • 情報を見つけやすく
  • 日付での検索が行えて
  • 家の中のNWのみから閲覧可能な

文書管理システムを作ろうと思い立ちました。

ベースの文書管理システム

以前作った「Knowledge」を利用します。

  • 簡単にインストールが行える。
  • 日付やキーワード、タグといった多彩な検索オプションが可能。
  • Markdown記法が使える。
  • Webアプリのために端末を選ばない。

で、これは前に使っていたのに

  • Windowsに戻したときに消えた
  • 再現しようにもメモをしていなかったので詳細不明

と、自分のための備忘録です。

ベースマシン

自室にあるサブのデスクトップ。時にはLinux、時にはWindowsだったりしましたがまたもやLinuxに戻ります。

スペック

  • CPU: i5-7500 CPU @ 3.40GHz
  • メモリ: 32GB
  • SSD: 1TB

と、4年ぐらい前のモデルながらも順調に手入れをしていたので状態は良好です。

OSのインストールと接続準備

OSはKubuntu 21.04を選定。

もともとUbuntuベースのOSとKDEデスクトップの見た目が好みだからと言う単純な理由です。

ISOイメージをメインPCに落とし、Rufusを用いてUSBドライブを作成します。

インストールはガイダンスに従うだけ。(パーティションも自動で切っています)IPアドレスだけ固定にしました。

起動後の設定

  • aptitude インストール
$ sudo apt install aptitude
  • パッケージアップデート
$ sudo aptitude update
$ sudo aptitude upgrade
  • アップデート後に再起動
  • sshdインストール
$ sudo aptitude install sshd
$ sudo systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2021-09-11 18:12:36 JST; 1h 19min ago

Windowsからの操作

SSHクライアントは使い慣れているRLoginを採用。

KDE環境なので直接Konsoleをいじる手はありましたが、自分の体に馴染んだ分割キーボードが使える環境から使いたいためです。

と、接続を確認。

次のタスク

まずはここまでですが、以下、待ち構えています。

  • Tomcatインストール
  • nginxインストール
  • knowledgeインストール
  • knowledge初期設定
  • DBバックアップ設定

Ideapad C340にUbuntuをインストール。

モバイルノートが重なっているので、古い方を検証機として転用しました。

まずはインストールのためUSBメモリを購入。rufusを利用してメディアを作ります。

USBメディアを認識させるため、BIOSでブートをLegacyにします。ここまで来たらインストールそのものは簡単でした。

当初はKubuntuを入れていましたが、システムがスピーカーを認識しなかったためUbuntu21に差し替えてリトライ。

結果は無事に成功。

デュアルブートにはせず、ディスクいっぱいを丸々使っています。

動画再生も問題なし。タッチディスプレイも、コンバーチブル方式の画面回転も大丈夫でした。

後は

  • 指紋認証リーダの有効化
  • 各種デスクトップアプリを入れる

などをやっていこうかと。

中古PC再生計画-最終的な評価-

ここ一週間もの間、猫に関するエントリーで集中していましたが、タイトルにもあるように「中古PCを一線級に整える」一連の流れを総括しようと思います。

今まで、こんな記事を書いてきました。

  1. 中古PC・再生計画-1-筐体の入手とHDD換装。
  2. 中古PC・再生計画-2-Ubuntuのインストールとデスクトップ変更。
  3. 中古PC・再生計画-3-Ubuntu12.10にAdobe AirとTweetDeckをインストールする。
  4. 中古PC・再生計画-4-BluetoothとDVD再生。
  5. 中古PCを再生させて-フィードバック-
  6. 中古PC・再生計画-5-リフレッシュバッテリーに換装。
  7. 中古PC・再生計画-6-仮想環境の構築とソフトウェアルータOS(Vyatta)の導入。
  8. 中古PC・再生計画-7-OSをUbuntuからLinuxMintに変更。
  9. 中古PC・再生計画-8-ネットやアプリケーションの速度を心持ち上げる
  10. 中古PC・再生計画-9-モバイルスピーカーを入手しました。

記事を最初に書いたのが4月のはじめですから、ゆうに3ヶ月が経過したことになります。結論から言えば「全く問題なく音楽、動画の再生、写真の編集や閲覧、そしてネット閲覧ができる」ようになりました。

まず、ベースマシンとなるLet's note CF-W7の基本性能に救われました。5年前の機体ではありますが、筐体は軽くて堅牢。液晶はバッチリ見られますし、光学ドライブがこのサイズで付いてくるので、持ち歩くのにピッタリ。

手を入れたのは

  • HDD増設(80GB→1TB)
  • メモリ増設(512GB→3GB)
  • バッテリーをリフレッシュバッテリーに換装
  • Bluetoothドングルを追加

だけ。購入価格1万7千円でしたから、プラス1万5千円で、数世代前のものが第一線級に復帰。尤も、一番の変化は「OSの変化」でしょうね。

WindowsXP(最初)→Ubuntu12.10 → Ubuntu13.04 → LinuxMint14 → OpenSuSe → LinuxMint14(KDE版)

3ヶ月で5回も変わりましたが、今は軽さの割に華やかなデスクトップ画面と、digiKamによる画像編集があるLinuxMintに落ち着いてきた次第です。

元々は「LPIC Level1を取得した記念」で購入した中古PCが、外出時の「片腕」となっていることに、感動しています。「お金をそれほどかけずにPCを再生させたい」という人は、Linuxは一つの選択肢だと思いました。

ノートPC3つの使い分け。

今まで持ってたものだったり、新しく中古を買ったり、父から受け継いだものだったりと

・EeePC
・Let's note
・VAIO

と、3つのノートPCが所有物になったわけです。うち、Let's noteに関しては現在のモバイル環境の旗艦。大容量HDDと一新したバッテリー、そして電源管理アプリを導入したLinuxMintのお陰で「大量のアーカイブをモバイルで楽しめる」ようにしました。

父から受け継いだVAIOノートは比較的スペックが高く、ワイドスクリーンだったのでUbuntuを入れていたのですが、やはり「Unityは使いにくい」とKDE搭載のKubuntuに差し替え。広いスクリーンを利用して、ウィジェットを多く積むことができます。

2013-05-16Kubuntu

この時に気づいたことは、KDEはオブジェクトを移動するときに、それが透けるという効果。

2013-05-17KDE2

何というか、知らない間に技術は色々と凄いことになっていたんですねぇ。

そして、残るEeePCはサーバ専用機として使うか、いろいろなものをインストールする実験機として使うかの2択になると思います。先の3台の中では一番新しく、スペックも高いので遊ばせておくのがもったいないので。

取り敢えず、実験として使うPCならばFedora Coreが一番丸い選択肢でしょうか。KDE Spinもあることですし。

Page 13 of 14

Powered by WordPress & Theme by Anders Norén