投稿

2月, 2023の投稿を表示しています

GA4イベントパラメーターの100文字制限

Google AnalyticsをGA4に移行した後イベントパラメーターが100文字(100 bytes)までしか取得できていなくて調査したときの覚書。 環境: Google Analytics GA4, Google Tag Manager imgタグのsrc属性値をイベントパラメーターとして送信していたけど、WordPressだと階層が深くなって途中で切れていた。 GA4イベントの制限事項は公式ドキュメントに書いてあった。 [GA4] イベントの収集に適用される制限 - アナリティクス ヘルプ カスタムJavaScriptで特定の文字列を置換 イベントパラメーターはGoogle Tag Managerの自動イベント変数(要素の属性|src)で取得していた。 このsrc属性のURL「https://hoge.jp/wp-content/themes/」が固有値(約40文字)なので、これをReplaceできれば100文字に収まる。 ユーザー定義変数のカスタムJavaScriptでやってみる。 公式ドキュメントを見ながら。 User-defined variable types for web - Tag Manager Help クリックされたsrc属性値を取得するカスタムJavaScriptの例 function() {   var elem = {{Click Element}};   var src = elem.getAttribute('src');      if (src) {     src = src.replace(document.location.protocol + '//', '');     src = src.replace(document.location.host, '');     src = src.replace('/wp-content/themes/', '');   }   return src; } プレビューで値を確認して公開する。 【関連記事】 Google Analytics(GA4)はデータ保存、可視化するのはLooker Studioの役目。 Google Analytics 4...

Nginxのfastcgi_buffer_sizeを設定

サーバーのエラーログを確認していたら下記エラーが出力されていたので調査したときの覚書。 環境: CentOS Stream 8, CPU:4コア, メモリ:4GB エラー確認 # less /var/log/nginx/error.log fastcgi_buffer_size 4096 is not enough for cache key, it should be increased to at least 8192 fastcgi_buffer_sizeはphp-fpmなどのFastCGIのレスポンスをキャッシュする。 レスポンスヘッダー部分は常にキャッシュしようとするが、それさえもキャッシュできない場合上記エラーとなる。 参考:  Module ngx_http_fastcgi_module fastcgi_buffer_sizeとfastcgi_buffersが設定してなかったので設定する。 下記のように設定変更した。 リバースプロキシとFastCGIで合計512MBメモリ消費する計算。 # less fastcgi_php.conf # Buffer size proxy_buffer_size 32k; proxy_buffers 8 32k; fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; テストして再読み込み。 # nginx -t # systemctl reload nginx topコマンドの後、M(Shift + m)でメモリ使用順で並び替えてみて確認する。 VIRT: 仮想メモリサイズ RES: 物理メモリサイズ SHR: 共有メモリサイズ 定期的にエラーログを確認する。 【関連記事】 MariaDBのチューニング設定(2023年2月版) CentOS Stream 8 + Nginx + PHP + MariaDB + Postfixの環境を構築(2021年版) Nginxを設定してWordPressにリバースプロキシする

送信ドメイン認証DMARCとは?DMARC対応。

SPFとDKIMは対応済みでDMARCは導入しなくてもいいかなと思っていたけれど、ARC(Authenticated Received Chain)を導入するついでにやってしまおうと調査しているときの覚書。 環境: CentOS Stream 9, Postfix 3.5.9, OpenDMARC  1.DMARCとは? DMARCはDomain-based Message Authentication, Reporting and Conformanceの略。 メールヘッダーのFROMとSPF/DKIMから送信者ドメインを検証する仕組み。 DMARCをpassしていれば送信者ドメインが管理下にあることを証明できる。 SPFとDKIMだけでは、両方passする偽装メールは可能らしい。 参考:  DMARCの認証ってSPFやDKIMと何が違うんですか?を説明してみる。|藤田紀行(株式会社WOW WORLD CTO)|note また自社になりすました(可能性のある)メールのレポートを受け取ることができる。 ドメイン管理者がなりすまし状況を認識しセキュリティ意識を高めることに繋がる。 メール送信するだけならDNSのtxtレコードにdmarc用の記述するだけでOK. 参考サイト ドメイン認証技術「DMARC」について - Yahoo!メール DMARC を使用してなりすましと迷惑メールを防止する - Google Workspace 管理者 ヘルプ FAQ - DMARC Wiki メール転送やメーリングリストを運用している場合は、転送先でSPFとDKIMの検証に失敗する可能性があるので、ARC(Authenticated Received Chain)も対応が必要。 2.DMARCレコードをDNSに記述 SPFとDKIMを導入済みであれば、DMARCレコードをDNSに追加するだけで対応完了。 value domainなら下記のように_dmarcサブドメインにtxt行を指定する。 txt _dmarc v=DMARC1; p=none; rua=mailto:hoge@gmail.com 各意味は下記サイトを参考に。 Overview – dmarc.org DMARC を使用してメールを検証する、セットアップ手順 - Office 365 | ...

