偏屈エンジニアブログ

老害エンジニアの技術メモ

Nginx/Fluentd→MySQL環境を立てる(NG編)

Fluentdでログ飛ばす環境が欲しかったので環境構築 ubuntuのイメージは22.04LTSを選びました。

sudo apt update
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
sudo apt update
sudo apt install nginx
sudo systemctl start nginx
sudo systemctl enable nginx

カーネル設定変更

sudo vi /etc/security/limits.conf
root soft nofile 65536
root hard nofile 65536
*    soft nofile 65536
*    hard nofile 65536

TDエージェントのインストール:久々見た

sudo curl -fsSL https://toolbelt.treasuredata.com/sh/install-ubuntu-jammy-td-agent4.sh | sh
sudo usermod -aG adm td-agent
sudo systemctl start td-agent
sudo systemctl enable td-agent
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
tail -n 1 /var/log/td-agent/td-agent.log
2023-06-02 00:31:55.078780796 +0000 debug.test: {"json":"message"}

WEB側のローカルでnginxのログをtd-agentで飛ばすところまでOK。
次にスタンドアローンmysqlに飛ばしたいので、mysqlインスタンスを起動させます。

sudo apt update
sudo apt install mysql-server-8.0
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql -u root

mysqlのセキュア設定のシェルを実行したがバグなのか終了できず。
やむなく再起動したらポリシーは作成されてたのでよしとしました。
ポリシーは8文字以上、大文字、キャラクターありで通った。

sudo mysql_secure_installation

ログイン確認できたら、mysqlの設定を実施。
/etc/mysql/mysql.conf.dにあるmy.cnfでなく、mysqld.cnf側に書かれてるのでこちらを修正。
my.cnf側を修正しても上書きされるようなので注意

bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

ユーザ、データベースとテーブルを作成して、ユーザへの権限追加。
DBサーバはローカルなので、DB側は全開で設定

create user dbuser@’%’ identified by 'password' ;
create database access;
grant all privileges on access.* to 'dbuser'@'%' with grant option ;
use access;
create table nginxlog (id INT AUTO_INCREMENT PRIMARY KEY,host VARCHAR(16),user VARCHAR(200),time DATETIME,method VARCHAR(200),path VARCHAR(200),version VARCHAR(200),code  INT,size INT,referer VARCHAR(200),agent VARCHAR(200),xforwarded VARCHAR(200));

td-agentのmysqlプラグインを追加するが入らず。。。
色々調べたがうまく行かなったので一旦あきらめる。
ubuntuだとmysql2というプラグインがうまく入らないと仮説を立てる。
Redhat系だとうまく行くようなので、WEB側をRHEL8にして再挑戦

sudo apt-get install gcc ruby-dev libxslt-dev libxml2-dev zlib1g-dev
sudo apt install libmysqld-dev
sudo apt install libmysqlclient-dev
sudo td-agent-gem install fluent-plugin-mysql

参考URL:
Ubuntu22.04 nginx最新の安定版をインストールする - Qiita
MySQL 8.0 を Ubuntu 22.04 にインストールする - Qiita
https://yuta0306.github.io/mysql-remote-setup
【2023年1月版】Ubuntu20.04でfluentdのクライアントインストール - Qiita
tech-lab.sios.jp