【tech】MySQLのbinログ削除メモ



自宅のNWはZabixx4.4で監視しているのですが、Zabbix-serverにディスク容量閾値超過のアラートが出ていたので、対応したメモです。

binログはOSから削除できてしまうのですが、直接消したところで、DISK容量が空くわけではないそうです。
気になったので試してみました。

環境

MYSQL Ver 8.0




・ディスク容量の確認
df -h


[root@zabbix mysql]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 900M 0 900M 0% /dev
tmpfs 915M 0 915M 0% /dev/shm
tmpfs 915M 17M 899M 2% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/mapper/cl-root ** 14G 12G 1.9G 86% /**
/dev/vda1 976M 127M 782M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0


ルートディレクトリが残り1.9GBまで減っています。
・ルートディレクトリでファイルサイズが100MB以上のものを確認
find / -size +100M | xargs ls -lh | sort -rn


[root@zabbix mysql]# find / -size +100M | xargs ls -lh | sort -rn
-rw-r----- 1 mysql mysql 977M Feb 11 05:02 /var/lib/mysql/binlog.000008
-rw-r----- 1 mysql mysql 761M Mar 14 09:43 /var/lib/mysql/binlog.000016
-rw-r-----. 1 mysql mysql 164M Mar 14 09:43 /var/lib/mysql/zabbixDB/history_uint.ibd
-rw-r-----. 1 mysql mysql 136M Mar 14 09:43 /var/lib/mysql/zabbixDB/history_text.ibd
-rw-r-----. 1 mysql mysql 132M Mar 14 09:43 /var/lib/mysql/zabbixDB/history.ibd
-rw-r----- 1 mysql mysql 1.1G Mar 6 23:08 /var/lib/mysql/binlog.000014
-rw-r----- 1 mysql mysql 1.1G Mar 2 18:01 /var/lib/mysql/binlog.000013
-rw-r----- 1 mysql mysql 1.1G Mar 11 06:03 /var/lib/mysql/binlog.000015
-rw-r----- 1 mysql mysql 1.1G Feb 27 19:56 /var/lib/mysql/binlog.000012
-rw-r----- 1 mysql mysql 1.1G Feb 23 23:50 /var/lib/mysql/binlog.000011
-rw-r----- 1 mysql mysql 1.1G Feb 19 21:21 /var/lib/mysql/binlog.000010
-rw-r----- 1 mysql mysql 1.1G Feb 15 10:39 /var/lib/mysql/binlog.000009
[root@zabbix mysql]#


1.1GBのbinlogがたまってしまっていました。

・binlogのディレクトリまで移動
cd /var/lib/mysql/

・ファイル確認
ls -lh |grep bin


[root@zabbix mysql]# ls -lh |grep bin
-rw-r----- 1 mysql mysql 977M Feb 11 05:02 binlog.000008
-rw-r----- 1 mysql mysql 1.1G Feb 15 10:39 binlog.000009
-rw-r----- 1 mysql mysql 1.1G Feb 19 21:21 binlog.000010
-rw-r----- 1 mysql mysql 1.1G Feb 23 23:50 binlog.000011
-rw-r----- 1 mysql mysql 1.1G Feb 27 19:56 binlog.000012
-rw-r----- 1 mysql mysql 1.1G Mar 2 18:01 binlog.000013
-rw-r----- 1 mysql mysql 1.1G Mar 6 23:08 binlog.000014
-rw-r----- 1 mysql mysql 1.1G Mar 11 06:03 binlog.000015
-rw-r----- 1 mysql mysql 759M Mar 14 09:21 binlog.000016
-rw-r----- 1 mysql mysql 144 Mar 11 06:03 binlog.index
[root@zabbix mysql]#




・binlogを削除 
 ※これは悪い例です。最新のbinlog(binlog.000016)は消さないようにしましょう。MySQLが起動しなくなります。
rm -i binlog.00001[3456]

・削除後の確認
ls -lh |grep bin


[root@zabbix mysql]# ls -lh |grep bin
-rw-r----- 1 mysql mysql 977M Feb 11 05:02 binlog.000008
-rw-r----- 1 mysql mysql 1.1G Feb 15 10:39 binlog.000009
-rw-r----- 1 mysql mysql 1.1G Feb 19 21:21 binlog.000010
-rw-r----- 1 mysql mysql 1.1G Feb 23 23:50 binlog.000011
-rw-r----- 1 mysql mysql 1.1G Feb 27 19:56 binlog.000012
-rw-r----- 1 mysql mysql 144 Mar 11 06:03 binlog.index
[root@zabbix mysql]#


・容量確認
df -h


[root@zabbix mysql]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 900M 0 900M 0% /dev
tmpfs 915M 0 915M 0% /dev/shm
tmpfs 915M 17M 899M 2% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/mapper/cl-root 14G 8.3G 4.9G 63% /
/dev/vda1 976M 127M 782M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
[root@zabbix mysql]#


あれ、しっかり減ってましたね。インターネットを調べるとログを削除しただけだとDISK容量増えないと書いてあったのですが、消えるみたいですね。

正しいやり方は、以下のMySQLからの削除が正しいそうです。


MySQLからのbinlogの削除手順です!


・MySQLへログイン
mysql -u root -p
→PW入力

・バイナリログの確認
show master logs;


mysql> show master logs;
+---------------+------------+-----------+
| Log_name | File_size | Encrypted |
+---------------+------------+-----------+
| binlog.000008 | 1024407305 | No |
| binlog.000009 | 1075369878 | No |
| binlog.000010 | 1073741871 | No |
| binlog.000011 | 1076041745 | No |
| binlog.000012 | 1073741987 | No |
| binlog.000013 | 0 | No |
| binlog.000014 | 0 | No |
| binlog.000015 | 0 | No |
| binlog.000016 | 798802324 | No |
+---------------+------------+-----------+
9 rows in set (0.00 sec)


・現在のbinlogを確認
SHOW MASTER STATUS\g;


mysql> SHOW MASTER STATUS\g;
+---------------+-----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+-----------+--------------+------------------+-------------------+
| binlog.000016 | 799147773 | | | |
+---------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)




・最新のbinlogを指定してそれ以前を削除する。
PURGE MASTER LOGS TO 'binlog.000016';


mysql> PURGE MASTER LOGS TO 'binlog.000016';
Query OK, 0 rows affected (0.00 sec)


・バイナリログの確認
show master logs;


mysql> show binary logs;
+---------------+-----------+-----------+
| Log_name | File_size | Encrypted |
+---------------+-----------+-----------+
| binlog.000016 | 318661 | No |
+---------------+-----------+-----------+
1 row in set (0.00 sec)

mysql>


削除後記




実は手順の検証中、最新のbinlogを削除してしまったせいでMySQLが起動しなくなってしまいました。

・ログの確認

[root@zabbix mysql]# cat /var/log/mysql/mysqld.log
mysqld: File './binlog.000016' not found (OS errno 2 - No such file or directory)
2020-03-14T14:02:49.563579Z 0 [System] [MY-010116] [Server] /usr/libexec/mysqld (mysqld 8.0.17) starting as process 29173
2020-03-14T14:02:50.469472Z 0 [ERROR] [MY-010958] [Server] Could not open log file.
2020-03-14T14:02:50.469489Z 0 [ERROR] [MY-010041] [Server] Can't init tc log
2020-03-14T14:02:50.469700Z 0 [ERROR] [MY-010119] [Server] Aborting
2020-03-14T14:02:51.941213Z 0 [System] [MY-010910] [Server] /usr/libexec/mysqld: Shutdown complete (mysqld 8.0.17)  Source distribution.

binlog000016が見つからない。。。(さっき消しちゃったからか・・)

対処法は

ディレクトリ移動
cd /var/lib/mysql

binlog.indexの内容と、binlogファイルの実態を合わせてあげれば起動するようです。
コメントアウトだと、うまく起動しませんでした。


[root@zabbix mysql]# cat binlog.index
./binlog.000009
./binlog.000010
./binlog.000011
./binlog.000012
./binlog.000013
./binlog.000014
./binlog.000015
./binlog.000016
[root@zabbix mysql]#


→13~16を削除して、mysqlを再起動させたらうまくいきました!



久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】PowershellでAzure SQL Databaseのサイズ変更するメモ



公開:2020/01/28
更新:2020/01/28

職場でAzureを使っているのでpowershellで操作できるようになりたいと思い、先日、AzureRMなどのセットアップ手順メモを書きましたが、その続きです。

【tech】2019年12月版 Azure操作の為のPowerShell

Azure SQL Databaseのサイズ変更のコマンドメモです。
powershellってAzureRMのコマンドだったり、AzureCLIのコマンドだったり、多すぎですよね笑

環境


リソースグループ名:Test-RG
SQLサーバー名:sqlsv00
データベース名:db00
DBのサイズ:S1
変更後のDBサイズ:Basic

手順




・変数定義
$resourceGroup = "Test-RG"
 →リソースグループ名
$sqlserverName = "sqlsv00"
 →SQLサーバ名
$databaseName = "db00"
 →変更したいDB名
$dbChangeEdition = "Basic"
 →Basic、Standard、Premium、DataWarehouse、GeneralPurposeなど

$dbChangeLevel = "S1"
 →希望のサイズ。他にはP1など。Basicシリーズだと不必要

・サイズ変更のAzureRMコマンド
Set-AzureRmSqlDatabase -ResourceGroupName $resourceGroup -ServerName $sqlserverName -DatabaseName $databaseName -Edition $dbChangeEdition -RequestedServiceObjectiveName $dbChangeLevel


・Basicサイズに変更したい場合
Set-AzureRmSqlDatabase -ResourceGroupName $resourceGroup -ServerName $sqlserverName -DatabaseName $databaseName -Edition $dbChangeEdition



久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】Zabbix-agent2でNginxを監視設定するメモ



投稿:2020/1/19
更新:2020/1/19

Zabbix4.4を自宅環境に入れて監視設定している最中です。ひとまず、Zabbix-server自身にzabbix-agent2をインストールしてNginxとMySQLを監視対象として追加していっています。

ZabiixとGrafanaやPrometheusも連携できると聞いたことがあるので、挑戦してみたいと思っています!

この手順は下記のCentOS8にZabbix4.4をインストールした後のZabbix-serverで実行しています。

【tech】【Movie】KVM上のCentOS8 にNginxをインストールしてZabbix4.4を動かすメモ

私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

環境

・Zabbix-Server
 CentOS 8.0 (minimal) on KVM
  (IP:192.168.100.151)
 WEB:Nginx Ver1.16
 DB:MySQL Ver8.0.17
 MySQLDB rootユーザPW:Root123!
 zabbix用DB名:zabbixDB
 zabbixDB ユーザ:zabbixuser
 zabbixuser PW:Zabbix123!
・Zabbix-agent2
 監視用MySQLユーザ:zbx_monitor
 監視用MySQLユーザPW:Zbxmoni123!


手順




・zabbix-agent2のインストール
dnf install -y zabbix-agent2 wget

・モジュールの確認
nginx -V 2>&1 | grep -o with-http_stub_status_module

・ディレクトリ移動
cd /etc/nginx/conf.d/

・zabbix用のconfファイル編集
vi zabbix.conf

        location = /basic_status {
            stub_status on;
            access_log off;
            allow 127.0.0.1;
            allow 192.168.100.151;
            deny all;
        }



・nginxのステータス確認
systemctl status nginx

・nginxの再起動
systemctl restart nginx

・nginxのステータス確認
systemctl status nginx

・モジュールへの接続確認
curl 127.0.0.1/basic_status





ブラウザ側でマクロをlocalhost→127.0.0.1に変更



下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】Zabbix-agent2でMySQL8.0を監視する手順メモ



投稿:2020/1/18
更新:2020/1/18

Zabbix4.4を自宅環境に入れて監視設定している最中です。ひとまず、Zabbix-server自身にzabbix-agent2をインストールしてNginxとMySQLを監視対象として追加していっています。

ZabiixとGrafanaやPrometheusも連携できると聞いたことがあるので、挑戦してみたいと思っています!

この手順は下記のCentOS8にZabbix4.4をインストールした後のZabbix-serverで実行しています。

【tech】【Movie】KVM上のCentOS8 にNginxをインストールしてZabbix4.4を動かすメモ

私が使っているPC(のメモリが8GBの物)です!
私は今このPCのメモリを現在では32GBにアップグレードして使っています!笑
安くなりましたよねメモリ。SSDも安くなってるので買い換えたいです!笑

環境

・Zabbix-Server
 CentOS 8.0 (minimal) on KVM
  (IP:192.168.100.151)
 WEB:Nginx Ver1.16
 DB:MySQL Ver8.0.17
 MySQLDB rootユーザPW:Root123!
 zabbix用DB名:zabbixDB
 zabbixDB ユーザ:zabbixuser
 zabbixuser PW:Zabbix123!
・Zabbix-agent2
 監視用MySQLユーザ:zbx_monitor
 監視用MySQLユーザPW:Zbxmoni123!


手順




・zabbix-agent2のインストール
dnf install -y zabbix-agent2 wget

・テンプレートのDL
wget https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql/template_db_mysql.conf -P /etc/zabbix/zabbix_agent2.d

・ディレクトリ移動
cd /etc/zabbix/zabbix_agent2.d/

・テンプレートをリネーム
mv template_db_mysql.conf userparameter_mysql.conf


・MySQLへログイン
mysql -uroot -p
→Root123!

・ログイン中のユーザを確認する
select user();

・ユーザ一覧を表示
SELECT Host, User FROM mysql.user ;

・監視用ユーザの作成
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'Zbxmoni123!';

・ユーザの削除したい時
drop user zbx_monitor2@'%';

・パスワードを変更したい場合
SET PASSWORD FOR zbx_monitor = 'Zbxmoni123_hennkougo';

・権限の付与
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO 'zbx_monitor'@'%';


・権限の確認
SHOW GRANTS FOR 'zbx_monitor'@'%';

・データベースの一覧を確認
show databases;

・データベースを選択
use zabbixDB

・テーブル一覧
show tables;

・設定の保存
FLUSH PRIVILEGES;

・mysqlからログアウト
quit;


・ディレクトリの作成
mkdir /var/lib/zabbix

・ディレクトリの移動
cd /var/lib/zabbix

・cnfファイルの作成(※要隠しファイル「.mycnf」です)
vi .my.conf


[client]
user=zbx_monitor
password=Zbxmoni123!


・ファイル作成後の確認
ls -al

・権限の変更
chmod 600 .my.cnf

・所有者の変更
chown zabbix:zabbix .my.cnf


・zabbix-agentのステータス確認
systemctl status zabbix-agent2

・zabbix-agentの再起動
systemctl restart zabbix-agent2



下のRedmineとZabbixの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)



【tech】KVMホスト(CentOS8)をZabbix-agent2で監視してみるメモ



公開:2019/1/13
更新:2019/1/13

ZabbixをDockerで動かしたかったのですが、いまだにDockerがよくわからず、うまく動かせません。。泣
Dockerを動かせたら、家のNW機器やサーバを監視設定させたかったのですが、我慢できずに自宅のノートパソコンのCentOS8のKVM上にLinuxでZabbix4.4をインストールして監視設定しました。笑

環境


Agentインストール対象:CentOS 8.0 (minimal) KVMホスト
            (192.168.100.10)
Zabbix-Server:192.168.100.151

Agentインストール対象ホストへログイン



・zabbixのリポジトリ追加
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

・zabbix-agent2インストール
dnf install -y zabbix-agent2

・設定ファイルの更新
vi /etc/zabbix/zabbix_agent2.conf


ServerをZabbixserverのIPに書き換え
192.168.100.151

ListenPort=10050
のコメントアウトを削除

ServerActive=127.0.0.1
のアドレスを書き換え




・Zabbix-agent2のステータス確認
systemctl status zabbix-agent2

・Zabbix-agent2の自動起動設定
systemctl enable zabbix-agent2

・Zabbix-agent2の起動
systemctl start zabbix-agent2

・Zabbix-agent2のステータス確認
systemctl status zabbix-agent2

・Firewallの許可設定
firewall-cmd --add-port=10050/tcp
 ※tcpの10050ポート許可が即時反映されますが、サーバ再起動後は設定変更がクリアされます。

・許可設定が反映されたことを確認
firewall-cmd --list-ports


#firewall-cmd --list-ports
10050/tcp




・firewallの許可設定を永続的に設定する(--permanentオプション)
firewall-cmd --add-port=10050/tcp --permanent
 ※このオプションを付ければ再起動後もtcp10050の許可設定が残ります

久しぶりにみてみると、モバイルバッテリーもずいぶん安くなってるんですね!

皆さん既にやってると思いますが、 AmazonPrimeだとAmazon Music Unlimitedが月額780円でできるんですね!
最近知ってapple musicから乗り換えました。(200円ですが安い方がいいに越したことはないです笑)

下のPythonの本は kindle unlimitedで無料で読めますのでお勧めです!(30日無料期間に読んで解約もアリだと思います。笑)