CentOS9にOpenARCをインストール

最近のメールサーバーはARC(Authenticated Received Chain)を付けるのがお作法らしいのでやってみたときの覚書。 環境: CentOS Steam 9, Postfix 3.5.9, OpenARC 1.0.0 OpenARCはEPELリポジトリにある。 OpenDKIMはインストール&設定済み。 参考サイト GitHub - trusteddomainproject/OpenARC: Open source ARC implementation Install OpenARC on CentOS 7 with epel-repo ← RootLinks Co., Ltd. dnf経由でインストール。 # dnf install openarc 設定ファイルを確認 # less /etc/openarc.conf OpenDKIMと同じ秘密鍵を使うのでコピーする。 (サービスの起動ユーザーが違うので同じ場所を参照してもエラーになる) # cp /etc/opendkim/keys/hoge.jp/indigo02.private /etc/openarc/ # chown openarc. /etc/openarc/indigo02.private 設定ファイル編集。 参考になるのがサンプルしかなさそう。 参考:  OpenARC/openarc.conf.sample at master · trusteddomainproject/OpenARC · GitHub # less /etc/openarc.conf ## See openarc.conf(5) or /usr/share/doc/openarc-1.0.0/openarc.conf.sample for more PidFile /run/openarc/openarc.pid Syslog  yes UserID  openarc:openarc Socket  inet:8893@localhost SignHeaders to,subject,message-id,date,from,mime-version,dkim-signature #PeerList /etc/openarc/PeerLis...

ARC(Authenticated Received Chain)とは?

Microsoft 365を設定して久しぶりにメールヘッダーを見ていたら「ARC-*って何?」となって調査したときの覚書。 1.ARCとは? ARCは中継メールサーバー向けに設計された認証の仕組み。 Authenticated Received Chainの略。 Gmailは2017年5月、 Microsoft 365(Exchange)は2019年10月 にARC対応開始。 参考サイト Authenticated Received Chain - Wikipedia Microsoft “enabled” ARC in Office 365 – ARC Specification for Email ARC について | なりすまし対策ポータル ナリタイ 送信ドメイン認証まとめ(SPF、DKIM、DMARC、ARC)(+BIMI) - 朝から昼寝 DKIMとSPFだけだと、メーリングリストのように中継メールサーバーが再配信を行う場合、受け取ったユーザーは最初の送信者の経路を検証できない。 例えばメーリングリスト用に件名を変更してしまうとDKIM認証で失敗する。 他にはウイルス対策でメールをスキャンし、本文を変更するとDKIM認証で失敗する。 そのため中継ごとにARC-*で検証結果を記録していく仕組み。 2.最初の送信時にARC署名はいらない? 最初にARC署名する必要はない。 GmailやMicrosoft Exchangeは最初からARC署名している。 参考:  ARC認証の整理しておきたいポイント - 朝から昼寝 ARC署名が受信者の郵便ポストへ届くまでに追加した配送拠点のサインだと考えると、最初のメールサーバーでARC署名しておく方が分かりやすいと思う。 ただしARC対応するメリットはない。 ARCまでいったならDMARCもやっておいた方がいい。 【関連記事】 Microsoft 365 ExchangeにDKIMを設定 送信ドメイン認証のDMARCを設定 PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる PostfixにSPFとDKIMと暗号化の設定まとめ

Microsoft 365 ExchangeにDKIMを設定

