MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

प्रोमेथियस के साथ MySQL कंटेनरों की निगरानी कैसे करें - स्टैंडअलोन और झुंड पर परिनियोजन::भाग एक

कंटेनरों के लिए निगरानी एक चिंता का विषय है, क्योंकि बुनियादी ढांचा गतिशील है। कंटेनरों को नियमित रूप से बनाया और नष्ट किया जा सकता है, और अल्पकालिक हैं। तो आप डॉकर पर चल रहे अपने MySQL इंस्टेंस का ट्रैक कैसे रखते हैं?

किसी भी सॉफ़्टवेयर घटक के साथ, वहाँ कई विकल्प हैं जिनका उपयोग किया जा सकता है। हम प्रोमेथियस को वितरित बुनियादी ढांचे के लिए बनाए गए समाधान के रूप में देखेंगे, और डॉकर के साथ बहुत अच्छी तरह से काम करते हैं।

यह दो भागों वाला ब्लॉग है। इस भाग 1 ब्लॉग में, हम अपने MySQL कंटेनरों के परिनियोजन पहलू को प्रोमेथियस और उसके घटकों के साथ कवर करने जा रहे हैं, जो स्टैंडअलोन डॉकर कंटेनर और डॉकर झुंड सेवाओं के रूप में चल रहे हैं। भाग 2 में, हम अपने MySQL कंटेनरों से मॉनिटर करने के लिए महत्वपूर्ण मेट्रिक्स, साथ ही पेजिंग और नोटिफिकेशन सिस्टम के साथ एकीकरण पर ध्यान देंगे।

प्रोमेथियस का परिचय

प्रोमेथियस एक पूर्ण निगरानी और ट्रेंडिंग सिस्टम है जिसमें समय श्रृंखला डेटा के आधार पर अंतर्निहित और सक्रिय स्क्रैपिंग, भंडारण, पूछताछ, रेखांकन और अलर्टिंग शामिल है। प्रोमेथियस दिए गए अंतराल पर कॉन्फ़िगर किए गए लक्ष्यों से पुल तंत्र के माध्यम से मेट्रिक्स एकत्र करता है, नियम अभिव्यक्तियों का मूल्यांकन करता है, परिणाम प्रदर्शित करता है, और अगर कुछ शर्त सही मानी जाती है तो अलर्ट ट्रिगर कर सकता है। यह उन सभी लक्ष्य मेट्रिक्स का समर्थन करता है जिन्हें हम मापना चाहते हैं यदि कोई MySQL को डॉकर कंटेनर के रूप में चलाना चाहता है। उन मेट्रिक्स में भौतिक होस्ट मेट्रिक्स, डॉकर कंटेनर मेट्रिक्स और MySQL सर्वर मेट्रिक्स शामिल हैं।

निम्नलिखित आरेख पर एक नज़र डालें जो प्रोमेथियस वास्तुकला को दर्शाता है (प्रोमेथियस आधिकारिक दस्तावेज़ीकरण से लिया गया):

हम कुछ MySQL कंटेनरों (स्टैंडअलोन और डॉकर झुंड) को एक प्रोमेथियस सर्वर, MySQL निर्यातक (यानी, MySQL मेट्रिक्स को उजागर करने के लिए एक प्रोमेथियस एजेंट, जिसे तब प्रोमेथियस सर्वर द्वारा स्क्रैप किया जा सकता है) और अलर्टमैनेजर के आधार पर अलर्ट को संभालने के लिए तैनात करने जा रहे हैं। एकत्रित मीट्रिक पर।

अधिक जानकारी के लिए प्रोमेथियस दस्तावेज देखें। इस उदाहरण में, हम प्रोमेथियस टीम द्वारा प्रदान की गई आधिकारिक डॉकर छवियों का उपयोग करने जा रहे हैं।

स्टैंडअलोन डॉकर

MySQL कंटेनर परिनियोजित करना

हमारे परिनियोजन वॉकथ्रू को आसान बनाने के लिए डॉकर पर दो स्टैंडअलोन MySQL सर्वर चलाते हैं। एक कंटेनर नवीनतम MySQL 8.0 का उपयोग करेगा और दूसरा एक MySQL 5.7 है। दोनों कंटेनर एक ही डॉकर नेटवर्क में हैं जिसे "db_network" कहा जाता है:

