Skip to content

ウィクムさん業務引き継ぎ

概要

ウィクムさんから引き継いだ定例業務・運用タスク・注意事項のまとめ。

項目内容
引き継ぎ日2026-04-14
対象アプリG-MAC / PIPIT / KUCHIKOMI / G-COR

日次業務

1. アプリ稼働確認

毎日、管理者権限で各アプリにログインし、2〜3画面にアクセスして正常に動作しているか確認する。

手順

  1. 管理者アカウントで各アプリにログインする(ログイン情報一覧
  2. ランダムにユーザー画面を開く(マスターユーザーの画面でも可)
  3. レビュー・インサイト・投稿などの画面を確認する(特定の画面の指定はなく、どの画面でも可)
  4. 最新のデータ(レビュー・投稿など)が表示されていれば正常

正常の判断基準

  • ログインできてユーザー画面にアクセスできれば正常
  • 最新のレビュー・インサイト・投稿が表示されていれば正常

異常の場合(最新データが表示されていない場合)

サーバー上のログファイルを確認する。確認対象のログファイルは以下の通り:

ログファイル名説明
mappy_laravelMappyアプリのログ
laravelアプリ全般のログ
entity_updateデータ更新処理のログ

エラーが見つかった場合は修正が必要。対応が難しい場合は上司や開発担当者に相談すること。

確認結果の記録

  • 記録は不要(開発者確認のためだけに記録される)

対象アプリ

アプリ備考
G-MACメインサービス
PIPITOEM版
KUCHIKOMI口コミ特化版(下記参照)
G-COROEM版

KUCHIKOMIについて

G-MAC / PIPIT / G-CORと同じ確認方法で対応可能。

他の3つとの違い

  • ダッシュボードの画面構成が異なる(アプリごとに異なるダッシュボード・ロゴが表示される仕組みになっている)
  • 検索ランキング機能(スクレイピング)がない
  • キーワード画面がない

2. ログファイル確認

SSHでサーバーに接続する手順

  1. webmaster.pem ファイルを用意する(こちらからダウンロード可能)
  2. ターミナル(Windowsの場合はコマンドプロンプトまたはPowerShell)を開く
  3. 以下のコマンドを入力してサーバーに接続する
bash
ssh -i /pemファイルのパス/webmaster.pem ec2-user@13.230.164.229

/pemファイルのパス/ の部分は、PEMファイルを保存している場所に合わせて変更する (例:ssh -i ~/Downloads/webmaster.pem ec2-user@13.230.164.229

ログファイルの場所

bash
cd gmac/laravel/storage/logs/

確認するログファイル

ファイル名説明
laravel-2026-04-23.logアプリ全般のログ(毎日作成される)
mappy_laravel-2026-04-23.logMappyアプリのログ(毎日作成される)
mappy_entity_update-2026-04-23.logデータ更新処理のログ(毎日作成される)

※ファイル名の日付部分(2026-04-23)は確認したい日付に変更する

ログファイルの確認手順

Step 1. まず権限を確認する

以下のコマンドは、更新日時が新しい順に上から20件(目安として約20日分)を表示します:

bash
ls -lat | head -20

全期間のファイルを確認したい場合はこちら:

bash
ls -la

正常な場合(ec2-userが表示される):

-rw-rw-r-- 1 ec2-user ec2-user 12345 Apr 23 00:00 mappy_laravel-2026-04-23.log

異常な場合(rootが表示される):

-rw-r--r-- 1 root root 12345 Apr 23 00:00 mappy_laravel-2026-04-23.log

Step 2. 異常な場合は権限を修正する

bash
sudo chown ec2-user:ec2-user mappy_laravel-2026-04-23.log
bash
sudo chmod 664 mappy_laravel-2026-04-23.log
bash
sudo chown ec2-user:ec2-user mappy_entity_update-2026-04-23.log
bash
sudo chmod 664 mappy_entity_update-2026-04-23.log

※コマンド内の日付(2026-04-23)は対象の日付に変更すること

Step 3. 権限以外の原因を調べる場合はエラーログを確認する

① アプリ全般のログを確認する

bash
grep "ERROR\|CRITICAL\|Exception" laravel-2026-04-23.log

② Mappyアプリのログを確認する

bash
grep "ERROR\|CRITICAL\|Exception" mappy_laravel-2026-04-23.log

③ データ更新処理のログを確認する

bash
grep "ERROR\|CRITICAL\|Exception" mappy_entity_update-2026-04-23.log

※何も表示されなければエラーなし(正常) ※コマンド内の日付(2026-04-23)は確認したい日付に変更すること

Step 4. エラーログが出た場合

エラーの内容をAIに貼り付けて、何のエラーかを確認する。その後、再度サイトを確認して不具合が続いていた場合は、エラー内容を開発チームに報告する。


3. API関連メール確認

対応が必要なメールの種類

送信元内容重要度
Meta(Instagram)Instagram APIの使用確認(年に数回)高:未対応でAPIアクセス不可になる
AWSセキュリティメール(過去にハッキングケースあり)高:未対応でMappyの機能が使えなくなる
各APIサービスAPIの変更通知要確認

対応方法

  • Meta(Instagram):メールに対応方法が記載されているので、その内容に従って早めに対応する
  • AWSセキュリティ:AWSにメッセージを送るか、同じメールスレッドに返信するか、サポート担当者に連絡する
  • アプリのセキュリティ確認メール:対応方法が記載されたメールが届くので内容を確認する。前回はヤニックさんが対応。不明な場合はヤニックさんに相談する

メールアドレスの登録について

各サービスへのメールアドレスの登録が必要な場合は、H2Tの担当者にお願いする。


4. チームからのリクエスト対応

日々発生するリクエストに都度対応する。内容は日によって異なる。


週次〜月次業務

5. OpenAIクレジット残高確認

項目内容
頻度週次〜月次
確認サイトhttps://platform.openai.com/home
対応OpenAIアカウントにログインして残高を確認
補充基準クレジット残高が 1ドル未満 になったらチャージを依頼する

チャージ依頼の手順

  1. 堀川さん(または他の担当者)に連絡する
  2. 堀川さんから梶原さんに連絡が入る
  3. 梶原さんがクレジットを追加する

6. KuchikomiチームへのSQL対応

※現在は対応なし。問題発生時の参考用に記載。

項目内容
頻度月次(毎月最初の営業日)
対象期間前月分
データベースKuchikomiデータベース
現在の対応状況プログラムが実装済みのため、現在は手動対応不要

管理画面

管理者が管理画面から直接データをダウンロード可能: https://kuchikomione.com/admin/exports(SMS&口コミデータ 口コミONE・mappy)

問題が発生した場合

レポートデータに誤りがある場合は以下を確認する:

  • 確認画面:Kuchikomiアプリ管理画面のエクスポート画面(https://kuchikomione.com/admin/exports)内の「SMS&口コミデータ(口コミONE・mappy)」セクション
  • 確認ファイルAdmin\ExportController
  • 確認関数exportSmsReviewSummary

上記の関数を確認し、必要に応じてコードを修正する。対応が難しい場合は開発担当者に相談すること。

SQLクエリ(参考・現在は使用不要)

sql
USE gmac;

WITH users_with_sms_owner AS (
  SELECT
    u.id AS user_id,
    u.login_id,
    COALESCE(
      g.user_id,
      CASE
        WHEN NOT EXISTS (
          SELECT 1 FROM mappy_groups mg WHERE mg.user_id = u.id
        ) AND u.parent_user_id IS NOT NULL THEN
          CASE
            WHEN u.parent_user_id IN (
              SELECT id FROM mappy_users WHERE user_type = 3
            ) THEN u.id
            ELSE u.parent_user_id
          END
        ELSE u.id
      END
    ) AS sms_owner_user_id
  FROM mappy_users u
  LEFT JOIN mappy_groups g ON u.id = g.account_id
),

owner_locations AS (
  SELECT DISTINCT
    uw.sms_owner_user_id,
    igl.gbp_location_id,
    uw.login_id,
    loc.title AS store_title,
    sc.store_code
  FROM mappy_integrated_gbp_locations igl
  JOIN users_with_sms_owner uw ON igl.user_id = uw.user_id
  JOIN mappy_gbp_locations loc ON igl.gbp_location_id = loc.id
  JOIN mappy_gbp_locations_store_codes sc ON loc.id = sc.gbp_location_id
),

sms_counts AS (
  SELECT
    user_id AS sms_owner_user_id,
    gbp_location_id,
    SUM(CASE WHEN sms_type = 1 THEN 1 ELSE 0 END) AS sms_type_1_count,
    SUM(CASE WHEN sms_type = 2 THEN 1 ELSE 0 END) AS sms_type_2_count
  FROM mappy_sms_logs
  WHERE created_at BETWEEN '2026-02-01 00:00:00' AND '2026-02-28 23:59:59'
  GROUP BY user_id, gbp_location_id
),

review_counts AS (
  SELECT
    gbp_location_id,
    SUM(CASE WHEN create_time BETWEEN '2026-02-01 00:00:00' AND '2026-02-28 23:59:59' THEN 1 ELSE 0 END) AS monthly_review_count,
    COUNT(*) AS all_time_review_count
  FROM mappy_gbp_reviews
  WHERE type = 1
  GROUP BY gbp_location_id
),

contract_reviews AS (
  SELECT
    r.gbp_location_id,
    u.id AS user_id,
    u.contract_at,
    SUM(CASE WHEN r.create_time >= u.contract_at THEN 1 ELSE 0 END) AS post_contract_reviews
  FROM mappy_gbp_reviews r
  JOIN mappy_integrated_gbp_locations igl ON r.gbp_location_id = igl.gbp_location_id
  JOIN mappy_users u ON igl.user_id = u.id
  WHERE type = 1
  GROUP BY r.gbp_location_id, u.id, u.contract_at
),

grouped_owner_results AS (
  SELECT
    ow.sms_owner_user_id,
    ow.login_id,
    CASE
      WHEN COUNT(DISTINCT ow.gbp_location_id) = 1
      THEN MAX(ow.store_title)
      ELSE '複数店舗'
    END AS store_label,
    CASE
      WHEN COUNT(DISTINCT ow.gbp_location_id) = 1
      THEN MAX(ow.store_code)
      ELSE '複数店舗'
    END AS store_code_label,
    SUM(COALESCE(s.sms_type_1_count, 0)) AS sms_type_1_total,
    SUM(COALESCE(s.sms_type_2_count, 0)) AS sms_type_2_total,
    SUM(COALESCE(r.monthly_review_count, 0)) AS review_count_month,
    SUM(COALESCE(cr.post_contract_reviews, 0)) AS post_contract_total,
    SUM(COALESCE(r.all_time_review_count, 0)) AS all_review_total
  FROM owner_locations ow
  LEFT JOIN sms_counts s
    ON s.sms_owner_user_id = ow.sms_owner_user_id AND s.gbp_location_id = ow.gbp_location_id
  LEFT JOIN review_counts r
    ON r.gbp_location_id = ow.gbp_location_id
  LEFT JOIN contract_reviews cr
    ON cr.gbp_location_id = ow.gbp_location_id AND cr.user_id = ow.sms_owner_user_id
  GROUP BY ow.sms_owner_user_id, ow.login_id
)

SELECT
  go.store_code_label AS 'me番号',
  go.login_id AS 'アカウント名',
  go.store_label AS '店舗名',
  go.sms_type_1_total AS '口コミSMS送信数',
  go.sms_type_2_total AS 'アンケートSMS送信数',
  go.review_count_month AS '口コミ数',
  go.post_contract_total AS '契約以降全口コミ数',
  go.all_review_total AS '過去全口コミ数'
FROM grouped_owner_results go
ORDER BY go.store_code_label, go.login_id;

用語集

用語意味
.envファイルアプリの設定情報(サーバーのアドレス・パスワードなど)が書かれたファイル。サーバー上にあり、通常は直接編集しない
systemNameどのアプリ(G-MAC・PIPIT・KUCHIKOMIなど)として動作するかを示す設定値
Vueファイル画面(フロントエンド)を作るためのファイル。ユーザーが見る画面のデザインや動きを制御する
systemNameチェック条件「systemNameがkuchikomiなら〇〇を表示する」というような条件分岐のこと
SSHネットワーク越しにサーバーを遠隔操作するための仕組み。ターミナルからコマンドでサーバーに接続する
PEMファイルSSHでサーバーに接続する際に使う鍵ファイル(パスワードの代わりに使用)
rootユーザーサーバーの管理者権限を持つ最上位のユーザー。rootが作成したファイルは一般ユーザーが編集できない場合がある
パーミッション(権限)ファイルやフォルダに対して「読む・書く・実行する」ができるかどうかの設定
Dockerアプリをまとめて動かすためのコンテナ技術。サーバー上でアプリを独立した環境で実行できる
Laravelこのアプリで使われているPHPのフレームワーク(開発を効率化するための土台)
GBPGoogle Business Profile(グーグルビジネスプロフィール)の略。店舗情報を管理するGoogleのサービス
スクレイピングWebサイトから自動でデータを収集する技術。このシステムではGoogleの検索ランキングなどを取得するために使用
OEM他社ブランドとして提供するサービスのこと。G-MACをベースにPIPIT・G-CORなどのブランドで提供している
マスターユーザーアプリ内で最上位の権限を持つユーザーアカウント
CSVデータを表形式で保存するファイル形式。ExcelやGoogleスプレッドシートで開くことができる
API異なるシステム同士が情報をやり取りするための仕組み(例:GoogleやInstagramのデータをアプリで使うために利用)
500エラーサーバー内部でエラーが発生した際に表示されるエラーページ。権限の問題などで発生することがある
tail コマンドログファイルの末尾(最新部分)を表示するコマンド。エラー確認に使用する
chown コマンドファイルの所有者を変更するコマンド(change ownerの略)
chmod コマンドファイルの権限を変更するコマンド(change modeの略)


Bàn Giao Công Việc từ Wikum

Tổng quan

MụcNội dung
Ngày bàn giao2026-04-14
Ứng dụng liên quanG-MAC / PIPIT / KUCHIKOMI / G-COR

Công Việc Hàng Ngày

1. Kiểm tra hoạt động ứng dụng

Hàng ngày, đăng nhập vào từng ứng dụng bằng quyền quản trị viên và truy cập 2〜3 màn hình để xác nhận hoạt động bình thường.

Các bước thực hiện

  1. Đăng nhập vào từng ứng dụng bằng tài khoản quản trị viên(Danh sách thông tin đăng nhập
  2. Mở ngẫu nhiên màn hình người dùng(có thể dùng màn hình của master user)
  3. Kiểm tra các màn hình như đánh giá・insights・bài đăng(không có màn hình cố định, bất kỳ màn hình nào cũng được)
  4. Nếu dữ liệu mới nhất được hiển thị thì là bình thường

Tiêu chí xác định bình thường

  • Đăng nhập được và truy cập được màn hình người dùng là bình thường
  • Có đánh giá・insights・bài đăng mới nhất là bình thường

Trường hợp bất thường(khi không hiển thị dữ liệu mới nhất)

Kiểm tra file log trên server. Các file log cần kiểm tra:

Tên file logMô tả
mappy_laravelLog của ứng dụng Mappy
laravelLog chung của ứng dụng
entity_updateLog xử lý cập nhật dữ liệu

Nếu phát hiện lỗi cần sửa. Nếu khó xử lý, hãy hỏi cấp trên hoặc người phụ trách phát triển.

Ghi chép kết quả kiểm tra

  • Không cần ghi chép(chỉ ghi cho mục đích xác nhận của developer)

Các ứng dụng cần kiểm tra

Ứng dụngGhi chú
G-MACDịch vụ chính
PIPITPhiên bản OEM
KUCHIKOMIPhiên bản chuyên về đánh giá(xem bên dưới)
G-CORPhiên bản OEM

Về KUCHIKOMI

Có thể kiểm tra theo cùng phương pháp với G-MAC / PIPIT / G-COR.

Điểm khác biệt so với 3 ứng dụng còn lại

  • Cấu trúc màn hình dashboard khác nhau(mỗi ứng dụng hiển thị dashboard・logo khác nhau)
  • Không có chức năng xếp hạng tìm kiếm(scraping)
  • Không có màn hình keyword

2. Kiểm tra file log

Các bước kết nối server qua SSH

  1. Chuẩn bị file webmaster.pem(có thể tải xuống từ đây
  2. Mở Terminal(Windows:Command Prompt hoặc PowerShell)
  3. Nhập lệnh sau để kết nối server
bash
ssh -i /đường-dẫn-đến-pem/webmaster.pem ec2-user@13.230.164.229

※ Thay /đường-dẫn-đến-pem/ bằng vị trí lưu file PEM (Ví dụ:ssh -i ~/Downloads/webmaster.pem ec2-user@13.230.164.229

Vị trí file log

bash
cd gmac/laravel/storage/logs/

Các file log cần kiểm tra

Tên fileMô tả
laravel-YYYY-MM-DD.logLog chung của ứng dụng(tạo hàng ngày)
mappy_laravel-YYYY-MM-DD.logLog của ứng dụng Mappy(tạo hàng ngày)
mappy_entity_update-YYYY-MM-DD.logLog xử lý cập nhật dữ liệu(tạo hàng ngày)

※ Thay phần ngày(2026-04-23)bằng ngày cần kiểm tra

Quy trình kiểm tra file log

Step 1. Trước tiên kiểm tra quyền

Lệnh dưới đây hiển thị 20 file được cập nhật gần nhất(tương đương khoảng 20 ngày):

bash
ls -lat | head -20

Nếu muốn kiểm tra toàn bộ thời gian:

bash
ls -la

Bình thường(hiển thị ec2-user):

-rw-rw-r-- 1 ec2-user ec2-user 12345 Apr 23 00:00 mappy_laravel-2026-04-23.log

Bất thường(hiển thị root):

-rw-r--r-- 1 root root 12345 Apr 23 00:00 mappy_laravel-2026-04-23.log

Step 2. Nếu bất thường, sửa quyền

bash
sudo chown ec2-user:ec2-user mappy_laravel-2026-04-23.log
bash
sudo chmod 664 mappy_laravel-2026-04-23.log
bash
sudo chown ec2-user:ec2-user mappy_entity_update-2026-04-23.log
bash
sudo chmod 664 mappy_entity_update-2026-04-23.log

※ Thay phần ngày(2026-04-23)bằng ngày cần xử lý

Step 3. Kiểm tra error log nếu nguyên nhân không phải quyền

① Kiểm tra log chung của ứng dụng

bash
grep "ERROR\|CRITICAL\|Exception" laravel-2026-04-23.log

② Kiểm tra log của ứng dụng Mappy

bash
grep "ERROR\|CRITICAL\|Exception" mappy_laravel-2026-04-23.log

③ Kiểm tra log xử lý cập nhật dữ liệu

bash
grep "ERROR\|CRITICAL\|Exception" mappy_entity_update-2026-04-23.log

※ Nếu không có gì hiển thị thì không có lỗi(bình thường) ※ Thay phần ngày(2026-04-23)bằng ngày cần kiểm tra

Step 4. Khi có error log

Dán nội dung lỗi vào AI để xác nhận lỗi là gì. Sau đó kiểm tra lại site, nếu vẫn còn sự cố thì báo cáo nội dung lỗi cho team phát triển.


3. Kiểm tra email liên quan đến API

Loại email cần xử lý

Người gửiNội dungMức độ quan trọng
Meta(Instagram)Xác nhận sử dụng Instagram API(vài lần/năm)Cao:Nếu không xử lý sẽ mất quyền truy cập API
AWSEmail bảo mật(trước đây có trường hợp bị hack)Cao:Nếu không xử lý Mappy sẽ không hoạt động
Các dịch vụ APIThông báo thay đổi APICần kiểm tra

Cách xử lý

  • Meta(Instagram):Làm theo hướng dẫn trong email, xử lý sớm
  • Bảo mật AWS:Gửi tin nhắn cho AWS, reply cùng email thread, hoặc liên hệ bộ phận hỗ trợ
  • Email xác nhận bảo mật ứng dụng:Kiểm tra nội dung email có hướng dẫn. Lần trước Yannic đã xử lý. Nếu không rõ hãy hỏi Yannic

Về đăng ký địa chỉ email

Nếu cần đăng ký địa chỉ email vào các dịch vụ, hãy nhờ người phụ trách H2T.


4. Xử lý yêu cầu từ team

Xử lý từng yêu cầu phát sinh hàng ngày. Nội dung thay đổi tùy theo ngày.


Công Việc Hàng Tuần〜Hàng Tháng

5. Kiểm tra số dư credit OpenAI

MụcNội dung
Tần suấtHàng tuần〜hàng tháng
Trang kiểm trahttps://platform.openai.com/home
Thao tácĐăng nhập tài khoản OpenAI và kiểm tra số dư
Tiêu chí bổ sungNếu số dư credit dưới 1 đô la thì yêu cầu nạp thêm

Các bước yêu cầu nạp credit

  1. Liên hệ Horikawa-san(hoặc người phụ trách khác)
  2. Horikawa-san sẽ liên hệ Kajiwara-san
  3. Kajiwara-san sẽ nạp thêm credit

6. Hỗ trợ SQL cho team Kuchikomi

※ Hiện tại không cần xử lý. Ghi lại để tham khảo khi có sự cố.

MụcNội dung
Tần suấtHàng tháng(ngày làm việc đầu tiên của tháng)
Giai đoạnTháng trước
DatabaseDatabase Kuchikomi
Tình trạng hiện tạiĐã có chương trình tự động, hiện không cần xử lý thủ công

Màn hình quản lý

Admin có thể tải dữ liệu trực tiếp từ màn hình quản lý: https://kuchikomione.com/admin/exports(SMS&口コミデータ 口コミONE・mappy)

Khi xảy ra sự cố

Nếu dữ liệu report có lỗi, kiểm tra những mục sau:

  • Màn hình kiểm tra:Màn hình export của Kuchikomi Admin(https://kuchikomione.com/admin/exports)section「SMS&口コミデータ(口コミONE・mappy)」
  • File cần kiểm traAdmin\ExportController
  • Hàm cần kiểm traexportSmsReviewSummary

Kiểm tra hàm trên và cập nhật code nếu cần. Nếu khó xử lý hãy hỏi người phụ trách phát triển.


Bảng Thuật Ngữ

Thuật ngữÝ nghĩa
.envファイル(file .env)File chứa thông tin cài đặt của ứng dụng(địa chỉ server・mật khẩu...). Nằm trên server, thông thường không chỉnh sửa trực tiếp
systemNameGiá trị cài đặt xác định ứng dụng đang chạy là gì(G-MAC・PIPIT・KUCHIKOMI...)
Vueファイル(file Vue)File tạo màn hình(frontend). Điều khiển thiết kế và hoạt động của màn hình người dùng
systemNameチェック条件(điều kiện kiểm tra systemName)Điều kiện phân nhánh như「nếu systemName là kuchikomi thì hiển thị〇〇」
SSHCơ chế điều khiển server từ xa qua mạng. Kết nối server bằng lệnh từ Terminal
PEMファイル(file PEM)File khóa dùng để kết nối SSH với server(thay thế mật khẩu)
rootユーザー(root user)Người dùng cấp cao nhất có quyền quản trị server. File do root tạo ra đôi khi người dùng thông thường không thể chỉnh sửa
パーミッション(権限)(permission)Cài đặt xác định có thể「đọc・ghi・thực thi」file hay thư mục không
DockerCông nghệ container để chạy ứng dụng. Có thể chạy ứng dụng trong môi trường độc lập trên server
LaravelFramework PHP được dùng trong ứng dụng này(nền tảng giúp phát triển hiệu quả)
GBPViết tắt của Google Business Profile. Dịch vụ Google để quản lý thông tin cửa hàng
スクレイピング(scraping)Kỹ thuật tự động thu thập dữ liệu từ website. Dùng để lấy thứ hạng tìm kiếm Google...
OEMDịch vụ cung cấp dưới thương hiệu của công ty khác. G-MAC được cung cấp dưới thương hiệu PIPIT・G-COR...
マスターユーザー(master user)Tài khoản người dùng có quyền cao nhất trong ứng dụng
CSVĐịnh dạng file lưu dữ liệu dạng bảng. Có thể mở bằng Excel hoặc Google Spreadsheet
APICơ chế để các hệ thống khác nhau trao đổi thông tin(ví dụ:dùng dữ liệu Google・Instagram trong ứng dụng)
500エラー(lỗi 500)Trang lỗi hiển thị khi xảy ra lỗi bên trong server. Có thể xảy ra do vấn đề về quyền
tailコマンド(lệnh tail)Lệnh hiển thị phần cuối(mới nhất)của file log. Dùng để kiểm tra lỗi
chownコマンド(lệnh chown)Lệnh thay đổi chủ sở hữu file(viết tắt của change owner)
chmodコマンド(lệnh chmod)Lệnh thay đổi quyền file(viết tắt của change mode)