Microsoft 365 Exchange経由でメールを送信するときにDKIM(送信ドメイン認証)を設定したときの覚書。 環境: Microsoft 365 Business Standard 公式ドキュメントを参考に。 カスタム ドメインで DKIM をメールに使用する方法 - Office 365 | Microsoft Learn Microsoft 365 Defender > ポリシーとルール > 脅威ポリシー > メールの認証の設定 > DKIM > ドメインを選択 > DKIMキーの作成 表示された値をDNSに設定する。 value domainでは次のようになる。 cname selector1._domainkey selector1-hoge-jp._domainkey.hoge.onmicrosoft.com. cname selector2._domainkey selector2-hoge-jp._domainkey.hoge.onmicrosoft.com. nslookupで確認した後、DKIM署名を有効にする。 エラーになった。 約2時間後に再実行したら有効にできた。 メール送信してヘッダーを確認する。 【関連記事】 Microsoft 365 Exchangeで別メールアドレスを受信/エイリアス機能 Microsoft Defenderとは?Windows Defenderとの違い。 CentOS Stream 9にOpenDKIMをインストールするときはcrbリポジトリを有効にする

Microsoft 365 Exchangeで別メールアドレスを受信/エイリアス機能

Microsoft 365に移行してメール設定しているときの覚書。 「info@hoge.jp」のメールも受信できるようにしたい。 Google Workspaceではメールエイリアス機能で簡単に追加できた。 参考:  予備のメールアドレス(メール エイリアス)を追加または削除する - Google Workspace 管理者 ヘルプ 環境: Microsoft 365 Business Standard 1.共有メールボックス MS Exchangeには共有メールボックスという機能がある。 参考:  共有メールボックスについて - Microsoft 365 admin | Microsoft Learn 下記サイトの説明が分かりやすかった。 【Exchange】共有メールボックスを作成して複数メンバーでメール共有! メリット/デメリット アカウントとは別に50GBのデータを保存可能。 そのメールアドレスを差出人(送信元)として返信可能。 Outlookで共有メールボックスを設定で追加しないと確認できない。気付かない。 メールボックス自体が分かれているのでメールを探しやすい。 タグ付け/フィルタ/検索の文化がない人はこちらの方が使いやすいと思う。 2.配布リスト メーリングリストみたいにメンバー全員に転送される。 参考:  Exchange Online で配布グループを作成して管理する | Microsoft Learn 作成方法 Microsoft 365 管理センター > チームとグループ > 配布リスト > グループの追加 「配布」を選択。 所有者には配送されない。メンバーのみに配送される。 最後にメールアドレスを入力する。組織外からの送信を許可。 メールは個人Gmailへ転送してGmailがいい感じに振り分けてくれるので、配布リストが求めていた機能。 配布リストのメールアドレスは複数指定できるので、info, nginx, rootなどサーバーの送信元になるメールアドレスも追加しておいた。 【関連記事】 Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定 Google WorkspaceからMicrosoft 365への移行を検討

Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定

Microsoft 365 ExchangeをGoogle Workspaceを使ってた頃並みに使いやすくしようと試行錯誤しているときの覚書。 環境: Microsoft 365 Business Standard 1.OutlookからGmailにメール転送 Google Workspaceでも個人Gmailに転送して便利だったので、ExchangeでもGmailに転送したい。 Gmailの何が便利か。 クラウドなのでブラウザがあればどこからでもメール確認できる。 自動で賢くカテゴリー分けしてくれる。 迷惑メールフィルタが賢い。 今まで設定したフィルタ(自動振り分け)機能の資産を活かせる。 保存容量を安く追加購入できる(空き容量を気にしなくていい)。 ちなみに20年間使ったGmailの使用量は9.54GB Outlookに届いたメールを転送する設定。 クラウド版Outlook > 右上の設定アイコン > Outlookのすべての設定を表示 > 転送を有効 にするをチェック。 Gmailアドレスを入力。 Gmailエイリアス機能の「+outlook」とかで設定しておく。 試してみると下記エラー Delivery has failed to these recipients or groups: Your message wasn't delivered because the recipient's email provider rejected it. Remote Server returned '550 5.7.520 Access denied, Your organization does not allow external forwarding. Please contact your administrator for further assistance. AS(7555)' コミュニティサイトで同様の情報があった。 参考:  外部メール アドレスへの自動転送がブロックされる - Microsoft コミュニティ 書いてある通り設定する(画面構成が変わっている)。 Microsoft365管理センター > セキュリティ >ポリシーとルール > 脅威ポリシー > 迷惑メール対策 > 迷惑メール対策の受信ポリシー(規定)...