$ docker network create db_network
$ docker run -d \
--name mysql80 \
--publish 3306 \
--network db_network \
--restart unless-stopped \
--env MYSQL_ROOT_PASSWORD=mypassword \
--volume mysql80-datadir:/var/lib/mysql \
mysql:8 \
--default-authentication-plugin=mysql_native_password

MySQL 8 caching_sha2_password नामक एक नए प्रमाणीकरण प्लग इन के लिए डिफ़ॉल्ट है . Prometheus MySQL निर्यातक कंटेनर के साथ संगतता के लिए, आइए व्यापक रूप से उपयोग किए जाने वाले mysql_native_password का उपयोग करें प्लगइन जब भी हम इस सर्वर पर एक नया MySQL उपयोगकर्ता बनाते हैं।

5.7 पर चलने वाले दूसरे MySQL कंटेनर के लिए, हम निम्नलिखित को निष्पादित करते हैं:

$ docker run -d \
--name mysql57 \
--publish 3306 \
--network db_network \
--restart unless-stopped \
--env MYSQL_ROOT_PASSWORD=mypassword \
--volume mysql57-datadir:/var/lib/mysql \
mysql:5.7

सत्यापित करें कि हमारे MySQL सर्वर ठीक चल रहे हैं:

[[email protected] mysql]# docker ps | grep mysql
cc3cd3c4022a        mysql:5.7           "docker-entrypoint.s…"   12 minutes ago      Up 12 minutes       0.0.0.0:32770->3306/tcp   mysql57
9b7857c5b6a1        mysql:8             "docker-entrypoint.s…"   14 minutes ago      Up 14 minutes       0.0.0.0:32769->3306/tcp   mysql80

इस समय, हमारी वास्तुकला कुछ इस तरह दिख रही है:

आइए उनकी निगरानी शुरू करें।

डॉकर मेट्रिक्स को प्रोमेथियस के सामने उजागर करना

डॉकर में प्रोमेथियस लक्ष्य के रूप में अंतर्निहित समर्थन है, जहां हम डॉकर इंजन आंकड़ों की निगरानी के लिए उपयोग कर सकते हैं। हम डॉकर होस्ट के अंदर "daemon.json" नामक टेक्स्ट फ़ाइल बनाकर इसे आसानी से सक्षम कर सकते हैं:

$ vim /etc/docker/daemon.json

और निम्नलिखित पंक्तियाँ जोड़ें:

{
  "metrics-addr" : "12.168.55.161:9323",
  "experimental" : true
}

जहां 192.168.55.161 डॉकर होस्ट प्राइमरी आईपी एड्रेस है। फिर, परिवर्तन लोड करने के लिए डॉकर डेमॉन को पुनरारंभ करें:

$ systemctl restart docker

चूंकि हमने अपने MySQL कंटेनरों के रन कमांड में --restart=unless-stop को परिभाषित किया है, इसलिए डॉकटर के चलने के बाद कंटेनर अपने आप शुरू हो जाएंगे।

MySQL निर्यातक को तैनात करना

इससे पहले कि हम आगे बढ़ें, mysqld निर्यातक को निगरानी उद्देश्यों के लिए एक MySQL उपयोगकर्ता का उपयोग करने की आवश्यकता है। हमारे MySQL कंटेनरों पर, निगरानी उपयोगकर्ता बनाएँ:

$ docker exec -it mysql80 mysql -uroot -p
Enter password:
mysql> CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporterpassword' WITH MAX_USER_CONNECTIONS 3;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

ध्यान दें कि भारी लोड के तहत निगरानी स्क्रैप के साथ सर्वर को ओवरलोड करने से बचने के लिए उपयोगकर्ता के लिए अधिकतम कनेक्शन सीमा निर्धारित करने की अनुशंसा की जाती है। उपरोक्त कथनों को दूसरे कंटेनर, mysql57 पर दोहराएं:

$ docker exec -it mysql57 mysql -uroot -p
Enter password:
mysql> CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporterpassword' WITH MAX_USER_CONNECTIONS 3;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

हमारे MySQL 8.0 इंस्टेंस के लिए मेट्रिक्स को नीचे दिखाने के लिए "mysql8-exporter" नामक mysqld एक्सपोर्टर कंटेनर चलाते हैं:

$ docker run -d \
--name mysql80-exporter \
--publish 9104 \
--network db_network \
--restart always \
--env DATA_SOURCE_NAME="exporter:[email protected](mysql80:3306)/" \
prom/mysqld-exporter:latest \
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.tablestats \
--collect.info_schema.tables \
--collect.info_schema.userstats \
--collect.engine_innodb_status

