[작성자:] black K
-
Visualizing Zabbix Metrics with Grafana (Part 1) — Installation and Getting Started Guide on Ubuntu
Ready to streamline your complex Zabbix operations? I’ve distilled the most valuable insights from this blog into one essential guide. Take full control of your environment with the Zabbix 7 Enterprise Optimization Handbook [Mastering Hybrid Infrastructure Monitoring with a Kubernetes First Approach]. 👉 Get your PDF copy here: https://jikimy.gumroad.com/l/zabbixmaster 📘 Overview By collecting data with…
-
Zabbix로 Kubernetes Pod 주요 지표 시각화하기 (심층 가이드) — Grafana 연동으로 Pod CPU·Memory 사용량을 동적 대시보드로 구현하기
“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.” https://jikimy.gumroad.com/l/zabbix-master 개요 이전에 관련해서 쓴 글이 있는데 조금 더 심층적으로 가이드를 해야겠다는 생각이 들어서 이 글을 쓰는 부분이니 도움이 되었으면 한다.Zabbix에서 Kubernetes를 모니터링하기 위해 Kubernetes Kubelet by HTTP 템플릿을 적용하면, 매크로 {$KUBE.API.URL} 에 지정된 IP를 기준으로다음과 같은 호스트 그룹이 자동…
-
Zabbix 서버 지표를 Grafana로 시각화하기 (4편) — 변수 적용으로 동적 대시보드 구성하기
“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.” https://jikimy.gumroad.com/l/zabbix-master 📘 개요 3편에서 CPU·메모리·디스크 등의 정적 대시보드를 완성했다면,이번에는 Grafana의 변수(Variables) 기능을 사용해 동적 대시보드 즉,대시보드를 ‘탐색형 관제 화면’으로 확장하는 방법을 다룬다. 변수를 활용하면 1. 변수(Variable) 개요 Grafana의 변수는 대시보드 내에서 동적 쿼리 값을 전달하는 매개체다.Zabbix 플러그인은 Group, Host, Item…
-
Zabbix 서버 지표를 Grafana로 시각화하기 (3편) — CPU·메모리·디스크 정적 대시보드 구성 가이드
“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.” https://jikimy.gumroad.com/l/zabbix-master 📘 개요 Zabbix 연동을 마쳤다면 이제 대시보드 설계 단계로 넘어갈 차례다.이 글에서는 단순히 템플릿을 가져다 쓰는 수준을 넘어,운영자가 직접 CPU, 메모리, 디스크, 네트워크 등의 핵심 지표를 묶어 해석할 수 있는 실무형 Grafana 대시보드를 만든다. 대시보드는 단순한 그래프 묶음이 아니라,“문제가…
-
Zabbix 서버 지표를 Grafana로 시각화하기 (2편) — Zabbix Plugin 설치와 Data Source 연동
“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.” https://jikimy.gumroad.com/l/zabbix-master 📘 개요 1편에서 Grafana 설치 및 서비스 설정을 마쳤다면,이번에는 Zabbix 데이터를 Grafana에 연결하는 단계다. 이 글에서는 Grafana 공식 플러그인 중 하나인zabbix plugin (alexanderzobnin-zabbix-app)을 설치하고Zabbix API를 통해 실시간 메트릭을 불러오는 방법을 다룬다. 이 플러그인은 단순한 그래프 표시용이 아니라,Zabbix의 호스트·아이템·트리거를 직접…
-
Zabbix DBが遅いとき:MySQLパーティションで解決する実務構築ガイド(第5編)
— Housekeeper無効化とキャッシュ・プロセスチューニングによる最終パフォーマンス完成 概要 このシリーズの最終編では、パーティション構造を適用した後に行うZabbixサーバー内部キャッシュとプロセスのチューニングにより、DBとサーバープロセス間のI/Oバランスを最適化する手順を解説する。 特に、ZabbixのHousekeeper機能を完全に無効化し、CacheSize、HistoryCacheSize、TrendCacheSize、StartDBSyncers などの主要パラメータを調整して、大規模環境でも安定した動作を維持できる構成を目指す。 1) Housekeeper 無効化 Housekeeperは古いデータを定期的に削除するプロセスである。しかし、すでにパーティションベースの自動削除スクリプトを運用している場合、この機能は重複し、不要な負荷を発生させる。 Zabbix 7.4では、Web UIから直接無効化する必要がある。 パス:Administration → Housekeeping 項目 設定値 説明 Events and alerts ☐(オフ) イベントログ自動削除を停止 Services ☐(オフ) SLA関連サービス履歴を保持しない User sessions ☑(オン) ユーザーセッションのみ保持 History ☐(オフ) DBパーティションスクリプトが処理 Trends ☐(オフ) DBパーティションスクリプトが処理 ⚙️ Housekeeperが残っていると、大量削除時にMySQL I/Oが一時停止することがある。パーティション構成を導入している環境では、必ず無効化しておくこと。 2) Zabbixサーバーのキャッシュおよびプロセスチューニング 設定ファイル:/etc/zabbix/zabbix_server.conf 以下の項目を見つけてコメントアウトを解除し、環境に合わせて値を調整する。 項目 説明 推奨値(RAM 128Gの場合) CacheSize 設定キャッシュ(ホスト・テンプレート構造) 256M〜512M HistoryCacheSize リアルタイムメトリックキャッシュ 512M〜1G TrendCacheSize…
-
Zabbix 서버 지표를 Grafana로 시각화하기 (1편) — Ubuntu 환경에서 Grafana 설치 및 시작 가이드
“복잡한 Zabbix 운영을 더 효율적으로 만들고 싶다면,블로그의 핵심 내용을 집대성한 『Zabbix 엔터프라이즈 최적화 핸드북(PDF)』을 확인해보세요.” https://jikimy.gumroad.com/l/zabbix-master 📘 개요 Zabbix로 데이터를 수집하고 Grafana로 시각화하면,운영자는 단순한 모니터링 화면이 아니라 **‘지표의 의미가 보이는 대시보드’**를 만들 수 있다. 이 시리즈는 Zabbix–Grafana 실무 연동을 주제로 하며,1편에서는 Ubuntu 22.04 + Grafana 12.2.1 버전 설치 및 기초 설정 과정을 다룬다. 본 가이드는…
-
Zabbix DBが遅いとき:MySQLパーティションで解決する実務構築ガイド(第4編)
— 自動パーティションスクリプトとcron管理による完全自動化 概要 本記事では、第3編で作成したパーティション構造を自動的に維持・管理する手順を解説する。Zabbixはデータ収集量が多いため、毎日・毎月手動でパーティションを追加したり古いデータを削除するのは非効率である。 ここでは次の2つのスクリプトを用いて完全自動化を実現する。 1) 前提条件 2) History 自動化スクリプト ファイルパス:/usr/local/bin/zbx-part-history.sh 保存後、実行権限を付与: 3) Trends 自動化スクリプト ファイルパス:/usr/local/bin/zbx-part-trends.sh 保存後、実行権限を付与: 4) cron 登録 cronファイルを作成: 5) 動作結果サマリー 区分 実行周期 実行権限 MySQLアカウント 主な動作 zbx-part-history.sh 毎日 01:05 (UTC) root (cron) zabbix 翌日のパーティション追加+90日前削除 zbx-part-trends.sh 毎月1日 01:10 (UTC) root (cron) zabbix 翌月のパーティション追加+12か月前削除 ログファイルの場所: 6) チェックポイント 7) 次回予告 第5編では、Zabbix Housekeeperを無効化し、CacheSize、HistoryCacheSize、TrendCacheSize、StartDBSyncers などのパラメータを調整してZabbixサーバーのキャッシュとMySQL I/Oバランスを最適化する最終チューニングを解説する。
-
Zabbix DBが遅いとき:MySQLパーティションで解決する実務構築ガイド(第3編)
— file-per-tableへの切り替えとhistory・trendsパーティション構造の構成 概要 本記事では、前編で分離したTablespace構成を基に、Zabbixの主要データ(history, trends)を日単位/月単位パーティションテーブルに変換する手順を扱う。 MySQL 8.0以降では、General Tablespace上にパーティションを構成することはできないため、まず file-per-table 構造へ切り替えた後、パーティションを作成する必要がある。 1) 前提条件 ⚠️ 注意:稼働中の環境ではパーティション適用時にデータI/Oが急増するため、必ずテスト環境で検証してから本番適用を行うこと。 2) General Tablespaceからfile-per-tableへ戻す MySQL 8.0以降では、General Tablespaceに対してパーティションテーブルを作成できない。そのため、各テーブルを必ず innodb_file_per_table 構造へ戻す必要がある。 3) パーティション作成前のポイント 🔹 history と trends の構造的な違い テーブル データ量 用途 一般的なパーティション周期 zabbix.history 秒単位で数百万件以上 リアルタイム短期保存 日単位(1〜3日周期) zabbix.trends 平均/最大/最小などの集計データ 中期〜長期保存 月単位(30日周期) 4) Epoch Time計算の参考 パーティションの境界値はUTC基準のEpoch Timeを使用する。これはタイムゾーンの混乱を防ぎ、cronスクリプトによる自動化を簡略化するためである。 Epoch Timeとは? Epoch Time(UNIXタイムスタンプ)とは、1970年1月1日00時00分00秒(UTC)からの経過秒数を整数で表した値である。この値は世界中で共通の絶対時間基準であり、サーバーのローカルタイム(例:KST、JST、PSTなど)が異なっても時間比較や自動化スクリプトで混乱しない。 ✅ 初期パーティション作成時に必ず合わせるべき基準(この基準を外すと、後続の Cron スクリプトが生成するパーティション境界値と衝突し →…
-
Zabbix DBが遅いとき:MySQLパーティションで解決する実務構築ガイド(第2編)
— ディスク分離とTablespace構成によるI/O分散 概要 本ドキュメントは、Zabbix DBが次第に遅くなる主な原因の一つであるI/O集中問題を軽減するための実務ガイドである。MySQL 8.x環境でZabbixのhistory・trendsデータを別ディスクに分離し、General Tablespaceを構成してデータ格納パスを明確に分ける手順を扱う。 第1編でZabbix 7.4+MySQLのインストールとスキーマロードを完了している場合、ここからはディスク構造を分け、テーブルを物理的に分離する段階となる。 1) 前提条件 この作業はMySQLが起動中でも実行可能だが、データディレクトリ追加 → AppArmorポリシー修正 → MySQL再起動 の順に必ず進めること。 2) ディレクトリ作成と権限設定 ディレクトリ作成 権限設定 チェックポイント 3) AppArmorポリシーの修正 MySQLはAppArmorによってアクセス可能なパスが制限されている。新しく作成した /data パスを許可しないと、Tablespace作成時に “access denied” エラーが発生する。 以下の2行を追記する: 保存後、AppArmorを再起動する: チェックポイント 4) MySQL設定にディレクトリを登録 MySQL 8.0.21以降では、Tablespaceを作成できるディレクトリを事前に指定しておく必要がある。 ファイル末尾に以下を追加: 保存してMySQLを再起動: チェックポイント → 値が /data と表示されること。 5) General Tablespaceの作成 次に、各ディスクにTablespaceを作成する。 結果確認 2つのファイルが実際に作成されていることを確認する。もしファイルが見えない場合は、AppArmor設定またはinnodb_directories設定が漏れている可能性がある。 6) 既存テーブルをTablespaceへ移動 Zabbixはインストール時、すべてのデータを /var/lib/mysql/zabbix に保存する。ここでは…