GmailからMicrosoft365のメールを送受信できるように設定(調査編)

Google WorkspaceからMicrosoft 365へ移行しているときの覚書。 メールは個人Gmailへ集約しているので、Gmail上でメール送受信できるように設定したい。 環境: Microsoft 365 Business Standard 結論を先に書くと、GmailからPOP3でMicrosoft 365へアクセスできないので、メール転送とSMTP AUTHで実現した。 参考: Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定 以下は調査しているときのメモ書き。 Microsoft 365では2段階認証を有効にしているため、GmailからPOPでMicrosoft 365でアクセスするには専用の一時的なパスワードを生成する必要がある。 参考:  2 段階認証用のアプリ パスワードを管理する - Microsoft サポート 1.ユーザーにアプリパスワードを許可する Microsoft 365 管理センター > ユーザー > アクティブなユーザー > 多要素認証で、サービス設定(画面上にあって分かりにくい)を選択。 「ブラウザーではないアプリケーションへのサインイン用にアプリケーション パスワードの作成を許可する」をチェック(既にチェックが付いていた)。 ユーザー一覧に戻って、ユーザーを選択。 quick stepsを有効にする。 「multi-factor authを有効にする」 2.アプリパスワードの発行 Microsoft365アカウントのセキュリティ情報 > サインイン方法の追加 「どの方法を使用しますか?」でアプリパスワードが選択肢にない。 アプリパスワードは先進認証では機能しないらしい。 参考:  Azure AD Multi-Factor Authentication のアプリ パスワードを構成する - Azure Active Directory - Microsoft Entra | Microsoft Learn 先進認証って何? 同じ現象で質問が上がってた 参考:  outlook(office365)へのメールをGmailに転送するとgoogle側のサーバーでrejectされる - Gmail コミュニティ 3.基本認証と先進認証 基本認証はユーザー名...

Google WorkspaceからMicrosoft 365への移行を検討

Microsoft 365 Business Premiumを契約してIntuneを試したい。 そうなるとGoogle WorkspaceからMicrosoft 365に完全移行した方がいいのでは?と思って調査しているときの覚書。 現在の環境 Google Workspace: Business Starter(月額680円/1ユーザー) Microsoft 365: Business Standard(月額1,360円/1ユーザー) メール(ドメイン)はGoogle Workspaceを使っている 参考サイト Google Workspace(旧称 G Suite): お支払いプラン Microsoft 365 のすべてのプランを比較 | Microsoft Google Workspaceを解約する理由 Microsoft 365 Business Premium(月額2,390円/1ユーザー)にするならGoogle Workspace(月額680円/1ユーザー)を解約して節約したい。 個人としてはGoogleが好き。 会社としてはマシン管理、オフィスアプリ、オンライン打合せ、顧客企業へのセキュリティ対策提案などを考えるとMicrosoft 365になってしまう。 1.GmailとExchange メールは個人Gmailに転送していてMTA(メール転送エージェント)として使っているだけなので、切り替えても大丈夫そう。 参考:  エンジニアから見たMTAとしてのExchange | 日々徒然 Exchangeは宛先不明を特定のメールアドレスへ転送することができない。 Microsoft 365 Exchange(Outlook)のメール容量は50GB。 ちなみに私が20年間使ったGmailの使用量は現在9.54GB。 Microsoft 365は規定で先進認証(OAuth)のみ許可しているので、GmailからExchangeのメールを送受信するのに設定変更が大変だった。 2.Googleアカウントはどうなるか? Google Workspaceを解約してもGoogleアカウントは残るらしい。 参考:  導入前に知っておきたい!Google Workspaceの解約方法と解約時の料金について徹底解説|どんとこい!Google Workspace 後...

CentOS9 + PHP8.1の環境にMecab + php-mecabをビルドしてインストール