और हमारे MySQL 5.7 इंस्टेंस के लिए एक अन्य निर्यातक कंटेनर:

$ docker run -d \
--name mysql57-exporter \
--publish 9104 \
--network db_network \
--restart always \
-e DATA_SOURCE_NAME="exporter:[email protected](mysql57:3306)/" \
prom/mysqld-exporter:latest \
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.tablestats \
--collect.info_schema.tables \
--collect.info_schema.userstats \
--collect.engine_innodb_status

हमने कंटेनर के लिए MySQL मेट्रिक्स का पर्दाफाश करने के लिए कलेक्टर झंडे का एक गुच्छा सक्षम किया। यदि आपके पास कंटेनरों पर MySQL प्रतिकृति चल रही है, तो आप --collect.slave_status, --collect.slave_hosts को भी सक्षम कर सकते हैं।

हमें सीधे डॉकर होस्ट से कर्ल के माध्यम से MySQL मेट्रिक्स को पुनः प्राप्त करने में सक्षम होना चाहिए (पोर्ट 32771 कंटेनर mysql80-exporter के लिए डॉकर द्वारा स्वचालित रूप से असाइन किया गया प्रकाशित पोर्ट है):

$ curl 127.0.0.1:32771/metrics
...
mysql_info_schema_threads_seconds{state="waiting for lock"} 0
mysql_info_schema_threads_seconds{state="waiting for table flush"} 0
mysql_info_schema_threads_seconds{state="waiting for tables"} 0
mysql_info_schema_threads_seconds{state="waiting on cond"} 0
mysql_info_schema_threads_seconds{state="writing to net"} 0
...
process_virtual_memory_bytes 1.9390464e+07

इस समय, हमारी वास्तुकला कुछ इस तरह दिख रही है:

अब हम प्रोमेथियस सर्वर को सेटअप करने के लिए तैयार हैं।

प्रोमेथियस सर्वर परिनियोजित करना

सबसे पहले, ~/prometheus.yml पर प्रोमेथियस कॉन्फ़िगरेशन फ़ाइल बनाएं और निम्न पंक्तियां जोड़ें:

$ vim ~/prometheus.yml
global:
  scrape_interval:     5s
  scrape_timeout:      3s
  evaluation_interval: 5s

# Our alerting rule files
rule_files:
  - "alert.rules"

# Scrape endpoints
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'mysql'
    static_configs:
      - targets: ['mysql57-exporter:9104','mysql80-exporter:9104']

  - job_name: 'docker'
    static_configs:
      - targets: ['192.168.55.161:9323']

प्रोमेथियस कॉन्फ़िगरेशन फ़ाइल से, हमने तीन कार्यों को परिभाषित किया है - "प्रोमेथियस", "mysql" और "docker"। पहला काम प्रोमेथियस सर्वर की निगरानी करना है। अगला काम "mysql" नामक हमारे MySQL कंटेनरों की निगरानी करना है। हम अपने MySQL निर्यातकों पर पोर्ट 9104 पर एंडपॉइंट को परिभाषित करते हैं, जिसने क्रमशः MySQL 8.0 और 5.7 इंस्टेंस से प्रोमेथियस-संगत मेट्रिक्स को उजागर किया। "अलर्ट.रूल्स" नियम फ़ाइल है जिसे हम बाद में अगले ब्लॉग पोस्ट में अलर्ट करने के उद्देश्य से शामिल करेंगे।

फिर हम प्रोमेथियस कंटेनर के साथ कॉन्फ़िगरेशन को मैप कर सकते हैं। हमें निरंतरता के लिए प्रोमेथियस डेटा के लिए एक डॉकर वॉल्यूम बनाने और पोर्ट 9090 को सार्वजनिक रूप से प्रदर्शित करने की भी आवश्यकता है:

$ docker run -d \
--name prometheus-server \
--publish 9090:9090 \
--network db_network \
--restart unless-stopped \
--mount type=volume,src=prometheus-data,target=/prometheus \
--mount type=bind,src="$(pwd)"/prometheus.yml,target=/etc/prometheus/prometheus.yml \
--mount type=bind,src="$(pwd)
prom/prometheus

