Ubuntu 16.04 LTS で MySQL のスロークエリログを出力する方法

スロークエリログ

一定の条件を設定し、それを満たす(満たしてしまう)クエリに対してログを吐き出す設定です。パフォーマンス改善などに役立ちます。

設定ファイル

以下のファイルに追記します。

/etc/mysql/mysql.conf.d/mysqld.cnf

設定内容(設定項目)

以下の項目を設定しておけばいいでしょう。他にも項目がありますが、公式リファレンスを参照してみてください。

  • slow_query_log
    • スロークエリログの有効無効を設定する
    • 0 or 1 または OFF or ON で設定する
  • slow_query_log_file
    • 出力するログファイルの場所を設定する
    • /var/log/mysql/slow_query.log など
  • long_query_time
    • ここで指定した数値(単位は秒)以上の時間がかかったクエリを記録する
  • log_queries_not_using_indexes
    • インデックスを使用しなかったクエリを記録するかどうかを設定する
    • 0 or 1 または OFF or ON で設定する

設定例

例えば以下のように追記します。追記した後は再起動を忘れないようにしましょう。

slow_query_log = ON
slow_query_log_file = /var/log/mysql/slow_query.log
long_query_time = 3
log_queries_not_using_indexes = ON

Fluentd の tail Input Plugin で CSV ファイルを読み込む際は read_from_head を true にする

Fluentd で CSV ファイルを読み込む

Fluentd を用いて CSV ファイルを読み込む際は、tail Input Plugin を用いるのが定石だと思います。formatcsvが指定できますし。

待てど暮らせど出力してくれない

しかしながら、以下のような感じで conf ファイルを書いても一向に出力してくれません。

<source>
  @type tail
  format csv
  path /path/to/sample.csv
  tag hogehoge
  pos_file /path/to/sample.csv.pos
  keys column_1,column_2,column_3
</source>

<match **>
  @type file
  path /path/to/sample.csv.log
</match>

read_from_head オプション

上記の書き方ですと CSV ファイルの読み込みを初めてする場合は入力がありません。ですので、read_from_headディレクティブを付けてその値をtrueと指定しましょう。

<source>
  @type tail
  format csv
  path /path/to/sample.csv
  tag hogehoge
  pos_file /path/to/sample.csv.pos
  keys column_1,column_2,column_3
  read_from_head true
</source>

<match **>
  @type file
  path /path/to/sample.csv.log
</match>

これでちゃんと CSV ファイルを読み込んでくれたはずです。ただ、このオプションを常時trueにしていると毎回先頭から読み込んでしまう(?)かもしれないので要検討です*1

*1:posファイルがあるから大丈夫?

Ubuntu 16.04 LTS に PostgreSQL の最新版をインストールする

PostgreSQL の最新版をインストール

デフォルトのリポジトリに対して公式リポジトリを追加して、apt-getPostgreSQLの最新版をインストールします。

公式ページ

やり方は以下のページに書いてあります。

PostgreSQL: Linux downloads (Ubuntu)

具体的方法(準備)

  • /etc/apt/sources.list.d/pgdg.listを作成して以下の行を書き込む

    • deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
    • YOUR_UBUNTU_VERSION_HEREの箇所は Ubuntu 16.04 LTS ではxenialとなりますのでそのように指定してあげましょう。
  • 以下を実行する

# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
# sudo apt-get update

具体的方法(インストール)

ここでapt-get upgradeをしても 9.6(2017/01/29 時点)は入りません。明示的にバージョンを指定して入れてやります。

# apt-get install postgresql-9.6

補足

データの移行についてはくれぐれも事前に準備をしておきましょう

Powered by はてなブログ