Zabbix API で Shell からメンテナンスを操作する(Zabbix4.4)

Zabbix API で Shell からメンテナンスを操作するを見て、Zabbix4系でもできたら良いなと思って作りました。作ったメンテナンスの情報を削除しない予定なので、メンテナンスの作成のみとなっています。
Zabbix APIからのメンテナンス操作についても参考にさせて頂きました。

【環境】
CentOS Linux release 7.7.1908 (Core)
Zabbix 4.4.0

コード

#!/bin/bash
#
# Create maintanance period on zabbix for specific host.
# Default maintenance period is 1 hours.
# If you need to change the period, change the folowing values:
#  - time_till=`date "+%s" -d "1 hours"`
#  - "period": 3600
#
# Usage
#  Arguments:
#  $1 hostname(zabbix registered)
#  $2 zabbix maintenance name
#    Note: $2 cannnot contain any spaces.
#
# Example
# ./create_maintenance_period.sh server "Sunday_maintenance"
# ./create_maintenance_period.sh hinata サーバ再起動
#


# Initial settings
zbx_endpoint="http://zabbix4/zabbix/api_jsonrpc.php"
user="arkey22"
password="XXXXXXXX"
time_since=`date +%s`
time_till=`date "+%s" -d "1 hours"`

# Get token
token=`curl -s -d '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "'$user'",
        "password": "'$password'"
    },
    "id": 1,
    "auth": null
}' -H "Content-Type: application/json-rpc" $zbx_endpoint | awk -F'"' '{print $8}'`

# Get host id  
host_id=`curl -s -d '{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
   "output": [
            "hostid"
           ],
        "filter": {
          "host": [
                  "'$1'"
            ]
        }
    },
    "auth": "'${token}'",
    "id": 1
}' -H "Content-Type: application/json-rpc" ${zbx_endpoint} | jq -r '.result[].hostid'`

# Create maintenance
maintenance_id=`curl -s -d '{
  "jsonrpc": "2.0",
  "method": "maintenance.create",
  "params": {
    "name": "'$2'",
    "active_since": '$time_since',
    "active_till": '$time_till',
    "hostids": [
      "'$host_id'"
    ],
    "timeperiods": [
      {
        "period": 3600
      }
    ]
  },
  "id": 1,
  "auth": "'${token}'"
}' -H "Content-Type: application/json-rpc" ${zbx_endpoint} | jq -r '.result.maintenanceids[]'`
if [ $? -eq 0 ]; then
  /bin/echo -e "[INFO] Successfully created a maintenance period."
  /bin/echo -e "[INFO] Hostname: $1"
  /bin/echo -e "[INFO] Maintenance Name: $2"
  /bin/echo -e "[INFO] Maintenance_id: $maintenance_id"
else
  /bin/echo -e "[ERROR] Failed to create maintenance period."
fi

実行結果

$ ./create_maintenance_period.sh c2960 再起動のため
 [INFO] Successfully created a maintenance period.
 [INFO] Hostname: c2960
 [INFO] Maintenance Name: 再起動のため
 [INFO] Maintenance_id: 28


バイクを1年点検に出してきましたので、維持費などをざっくり出してみました。

お久しぶりにバイクネタです。2018年8月に購入したMT-25ですが、1000kmで初回点検を受けてオイル交換をしています。
今回は、新車で納車して1年が経過していることと、走行距離が7000km近くなったので、点検に出さなにゃーと思い、最寄りのYSPに出してきました。

かかったお金

総額で約17,000円です。
内訳は工賃が1万円、オイルとオイルフィルターが合わせて7000円でした。もちろん、オイル以外にも冷却水の補充やフットブレーキの錆落とし、洗車など色々して頂きました。
ボルトの締め具合なども診て頂いてるので、ぼったくり価格ではないと思っています。僕は車体の整備に一切興味が無いので、全てお任せしてます。

結局のところ、250ccのバイクを一年(7000km)くらい走らせるとどれくらいお金がかかるのか

  • 燃料代・・・27,000円
    (燃費=35km/L、1L=135円、走行距離=7000kmで計算)
  • 初回点検・・・無料(YSPで新車購入した場合、初回点検は無料でした)
  • 1年点検・・・17,000円
  • 駐車場代・・・自宅敷地内のため無料。駅周辺では借りれる場所が無いため使えず。
  • 任意保険・・・約20,000円
    総額64,000円

超ざっくりですが、10万もかからない計算になりました。月額換算だと約5000円です。僕が借りてるレンタルサーバより安いですね…。

まとめ

今後も1年ないし半年に一回くらいの頻度で点検に出そうと思っています。長く乗りたいものですねー。

