playbook を作成した経緯
最近技術的なこともやっていなかったので、リハビリがてら ansible の playbook を書いてみた。
前回の記事で書いた snmposter のインストールを実施する ansible の playbook を作成してみた。
そんなに何回も使用するものでもなさそうですが、よかったら使ってみてください。
最近技術的なこともやっていなかったので、リハビリがてら ansible の playbook を書いてみた。
前回の記事で書いた snmposter のインストールを実施する ansible の playbook を作成してみた。
そんなに何回も使用するものでもなさそうですが、よかったら使ってみてください。
自身の snmposter 環境が CentOS 7 で稼働しているので、そろそろ新しいバージョンの RHEL OS に移行しようとかと思いトライしてみた。
yum -y install python2-devel gcc wget tar
pip2 install virtualenv virtualenv /snmposter
source /snmposter/bin/activate
wget http://downloads.sourceforge.net/project/twistedsnmp/twistedsnmp/0.3.13/TwistedSNMP-0.3.13.tar.gz tar -xzf TwistedSNMP-0.3.13.tar.gz cd TwistedSNMP-0.3.13 python2 setup.py install cd ..
wget http://downloads.sourceforge.net/project/twistedsnmp/pysnmp-se/3.5.2/pysnmp-se-3.5.2.tar.gz tar -xzf pysnmp-se-3.5.2.tar.gz cd pysnmp-se-3.5.2 python2 setup.py install cd ..
pip2 install snmposter
以下の記事を参照。
snmposterを使ってみる - amegonの雑なブログ
以下の記事を参照。
snmposterを使ってみる - amegonの雑なブログ
以下の記事を参照。
snmposterを使ってみる - amegonの雑なブログ
以下の記事を参照。
snmposterを使ってみる - amegonの雑なブログ
実行ログは時間があったら掲載します。。
Zabbix Conference 2023 を見ていてマップコンテストがダッシュボードコンテストに変わっていることを知る。
自分だったら何を作れるかなぁ、と考えているうちに作り始めていた。
以前から頭痛に悩まされていて Zabbix で気圧の監視を始めていた。
もともとトリガーで気圧の変動時に障害検知とする設定は作っていた。
これをダッシュボードでさっと確認するにはどんな要素がいるかなと考えた。
以下のものができました。
気圧予報グラフ(現在から12時間後)
気圧変動アラート(現在から未来12時間の間で5hPaの変動を検知した場合)
気圧変動アラートが発生した際には Slack にも通知を行って気づけるようにした。
Zabbix のマップをいじっているうちに、ネットワーク機器の前面パネルを表示してポートの状態が正常と障害で表示が切り替えられそうだな、と思った。
いろいろなベンダーで同様の機能が提供されているか、それを Zabbix だけで実行できるのではと思った次第。
以下に抜粋。
以下のようにしてホストを作成。
ネットワーク機器の前面パネルの絵を準備。
今回はアライドテレシスの AT-x210-9GT を使用。
理由は同機器を所有しているからと絵の入手が簡単だったから。
絵は以下のサイトからダウンロードして加工した。
https://www.allied-telesis.co.jp/library/parts/switch/dcycle.html
正常時、障害時、メンテナンス時の絵を以下のように準備した。
上下それぞれのポートに対して準備をする。
Zabbix で以下のようにマップを作成
正常時
の絵を用いて、ポートごとに作成したホストと紐づけ設定を行う
ネットワーク機器前面の絵のポートの上に、上記で作成したポート(ホストとひもづけ済)をのせる
作成過程のスクショ
以下の状態で監視されているネットワーク機器をマップで表示してみた。
正常時にはポートが緑色表示、障害時にはポートが赤色表示となりわかりやすいと感じた。
しかし、障害時には何かしら障害の情報が表示されてしまいそちらに目がいってしまい表示が汚くなる印象を受けた。
障害時に表示するメッセージの種類をもう少しカスタマイズすることができたら利用価値があるかもしれない。
今回はそれがわかったことがOKとして、また別の機会があったら表示上のカスタマイズをすすめてみようと思ったり思わなかったり。
以前 Android 12L を適用した Nexus 7 に以下をインストールした。
特にインストールは困らず。
インストール後、Android にインストールしたエージェントに Zabbix サーバーの IP アドレスを設定して起動した。
以下に作成したものを保存しました。
一部監視データの取得が未確認なものも含んでいます。
(通信キャリアの情報など。私の Nexus 7 が Wifi のみモデルのため確認できず。。)
うまく使ってください。
以下のような感じ。
以前 Zabbix から Slack へアラート通知する設定をしてから時間がたっていたことで、Slack の api ページが若干表示が変更になっていたことと、前回の設定のメモがあまりにもいまいちだったので再設定を兼ねて設定方法をメモしました。
以下の URL にアクセス
表示された画面で Your apps
を選択
表示された画面で Create New App
ボタンを選択
表示された画面で From Scratch
を選択
表示された画面で以下の情報を入力・選択して Create App
ボタンを押す
以下の画面に遷移したら OAuth & Permission
を選択
遷移した画面で中断まで画面をスクロールし、Scopes 内の Add an OAuth Scope
ボタンを押す
表示された選択肢から chat:write
を選択
chat:write
が追加されたことを確認する
画面を上部にスクロールし、OAuth Tokens for Your Workspace 内の Install to Workspace
ボタンを押す
アクセス許可の画面が表示されるので 許可する
を選択
画面が戻ってくると OAuth Tokens for Your Workspace 内の Bot User OAuth Token
に Token が表示されているのでメモっておく
Slack ワークスペースの App に、先ほど作成した bot の Slack Notification from Zabbix
が表示されていることを確認
次に Zabbix からの通知を受け取りチャンネルを作成する
ここでは #zabbix_alert
として作成
チャンネルを選択して右クリック → チャンネル詳細を表示する
を選択する
表示された画面で インテグレーション
を選択し App 内の アプリを追加する
を選択する
表示された画面で、前項で作成した bot Slack Notification from Zabbix
の 追加
ボタンを押す
Zabbix にログインして 管理 → メディアタイプを選択し、その中の Slack を選択
オリジナルの設定は残しておきたいので、画面最下部に移動して 複製
を選択
複製したメディアタイプで以下の項目の設定を更新して保存する
項目 | 設定内容 | 設定例 |
---|---|---|
名前 | 任意 | Slack_Zabbix_Alert |
bot_token | Slack api で生成された Bot User OAuth Token | - |
zabbix_url | 自身の Zabbix サーバーの URL | http://192.168.1.1/zabbix |
次にテスト実行してみる。
この際以下を変更して テスト
ボタンを押す。
Slack 側で受信できたことを確認
管理 → ユーザー で通知を実施するユーザーを選択
メディア を選択して以下のように設定
設定 → アクション で Slack に通知したいアクション設定に対して、先ほど作成したユーザーのメディアを選択して設定する
別の場所で docker で稼働している Redmine 環境を移行するための受け皿を作成したい。
そのためにまずは同じ環境を作成してみる。
実行コマンド
sudo mkdir /usr/local/bin/redmine cd /usr/local/bin/redmine/
[root@test244 ~]# sudo mkdir /usr/local/bin/redmine [root@test244 ~]# [root@test244 ~]# cd /usr/local/bin/redmine/ [root@test244 redmine]# ls -al 合計 8 drwxr-xr-x. 2 root root 4096 10月 10 22:03 . drwxr-xr-x. 4 root root 4096 10月 10 22:03 .. [root@test244 redmine]#
実行コマンド
sudo vi /usr/local/bin/redmine/docker-compose.yml
内容
version: '3.7' services: redmine: container_name: redmine-4.0.4 image: redmine:4.0.4-alpine restart: always ports: - 8080:3000 volumes: - ./data/plugins:/usr/src/redmine/plugins - ./data/themes:/usr/src/redmine/public/themes environment: REDMINE_DB_MYSQL: redmine-db-4.0.4 REDMINE_DB_PASSWORD: redmine redmine-db-4.0.4: image: mariadb:10.8.2 container_name: redmine-db-4.0.4 restart: always environment: MYSQL_ROOT_PASSWORD: redmine MYSQL_DATABASE: redmine volumes: - ./data/db:/var/lib/mysql command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
実行ログ
[root@test244 redmine]# cat /usr/local/bin/redmine/docker-compose.yml version: '3.7' services: redmine: container_name: redmine-4.0.4 image: redmine:4.0.4-alpine restart: always ports: - 8080:3000 volumes: - ./data/plugins:/usr/src/redmine/plugins - ./data/themes:/usr/src/redmine/public/themes environment: REDMINE_DB_MYSQL: redmine-db-4.0.4 REDMINE_DB_PASSWORD: redmine redmine-db-4.0.4: image: mariadb:10.8.2 container_name: redmine-db-4.0.4 restart: always environment: MYSQL_ROOT_PASSWORD: redmine MYSQL_DATABASE: redmine volumes: - ./data/db:/var/lib/mysql command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci [root@test244 redmine]#
実行コマンド
docker-compose up -d
実行ログ
[root@test244 redmine]# docker-compose up -d [+] Running 25/25 ? redmine-db-4.0.4 11 layers [???????????] 0B/0B Pulled 35.8s ? 08c01a0ec47e Pull complete 5.5s ? a2bcb14c13a1 Pull complete 0.8s ? 29c56760f879 Pull complete 1.3s ? a95000a218fc Pull complete 2.0s ? a765d76e68d9 Pull complete 2.0s ? c6945738f085 Pull complete 3.0s ? 62787b7c58c5 Pull complete 2.7s ? 85ee39c28fa6 Pull complete 3.4s ? bee45abd643a Pull complete 17.8s ? b0f20114a997 Pull complete 4.2s ? f59b42092777 Pull complete 4.9s ? redmine 12 layers [????????????] 0B/0B Pulled 37.7s ? 9d48c3bd43c5 Pull complete 6.9s ? 9ce9598067e7 Pull complete 6.5s ? 278f4c997324 Pull complete 7.3s ? 867dd521f6d0 Pull complete 12.1s ? c69cba5b7867 Pull complete 8.3s ? f8e706cde8a6 Pull complete 9.2s ? fd530ab1d01f Pull complete 19.9s ? 5fbab007b5e2 Pull complete 12.9s ? 7568bba59c7a Pull complete 18.6s ? c9b656c27197 Pull complete 19.5s ? e6c6e76c252d Pull complete 29.6s ? ee6f52a8cbac Pull complete 24.7s [+] Building 0.0s (0/0) docker:default [+] Running 3/3 ? Network redmine_default Created 0.5s ? Container redmine-db-4.0.4 Started 0.2s ? Container redmine-4.0.4 Started 0.2s [root@test244 redmine]#
実行コマンド
docker ps -a
実行ログ
[root@test244 redmine]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf966516d36e redmine:4.0.4-alpine "/docker-entrypoint.…" 16 seconds ago Up 3 seconds 0.0.0.0:8080->3000/tcp, :::8080->3000/tcp redmine-4.0.4 2785c742e89d mariadb:10.8.2 "docker-entrypoint.s…" 16 seconds ago Up 15 seconds 3306/tcp redmine-db-4.0.4 [root@test244 redmine]#
表示できた。
docker-compose.yml
version: '3.7' services: redmine: container_name: redmine-4.0.4 image: redmine:4.0.4-alpine restart: always ports: - 8080:3000 volumes: - ./data/plugins:/usr/src/redmine/plugins - ./data/themes:/usr/src/redmine/public/themes environment: REDMINE_DB_MYSQL: redmine-db-4.0.4 REDMINE_DB_PASSWORD: redmine redmine-db-4.0.4: image: mariadb container_name: redmine-db-4.0.4 restart: always environment: MYSQL_ROOT_PASSWORD: redmine MYSQL_DATABASE: redmine volumes: - ./data/db:/var/lib/mysql command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
docker-compose up -d
コマンド実行後コンテナのステータスを確認。Restarting が実行され続けていた。。
[root@test244 redmine]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0421de545baa mariadb "docker-entrypoint.s…" About a minute ago Restarting (1) 4 seconds ago redmine-db-4.0.4 2f85c9221a56 redmine:4.0.4-alpine "/docker-entrypoint.…" About a minute ago Restarting (1) 10 seconds ago redmine-4.0.4 [root@test244 redmine]#
docker-compose logs
コマンドでログを確認したところ以下のログを確認。
redmine-db-4.0.4 | 2023-10-10 01:54:38+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.1.2+maria~ubu2204 started. redmine-db-4.0.4 | 2023-10-10 01:54:38+00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
上記のエラーログでググったところ以下の情報を確認。
2022年5月時点の docker 最新版で同様の事象が確認されていた。
https://stackoverflow.com/questions/72410663/error-starting-mariadb-on-docker-compose-build
情報によると image: mariadb
でこの事象が発生するようで、対応としては image: mariadb:10.8.2
とすればとのこと。
そこで docker-compose.yml の redmine-db-4.0.4 側の image 設定を変更したところ正常に起動できた。