अब हमारा प्रोमेथियस सर्वर पहले से ही चल रहा है और इसे सीधे डॉकर होस्ट के पोर्ट 9090 पर एक्सेस किया जा सकता है। एक वेब ब्राउज़र खोलें और प्रोमेथियस वेब यूआई तक पहुंचने के लिए http://192.168.55.161:9090/ पर जाएं। स्थिति -> लक्ष्य के अंतर्गत लक्ष्य स्थिति सत्यापित करें और सुनिश्चित करें कि वे सभी हरे हैं:

इस समय, हमारा कंटेनर आर्किटेक्चर कुछ इस तरह दिख रहा है:

हमारे स्टैंडअलोन MySQL कंटेनरों के लिए हमारी प्रोमेथियस निगरानी प्रणाली अब तैनात है।

डॉकर झुंड

3-नोड गैलेरा क्लस्टर परिनियोजित करना

मान लीजिए कि हम डॉकर झुंड में तीन-नोड गैलेरा क्लस्टर को तैनात करना चाहते हैं, हमें 3 अलग-अलग सेवाएं बनानी होंगी, प्रत्येक सेवा एक गैलेरा नोड का प्रतिनिधित्व करती है। इस दृष्टिकोण का उपयोग करके, हम अपने गैलेरा कंटेनर के लिए एक स्थिर समाधान योग्य होस्टनाम रख सकते हैं, साथ में MySQL निर्यातक कंटेनर जो उनमें से प्रत्येक के साथ होंगे। हम अपने गैलेरा क्लस्टर को चलाने के लिए डॉकर टीम द्वारा अनुरक्षित मारियाडीबी 10.2 छवि का उपयोग करेंगे।

सबसे पहले, हमारी झुंड सेवा द्वारा उपयोग की जाने वाली एक MySQL कॉन्फ़िगरेशन फ़ाइल बनाएं:

$ vim ~/my.cnf
[mysqld]

default_storage_engine          = InnoDB
binlog_format                   = ROW

innodb_flush_log_at_trx_commit  = 0
innodb_flush_method             = O_DIRECT
innodb_file_per_table           = 1
innodb_autoinc_lock_mode        = 2
innodb_lock_schedule_algorithm  = FCFS # MariaDB >10.1.19 and >10.2.3 only

wsrep_on                        = ON
wsrep_provider                  = /usr/lib/galera/libgalera_smm.so
wsrep_sst_method                = mariabackup

हमारे झुंड में "db_swarm" नामक एक समर्पित डेटाबेस नेटवर्क बनाएं:

$ docker network create --driver overlay db_swarm

हमारी MySQL कॉन्फ़िगरेशन फ़ाइल को डॉकर कॉन्फ़िग में आयात करें ताकि जब हम इसे बाद में बनाते हैं तो हम इसे अपनी झुंड सेवा में लोड कर सकें:

$ cat ~/my.cnf | docker config create my-cnf -

"galera0" नामक क्लस्टर पते के रूप में "gcomm://" के साथ पहली गैलेरा बूटस्ट्रैप सेवा बनाएं। यह केवल बूटस्ट्रैपिंग प्रक्रिया के लिए एक क्षणिक सेवा है। एक बार जब हम 3 अन्य गैलेरा सेवाएं चालू कर लेंगे तो हम इस सेवा को हटा देंगे:

$ docker service create \
--name galera0 \
--replicas 1 \
--hostname galera0 \
--network db_swarm \
--publish 3306 \
--publish 4444 \
--publish 4567 \
--publish 4568 \
--config src=my-cnf,target=/etc/mysql/mariadb.conf.d/my.cnf \
--env MYSQL_ROOT_PASSWORD=mypassword \
--mount type=volume,src=galera0-datadir,dst=/var/lib/mysql \
mariadb:10.2 \
--wsrep_cluster_address=gcomm:// \
--wsrep_sst_auth="root:mypassword" \
--wsrep_node_address=galera0

इस बिंदु पर, हमारे डेटाबेस आर्किटेक्चर को नीचे दिखाया जा सकता है:

फिर, 3 अलग-अलग गैलेरा सेवाओं को बनाने के लिए निम्न आदेश को 3 बार दोहराएं। {name} को क्रमशः galera1, galera2 और galera3 से बदलें:

$ docker service create \
--name {name} \
--replicas 1 \
--hostname {name} \
--network db_swarm \
--publish 3306 \
--publish 4444 \
--publish 4567 \
--publish 4568 \
--config src=my-cnf,target=/etc/mysql/mariadb.conf.d/my.cnf \
--env MYSQL_ROOT_PASSWORD=mypassword \
--mount type=volume,src={name}-datadir,dst=/var/lib/mysql \
mariadb:10.2 \
--wsrep_cluster_address=gcomm://galera0,galera1,galera2,galera3 \
--wsrep_sst_auth="root:mypassword" \
--wsrep_node_address={name}

हमारी वर्तमान डॉकर सेवाओं को सत्यापित करें:

$ docker service ls 
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
wpcxye3c4e9d        galera0             replicated          1/1                 mariadb:10.2        *:30022->3306/tcp, *:30023->4444/tcp, *:30024-30025->4567-4568/tcp
jsamvxw9tqpw        galera1             replicated          1/1                 mariadb:10.2        *:30026->3306/tcp, *:30027->4444/tcp, *:30028-30029->4567-4568/tcp
otbwnb3ridg0        galera2             replicated          1/1                 mariadb:10.2        *:30030->3306/tcp, *:30031->4444/tcp, *:30032-30033->4567-4568/tcp
5jp9dpv5twy3        galera3             replicated          1/1                 mariadb:10.2        *:30034->3306/tcp, *:30035->4444/tcp, *:30036-30037->4567-4568/tcp

हमारा आर्किटेक्चर अब कुछ इस तरह दिख रहा है:

हमें इसे चलने से रोकने के लिए गैलेरा बूटस्ट्रैप झुंड सेवा, गैलेरा0 को हटाने की आवश्यकता है क्योंकि यदि कंटेनर को डॉकर झुंड द्वारा पुनर्निर्धारित किया जा रहा है, तो एक नई प्रतिकृति एक नए नए वॉल्यूम के साथ शुरू की जाएगी। हम डेटा हानि का जोखिम उठाते हैं क्योंकि --wsrep_cluster_address अन्य गैलेरा नोड्स (या झुंड सेवाओं) में "galera0" शामिल है। तो, आइए इसे हटा दें:

$ docker service rm galera0

इस बिंदु पर, हमारे पास हमारा तीन-नोड गैलेरा क्लस्टर है:

अब हम अपने MySQL निर्यातक और प्रोमेथियस सर्वर को तैनात करने के लिए तैयार हैं।

MySQL निर्यातक झुंड सेवा

गैलेरा नोड्स में से किसी एक में लॉगिन करें और उचित विशेषाधिकारों के साथ निर्यातक उपयोगकर्ता बनाएं:

$ docker exec -it {galera1} mysql -uroot -p
Enter password:
mysql> CREATE USER 'exporter'@'%' IDENTIFIED BY 'exporterpassword' WITH MAX_USER_CONNECTIONS 3;
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';

फिर, प्रत्येक गैलेरा सेवाओं के लिए निर्यातक सेवा बनाएं (क्रमशः {name} को galera1, galera2 और galera3 से बदलें):

$ docker service create \
--name {name}-exporter \
--network db_swarm \
--replicas 1 \
-p 9104 \
-e DATA_SOURCE_NAME="exporter:[email protected]({name}:3306)/" \
prom/mysqld-exporter:latest \
--collect.info_schema.processlist \
--collect.info_schema.innodb_metrics \
--collect.info_schema.tablestats \
--collect.info_schema.tables \
--collect.info_schema.userstats \
--collect.engine_innodb_status

इस समय, हमारी वास्तुकला चित्र में निर्यातक सेवाओं के साथ कुछ इस तरह दिख रही है:

प्रोमेथियस सर्वर झुंड सेवा

अंत में, हमारे प्रोमेथियस सर्वर को तैनात करें। गैलेरा परिनियोजन के समान, हमें डॉकर कॉन्फ़िगरेशन कमांड का उपयोग करके झुंड में आयात करने से पहले प्रोमेथियस कॉन्फ़िगरेशन फ़ाइल तैयार करनी होगी:

$ vim ~/prometheus.yml
global:
  scrape_interval:     5s
  scrape_timeout:      3s
  evaluation_interval: 5s

# Our alerting rule files
rule_files:
  - "alert.rules"

# Scrape endpoints
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'galera'
    static_configs:
      - targets: ['galera1-exporter:9104','galera2-exporter:9104', 'galera3-exporter:9104']