WindowsのPCをshutdownする際、更新プログラムを走らせずにさっさと帰宅したい時に使うチョイ技

Windowsのアップデートって頻回過ぎませんか!?
仕事が終わってPCをシャットダウンしようとすると、更新プログラムを適用してます~みたいなのが出てきてなかなか電源が落ちず、早く早く!ってなった経験がある方は多いかと思います。
そんな皆様に、素敵なコマンドをお教えします。

1. Windowsキー + Rで 「cmd」と打ってエンターキーを叩きます
2. 背景が真っ黒なウィンドウが立ち上がるので、「shutdown /s /t 0」と入力してエンターを叩きます。
3. Windows Updateが控えてようが、問答無用でPCがshutdown動作に入って、落ちます。

このコマンドによってPCが壊れたりはしませんのでご安心ください。ただ、Windows Updateが当たらないことは事実なので、時間に余裕がある時に、普通にシャットダウンしてWindows Updateを当ててあげてください。

インフラエンジニアにおける資格について思うこと

先日、資格というのは自信の無さを証明するもの~みたいな話を聞いて、この記事を書こうと思いました。
まず、インフラエンジニアとして 比較的、取得者数が多いと思われる資格を列挙しますね。(一切調査無しの、僕の経験と感覚による主観です)

民間資格

  • LPIC(LPI主催、Linux特化)
  • CCNA, CCNP, CCIE(Cisco社主催、ネットワーク特化)
  • Oracle Master(Oracle社主催、データベース特化)
  • AWS認定資格(Amazon主催、クラウド特化)
  • TOEIC(英語)

国家資格

  • 基本情報技術者(FE)
  • 応用情報技術者(AP)
  • ネットワークスペシャリスト(NW)
  • 情報処理安全確保支援士(SC)

だいたいこのくらいだと思います。民間資格だとLPIC, CCNAあたりは定番で、新入社員が取らされることの多い資格です。
国家資格だと、基本情報技術者は学生の時に取得する人もいるほどの超定番です。ネットワークスペシャリストとか情報処理安全確保支援士は、試験の出題範囲が広すぎるので、数年の業務経験が無いと厳しいかな。

上記に挙げた資格って、別に無くても仕事は出来るんですよね。医師やトラックの運転手みたいに、資格(免許)を取得していないと業務に従事できないわけではないので(*1)、インフラエンジニアにおける資格の取得というのは、つまるところ給与・評価アップのためか、自己満足なわけです。

(*1 情報処理安全確保支援士は士業ですが、今の段階では前身のセキュリティスペシャリストを名前変えしただけで、実際に仕事をしている側からすると、他の国家資格と同等の扱いと見られています。)

で!で、ですね。僕の話になってしまって恐縮なのですが、先日、新しい案件の面談を受けてきました。面談時にはスキルシートって言う履歴書みたいなやつを持っていって自己アピールをするのですが、その際に資格が役に立つんですね。
スキルシートに資格名を記載しておくと、自分のスキルについて説明をする手間が省けるのです。
例えばスキルシートの資格取得欄にCCNAって書いてあれば、面談の担当者さんは「あぁ、OSPFとかSTPとかネットワークの用語は通じるし、ciscoのコマンドも知ってるし、サブネットの概念も把握してるんだな」と瞬時に理解して頂けるので、面談担当者さんとの会話がスムーズに進みます。
仮にCCNAレベルの知識を持っていたとしても、それを口頭で説明するのって結構大変なんです。限られた時間の中で自己アピールをするのに、CCNAって書いてあれば秒で終わる話が技術レベルの説明だけで10分かかったりするわけですね。もったいない!その10分で、過去の経験談を語ったほうが、好印象です。

まとめますね。インフラエンジニアに特化したまとめですよ。

  • 資格というのは一定の知識(経験ではない)を保証してくれるものですよ
  • 資格をスキルシートに書いておくと面談がスムーズに進むよ
  • 資格が無くても仕事が出来る人はたくさんいるので、資格でマウントを取るのはだめだよ、絶対
  • 自分のスキルに自信が無くて不安なら、資格取得という名目で自信をつけるのも全然ありですよ
  • でも、資格があるからと言って仕事が出来るようになるわけではないから慢心しないでね

医療と同じで日進月歩のIT業界です。 日々の勉強を怠らないようにしましょう。
周りから意識高いって言われるのが嫌だ?そんな環境に身を置いてるなら、今すぐ転職活動をしましょう。学び続けないと、置いてかれますよん。

以上です!長らくお付き合い頂き、ありがとうございました。