CentOS Stream 9のVPSに形態素解析の機能をインストールしているときの覚書。 環境: CentOS Stream 9, PHP 8.1.14 ビルドに必要なツールをインストールしておく。 # dnf install make gcc-c++ libticonv php-devel 1.形態素解析「Mecab」をインストール php-mecabをビルドするためにdnf経由ではなくソースコードからビルドする。 公式サイトからダウンロード。 参考:  MeCab: Yet Another Part-of-Speech and Morphological Analyzer # cd /opt/software/ # curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -o mecab.tgz 解凍してビルド実行 # tar xzvf mecab.tgz # rm mecab.tgz # cd mecab-0.996/ # ./configure --with-charset=utf8 # make # make check # make install 確認 # which mecab /usr/local/bin/mecab 辞書をインストールする。 # cd /opt/software/ # curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -o ipadic.tgz # tar xzvf ipadic.tgz # rm ipadic.tgz # cd mecab-ipadic-2.7.0-20070801/ # ./configure --with-charset=utf-8 # make # make install 確認 # mecab -D filename:       /usr/local/lib/mecab/dic/ipadic/sys.dic vers...

短縮URLを独自ドメインで運用できる「Shlink」をインストール

Microsoft TeamsのURLが長いので短くできないものかと調べ、Shlinkをインストールしてみたときの覚書。 環境: CentOS Stream 9, nginx 1.22.1, PHP 8.1.8, shlink 3.5.1 1.Shlinkとは? オープンソースの自前ホストにインストールして運用できる短縮URLシステム。 独自ドメインの短縮URLが生成可能になる。 ウェブ管理ツールのweb clientと分離されている。 web clientがなくてもコマンドラインで短縮URLの生成が可能。 web client自体もオープンソースで配布されている。 Shlink公式サイト/GitHubリポジトリ Shlink — The URL shortener shlinkio/shlink: The definitive self-hosted URL shortener PHP 8.1以上が必要。 2.Shlinkをソースからビルド(失敗) あとで分かったけど アップデート機能があるのでgit cloneする必要はない。 参考:  Shlink — The URL shortener — Documentation まずはPHP Composerをインストール。 公式サイトを参考に。 参考:  Composer # php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"...

SSHクライアントをTeraTermからWindows Terminalへ

15年以上TeraTerm Menuを便利に使っていたけれど、代替SSHクライアントはないものかと調査したときの覚書。 環境: Windows 11 pro 22H2, Windows ターミナル 1.16.10262.0 1.Windows標準のOpenSSHクライアント Windows11は標準でOpenSSHクライアントを利用できる。 gcmコマンドでパスを確認 PS> gcm ssh CommandType     Name                                               Version    Source -----------     ----                                               -------    ------ Application     ssh.exe                                            8.6.0.1    C:\Windows\System32\OpenSSH\ssh.exe OpenSSHがない場合は、設定 > アプリ > オプション機能でOpenSSHクライアントを有効にする。 2.Windows Terminalとは? Windows Termina...

CentOS Stream 9にOpenDKIMをインストールするときはcrbリポジトリを有効にする

CentOS Stream 9のPostfixをセットアップしているときの覚書。 環境: CentOS Stream 9 epelリポジトリはインストール済み。 Postfix + OpenDKIMをインストールしているときに下記エラー。 # dnf install opendkim Error:  Problem: conflicting requests   - nothing provides libmilter.so.1.0()(64bit) needed by opendkim-2.11.0-0.28.el9.x86_64   - nothing provides libmemcached.so.11()(64bit) needed by opendkim-2.11.0-0.28.el9.x86_64 依存関係になっているlibmilter.soが見つからない。 調べてみるとcrbリポジトリにあった。 # dnf install opendkim --enablerepo=crb crbリポジトリは有効にしておく # dnf config-manager --set-enabled crb 確認 # less /etc/yum.repos.d/centos.repo opendkim-genkeyコマンドはopendkim-toolsにあるのでインストール。 # dnf install opendkim-tools 設定は前の記事を参考に。 参考:  PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる PostfixのDKIM設定も忘れずに。 再起動、確認 # systemctl start opendkim # systemctl enable opendkim # systemctl status opendkim # systemctl restart postfix # systemctl status postfix sendmailで動作確認 # sendmail hoge@gmail.com postfixの送信ログを確認 # less /var/log/maillog Gmailでもソースを表示してDKIMがpassになっているか確認。 【関連記...

WebARENA IndigoのCentOS Stream 9を初期設定