प्रोमेथियस कॉन्फ़िगरेशन फ़ाइल से, हमने तीन कार्यों को परिभाषित किया है - "प्रोमेथियस" और "गैलेरा"। पहला काम प्रोमेथियस सर्वर की निगरानी करना है। अगला काम "गैलेरा" नामक हमारे MySQL कंटेनरों की निगरानी करना है। हम पोर्ट 9104 पर अपने MySQL निर्यातकों के समापन बिंदुओं को परिभाषित करते हैं, जो क्रमशः तीन गैलेरा नोड्स से प्रोमेथियस-संगत मेट्रिक्स को उजागर करते हैं। "अलर्ट.रूल्स" नियम फ़ाइल है जिसे हम बाद में अगले ब्लॉग पोस्ट में अलर्ट करने के उद्देश्य से शामिल करेंगे।

बाद में प्रोमेथियस कंटेनर के साथ उपयोग करने के लिए कॉन्फ़िगरेशन फ़ाइल को डॉकर कॉन्फ़िगरेशन में आयात करें:

$ cat ~/prometheus.yml | docker config create prometheus-yml -

चलो प्रोमेथियस सर्वर कंटेनर चलाते हैं, और प्रोमेथियस वेब यूआई सेवा के लिए सभी डॉकर होस्ट के पोर्ट 9090 को प्रकाशित करते हैं:

$ docker service create \
--name prometheus-server \
--publish 9090:9090 \
--network db_swarm \
--replicas 1 \    
--config src=prometheus-yml,target=/etc/prometheus/prometheus.yml \
--mount type=volume,src=prometheus-data,dst=/prometheus \
prom/prometheus

डॉकर सर्विस कमांड से सत्यापित करें कि हमारे पास 3 गैलेरा सेवाएं, 3 निर्यातक सेवाएं और 1 प्रोमेथियस सेवा है:

$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE                         PORTS
jsamvxw9tqpw        galera1             replicated          1/1                 mariadb:10.2                  *:30026->3306/tcp, *:30027->4444/tcp, *:30028-30029->4567-4568/tcp
hbh1dtljn535        galera1-exporter    replicated          1/1                 prom/mysqld-exporter:latest   *:30038->9104/tcp
otbwnb3ridg0        galera2             replicated          1/1                 mariadb:10.2                  *:30030->3306/tcp, *:30031->4444/tcp, *:30032-30033->4567-4568/tcp
jq8i77ch5oi3        galera2-exporter    replicated          1/1                 prom/mysqld-exporter:latest   *:30039->9104/tcp
5jp9dpv5twy3        galera3             replicated          1/1                 mariadb:10.2                  *:30034->3306/tcp, *:30035->4444/tcp, *:30036-30037->4567-4568/tcp
10gdkm1ypkav        galera3-exporter    replicated          1/1                 prom/mysqld-exporter:latest   *:30040->9104/tcp
gv9llxrig30e        prometheus-server   replicated          1/1                 prom/prometheus:latest        *:9090->9090/tcp

अब हमारा प्रोमेथियस सर्वर पहले से चल रहा है और किसी भी डॉकर नोड से सीधे पोर्ट 9090 पर पहुँचा जा सकता है। एक वेब ब्राउज़र खोलें और प्रोमेथियस वेब यूआई तक पहुंचने के लिए http://192.168.55.161:9090/ पर जाएं। स्थिति -> लक्ष्य के अंतर्गत लक्ष्य स्थिति सत्यापित करें और सुनिश्चित करें कि वे सभी हरे हैं:

इस समय, हमारी झुंड वास्तुकला कुछ इस तरह दिख रही है:

जारी रखा जाना है..

अब हमारे पास अपना डेटाबेस और मॉनिटरिंग स्टैक डॉकर पर तैनात है। ब्लॉग के भाग 2 में, हम नज़र रखने के लिए विभिन्न MySQL मेट्रिक्स पर गौर करेंगे। हम यह भी देखेंगे कि प्रोमेथियस के साथ अलर्टिंग को कैसे कॉन्फ़िगर किया जाए।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Amazon Aurora के बारे में चार बातें जो आप नहीं जानते

  2. उच्च उपलब्धता के लिए मारियाडीबी प्रतिकृति की तैनाती

  3. सुरक्षित तरीके से MySQL और MariaDB में स्कीमा परिवर्तन कैसे करें

  4. मारियाडीबी में MAKE_SET () कैसे काम करता है

  5. ClusterControl के साथ डेटाबेस बैकअप कैसे शेड्यूल करें