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