WebARENA Indigoのインスタンスを作成して初期設定したときの覚書。 基本はCentOS Stream 8の時と同じ 参考:  【WebARENA Indigo】CentOS Stream8の初期設定 環境: CentOS Stream 9 rootになってアップデート。 # sudo su - # dnf update ホスト名変更 # hostnamectl set-hostname indigo01.hoge.jp # hostnamectl status タイムゾーンを日本時間 # timedatectl status # timedatectl list-timezones | grep Tokyo # timedatectl set-timezone Asia/Tokyo # timedatectl status SELinuxを確認して無効 # getenforce # less /etc/selinux/config これで再起動 # reboot コンソール画面でファイヤーウォールの設定をする。 別のインスタンスと同じ設定を適用する。 gitインストール # sudo su - # dnf install git # git --version git version 2.39.1 Gitの設定 # git config --global user.name "Hoge" # git config --global user.email "hoge@company.co.jp" GitLabの秘密鍵を登録しておく(他のサーバーからコピペ)。 # vi .ssh/id_rsa.gitlab.com # vi .ssh/config  # chmod 600 .ssh/id_rsa.gitlab.com EPELリポジトリ追加 # dnf install epel-release # dnf update certbotをインストール。 python3もインストールされるのでpipをインストール。 # dnf install certbot  # dnf install python3-pip pythonモジュール更新一覧を表示してアップグレードする。 # python -...

Windows11からVPSへのSSH(TeraTerm)が失敗する

WebARENA Indigoにインスタンスを作成して設定しているときの覚書。 環境: Windows 11 pro(AzureAD連携), TeraTerm 4.106 他のインスタンスと同様にTeraTerm Menuで接続しようとしても失敗する。 ファイヤーウォールやプライベートキーは他のインスタンスと同じなので大丈夫なはず。 参考: S SH接続でインスタンスにログインする(Indigo) – お客さまサポート PowerShellで試す。 PS> ssh -i .\private.key centos@1.2.3.4 Bad permissions. Try removing permissions for user: NT AUTHORITY\\Authenticated Users (S-1-5-11) on file D:/Projects/documents/SSH/private.key. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for '.\\private.key' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key ".\\private.key": bad permissions private.keyを右クリックして プロパティ→セキュリティ→詳細設定→アクセス許可の変更→継承の無効化 Authenticated UsersとUsersを削除 してもダメだった。 このPCはAzureADと接続していて、名前の確認でAzureADを検索できない。 なので、他のユーザーがアクセ...

Google Analytics(GA4)はデータ収集と処理、保存はBigQuery、可視化はLooker Studioの役目。

Google Analyticsで旧プロパティ(ユニバーサルアナリティクス)が2023年7月1日で停止するということで、移行しているときの覚書。 「サイトの速度」など旧プロパティで表示されていた項目がGA4ではなくなっている。 今まではGoogle Analyticsが全部いい感じに表示してくれたので使いやすかった。 GA4ではアプリのアクセス解析もできるように汎用的に設計されて、Google Marketing Platformの各ツールで役割分担するようになっている。 参考:  Google Marketing Platform - Wikipedia Google Analytics: 行動履歴の収集と処理 Google TagManager: データ収集用のトラッキングコード管理 BigQuery: データの保存と分析 Looker Studio(旧名: Data Studio): 可視化レポートツール。 Google Search Console: 管理ウェブサイトのGoogle検索管理コンソール PageSpeed Insights: ウェブサイトのパフォーマンス測定と診断 データ分析フローの 収集 → 処理 → 保存 → 分析 → 可視化 をイメージするとGoogleさんの気持ちがわかる。 参考:  Build 07:Looker Studio によるデータの可視化 - YouTube つまりGoogle Analyticsの旧プロパティでは収集~可視化まで全部やっていたのを役割分担して高度なデータ分析ができるようになった。 GA4の探索ページは文字通り一時的な調査用。 Looker Studioを使った方が長い文字列を置換する関数やIF文など用意されているので見やすくできる。 参考:  Function references - Looker Studio Help ただしGA4はデフォルトで2ヵ月しかデータ保持しない(14ヵ月まで延長可能)ので、BigQueryにエクスポート設定するのを忘れずに。 【関連記事】 Google Analytics 4 + Google Tag Managerでイベント設定 Google Analytics4(GA4)の特徴と今までとの違い 機械学習プロジェクトの進め方:CRISP-DM

