2020年2月3日月曜日

google-fluentdの負荷が異常に高い

GCP上で稼働させているサーバ(CentOS7)のCPU負荷が異常に高いので、調査を実施

# ps aux -L
root      4897  4897 46.0    2  1.3 151648  8412 ?        Rl   06:33   0:00 /opt/google-fluentd/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/google-fl
root      4897  4898  0.0    2  1.3 151648  8412 ?        Sl   06:33   0:00 /opt/google-fluentd/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/google-fl

google-fluentdが原因?
止めてみる

# service google-fluentd status
google-fluentd is running                                  [  OK  ]
# service google-fluentd stop
Stopping google-fluentd (via systemctl):                   [  OK  ]

負荷が高いのが止まった。
取り敢えず原因調査はおいておいて、google-fluentdが稼働しないようにしてきましょう。

# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

google-fluentd  0:off   1:off   2:on    3:on    4:on    5:on    6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
stackdriver-agent       0:off   1:off   2:on    3:on    4:on    5:on    6:off
# chkconfig google-fluentd off
# chkconfig --list

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

google-fluentd  0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
stackdriver-agent       0:off   1:off   2:on    3:on    4:on    5:on    6:off

2020年2月2日日曜日

yum updateでエラー

エラーが発生
# yum update
error: rpmdb: BDB0113 Thread/process 1061/139829741492032 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

rpmdbが壊れたみたいです。

以下のコマンドで修復
# rpm --rebuilddb

以下のサイトを参考にさせていただきました。
CentOSのrpmdbが壊れてyumコマンドが失敗する場合の修正方法

2020年1月25日土曜日

「IPアドレス計算API」を公開しました!

「IPアドレス計算API」を公開しました!

IPアドレス計算APIとは何を計算してくれるのかというと、レンジ計算です。
例えば、192.168.1.1/24を指定した場合、ネットワークは192.168.1.0から192.168.1.255だよ、というのを計算してくれます。
プレフィックス長が24だと分かりやすいですが、25とか27だと計算しにくいですからね。

また、この機能はIPv6にも対応しています!
今回は、自分自身のIPv6に関する理解を深めるという意味合いで作ってみた側面もあるのです。

次はこのAPIを利用してWebページを作りたいと思います。
そこまで時間はかからないでしょう!

2020年1月11日土曜日

「ニフクラ情報取得(β)」のエンハンスを行いました!

先日公開したばかりの「ニフクラ情報取得(β)」ですが、早速ですが機能追加(というか修正)を行いました。

変更点は以下のとおりです。
サーバー(instance)の取得情報に以下を追加
・サーバーユニークID
・作成元イメージ

作成元イメージについては、うまく取得できない場合もあります。これは毎回イメージリストを取得しに行っているのですが、昔あったイメージが無くなっていて、サーバーが持っているの作成元イメージ番号との紐付けが出来ないからだと思われます。これはもう、仕方がないですね。。。

2020年1月9日木曜日

「ニフクラ情報取得(β)」を公開しました!

昨年から開発を進めていた「ニフクラ情報取得(β)」を公開しました!
2020年最初の機能追加ですね。

「ニフクラ情報取得(β)」はニフクラ上に作成したリソース情報を取得し、表示してくれます。また、表示した結果と同様の内容をCSV形式でダウンロードすることが可能です。この情報をダウンロードできる、というのが肝です!

今回のこの機能は自分が欲しかったものです。仕事柄、様々なクラウドを使っているのですが、クラウドでは構成管理や確認のために設定情報や配備したリソースをローカルに落とす必要がある場合があります。AzureやAWSなどではこういう情報をコマンドなどで取得する方法、というのが少しググればたくさん出てきます。しかし、ニフクラなどの国産クラウドだと、あまり情報がないんですよね。スクリプトを作成しようかな、と思ったのですが、折角なのでWebベースで作成してみました。

「β」としているのは、全てのリソース(主にネットワーク系)の情報取得に対応していない、仮想サーバの情報取得についても作成元のイメージ情報を取得できていない、といった、まだ改善事項があるためです。時間が取れれば、今後エンハンスをしていきたいと思います。

最後に、「ニフクラ情報取得(β)」のページにも記載しているのですが、クラウドのユーザ情報の管理は極めて重要な事項です。安易に(自分で書くのもなんですが)怪しいサイトに入力してはいけません。今回、認証情報自体はサーバ側に残らないようにしていますし、取得した情報も自動的に削除されるようにするなど、情報漏えい対策は実施しています。が、利用、及びアカウント管理についてはご利用の方の責任で管理頂くよう、お願いします。

2020年1月8日水曜日

2020年の開発目標

年が明けてから早いもので1週間と少し経ってしまいました。バタバタしていると、あっという間に時間が過ぎていきますね。。。

Suama Online Serviceは2018年9月15日の公開を開始し、少しずつ機能を追加してきています。現在15の機能がありますが、2018年に公開したものが10、2019年に公開したものが5と、昨年は開発スピードが落ちてしまっています。(というか、2018年がやる気すぎました。)今年は2020年代最初の年、ということで気持ちを新たに頑張っていきたいと考えています。ということで、一応開発関連の目標を立てててみました。

目標は以下の3つです。

  1. Suama Online Serviceの機能を10個、新規開発、もしくは機能改善する
  2. 新たに1つサービスを立ち上げる(WEBサービスタイプ)
  3. 新たに1つサービスを立ち上げる(コンテンツ生成タイプ)

1つ目はこれまで実施してきたのの継続ですね。様々なことを試行錯誤する場としてSuama Online Serviceを作ったので、引き続き気楽に実施していきたいと思います。
2つ目、3つ目についてはもう構想は2年くらいあるのですが、未だに着手出来ていません。ということで、今年こそ少なくとも着手したいと思います。

話が脱線しますが、構想〇〇年ってあまり意味ないですよね。自分も構想だけならたくさんあり、温めて腐りそうになっている状態です。やはり、実際に着手することが重要かと思います。

ということで、今年の目標でした。

2020年1月5日日曜日

PHPで文字コードを変換する

文字コードの変換は以下のようにやれば簡単にできるようです。
mb_convert_encoding($str, "SJIS", "UTF-8")
Web上での表示はUTF-8で問題ないのですが、ダウンロードする場合はSJISにしたいので、調べてみました。

以下のサイトを参考にさせていただきました。
PHPで文字コードを変換する方法【初心者向け】