Adobe Premiere Proのキーボードショートカットと表示設定

動画作成しようとしたときにはショートカットを忘れているので覚書。 環境: Windows 11 Pro, Adobe Premiere Pro 23.1.0 Adobe公式のヘルプページはこちら。 Premiere Pro のキーボードショートカット 変更したシーケンス(タイムライン編集)のショートカット E: 編集点を追加 Q(前の編集点までリップルトリミング)とW(次の編集点までリップルトリミング)を組み合わせる。 Alt + →: 次のキーフレームを選択 Alt + ←: 前のキーフレームを選択 Logi Options+の設定 水平スクロールの下のボタンをAlt+←とAlt+→(キーフレームを選択)のキーボードショートカット その他 プログラムパネル(プレビュー画面)ではルーラーを右クリックして「ルーラー上のタイムコードを表示」 エフェクトは「よく使う」フォルダを作成して、クロスディゾルブとコンスタントゲインを入れておく。 追記予定。 【関連記事】 Adobe Illustratorでウェブデザインをする際の設定

WordPressのUPDATE wp_optionsが遅い? → flush_rewrite_rulesが原因

MariaDBのslow_logを眺めていたらUPDATE wp_optionsに1秒掛かっていたので調査したときの覚書。 環境: CentOS Stream 8, MariaDB Server 10.5.9, WordPress 6.1.1 1.遅いSQL文を調査 MariaDBのslog_logはテーブルに保存するように設定(CSV engine)してある。 # less /etc/my.cnf.d/mariadb-server.cnf # Slow Query slow_query_log = ON long_query_time = 1 log_output = TABLE MariaDBのdatadir内に保存されたslow_logファイルを参照する。 # less /var/lib/mysql/mysql/slow_log.CSV よく表示されているのが次のupdate文。 UPDATE `wp_options` SET `option_value` = '' WHERE `option_name` = 'rewrite_rules' なぜかrewrite_rulesの値を更新している。 ソースコードを追ってみると、これはwp-includes/class-wp-rewite.phpのflush_rules()で実行される。 ページ読み込み時に毎回実行されている。なぜ? flush_rules()を呼び出すのはflush_rewrite_rules() どんな駄目プラグインがflush_rewrite_rules()を呼ぶのかとdebug_backtrace()を置いて実行してみると。。。 参考:  PHP: debug_backtrace - Manual 自作プラグインが呼んでた。。。(泣) rest_url_prefixをフックしたときに呼んでる。 セキュリティ的な理由で/wp-json/から変更したいときにやってた。 2年前の覚書:  WordPressの/wp-json/を変更したい この記事を参考にした人は本当にごめんなさい。 何でflush_rewrite_rules()を記載したのかもう忘れた。 とりあえず削除する。 autoloadが原因で遅くなる場合もあるらしい。 参考:  WordPr...

MariaDBのチューニング設定(2023年2月版)

slow_logを眺めていたら「遅いの多くね?」と思って調査したときの覚書。 環境: CentOS Stream 8, MariaDB 10.5.9 ほぼWordPress用のデータベース。 InnoDBエンジンしか使っていない(systemは除く)。 1.MySQLTunerを実行 MariaDBにも対応しているチューニング設定を確認してくれるスクリプトをインストールする。 参考:  major/MySQLTuner-perl: MySQLTuner is a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability. # cd /opt/software/ # git clone https://github.com/major/MySQLTuner-perl.git # cd MySQLTuner-perl/ # git tag # git checkout v1.9.9 # perl mysqltuner.pl [!!]になっているところを調べて修正していく。 2.設定変数を調べて理解していく 設定値のメモ。 phpMyAdminのVariablesで現在の値と説明を見るのが早い。 共通設定 skip-name-resolve: クライアントのIPアドレスを逆引きする機能を無効。 query_cache_type(default:OFF): MairaDB 10.1からはquery_cache_size値で自動設定されるので設定不要。 table_open_cache(default:2000): 同時に開かれるテーブル数。 table_definition_cache(default:400): テーブル定義をキャッシュする数。tableの総数が多い場合は引き上げた方がいい。 performance_schema(default:OFF): SQL実行パフォーマンス情報を取得する機能 join_buffer_size(default:256K): インデックスを使わない場合の最小メモ...