Anweisungen zur Docker-Bereitstellung mit Prometheus:
1. Node Exporter installieren
docker run -d -p 9100:9100 \ -v "/proc:/host/proc" \ -v "/sys:/host/sys" \ -v "/:/rootfs" \ -v "/etc/lokaleZeit:/etc/lokaleZeit" \ --net=Host \ prom/Knoten-Exporteur \ --Pfad.procfs /Host/proc \ --Pfad.sysfs /host/sys \ --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" [root@k8s-m1 ~]# docker ps|grep exporter ee30add8d207 prom/node-exporter "/bin/node_exporter …" Vor etwa einer Minute Up Vor etwa einer Minute condescending_shirley 2. Installieren Sie cAdvisor
docker run -d \ -v "/etc/lokaleZeit:/etc/lokaleZeit" \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=18104:8080 \ --detach=true \ --name=cadvisor \ --privilegiert=true \ google/cadvisor:latest [root@k8s-m1 ~]# docker ps|grep cadvisor cf6af6118055 google/cadvisor:latest "/usr/bin/cadvisor -…" vor 38 Sekunden Vor 37 Sekunden aktiv 0.0.0.0:18104->8080/tcp cadvisor Sie können den Container betreten, um Folgendes anzuzeigen: [root@agent ~]# sudo docker exec -it containerid /bin/sh 3. Installieren Sie den Prometheus-ServerInstallation des Überwachungsterminals 1) Bearbeiten Sie die Konfigurationsdatei
# meine globale Konfiguration weltweit: scrape_interval: 15s # Setzt das Scrape-Intervall auf 15 Sekunden. Der Standardwert ist 1 Minute. evaluation_interval: 15s # Regeln alle 15 Sekunden auswerten. Der Standardwert ist alle 1 Minute. # scrape_timeout ist auf den globalen Standardwert (10 s) eingestellt. # Alertmanager-Konfiguration Alarmierung: Alarmmanager: - statische_Konfigurationen: - Ziele: # - alertmanager:9093 # Laden Sie Regeln einmal und bewerten Sie sie regelmäßig gemäß dem globalen „Evaluation_Intervall“. Regeldateien: # - "first_rules.yml" # - "zweite_regeln.yml" # Eine Scrape-Konfiguration, die genau einen zu scrapenden Endpunkt enthält: # Hier ist es Prometheus selbst. scrape_configs: # Der Jobname wird als Label „job=<job_name>“ zu jeder aus dieser Konfiguration extrahierten Zeitreihe hinzugefügt. - Jobname: „Prometheus“ # metrics_path ist standardmäßig „/metrics“ # Schema ist standardmäßig auf „http“ eingestellt. statische_Konfigurationen: #Abhöradresse - Ziele: ['localhost:9090','172.23.0.241:8088','172.23.0.241:9090'] 2) Starten Sie den Container 1> prometheus.yml-Konfigurationsdatei Die externe Netzwerk-IP muss in prometheus.yml konfiguriert werden. Die interne Netzwerk-IP kann in Grafana nur vom lokalen Rechner erkannt werden! # meine globale Konfiguration weltweit: scrape_interval: 15s # Setzt das Scrape-Intervall auf 15 Sekunden. Der Standardwert ist 1 Minute. evaluation_interval: 15s # Regeln alle 15 Sekunden auswerten. Der Standardwert ist alle 1 Minute. # scrape_timeout ist auf den globalen Standardwert (10 s) eingestellt. # Alertmanager-Konfiguration Alarmierung: Alarmmanager: - statische_Konfigurationen: - Ziele: # - alertmanager:9093 # Laden Sie Regeln einmal und bewerten Sie sie regelmäßig gemäß dem globalen „Evaluation_Intervall“. Regeldateien: # - "first_rules.yml" # - "zweite_regeln.yml" # Eine Scrape-Konfiguration, die genau einen zu scrapenden Endpunkt enthält: # Hier ist es Prometheus selbst. scrape_configs: # Der Jobname wird als Label „job=<job_name>“ zu jeder aus dieser Konfiguration extrahierten Zeitreihe hinzugefügt. - Jobname: „Prometheus“ # metrics_path ist standardmäßig „/metrics“ # Schema ist standardmäßig auf „http“ eingestellt. statische_Konfigurationen: #Abhöradresse (hier ist die Intranet-IP des Servers) - Ziele: ['10.27.158.33:9090','10.27.158.33:9100','10.27.158.33:18104'] - Ziele: ['10.29.46.54:9100','10.29.46.54:18104'] - Ziele: ['10.27.163.172:9100','10.27.163.172:18104'] # - Jobname: "GitLab" # Metrikpfad: '/-/Metriken' # statische_Konfigurationen: # - Ziele: ['172.23.0.241:10101'] - Jobname: „Jenkins“ Metrikpfad: "/prometheus/" Schema: http bearer_token: Trägertoken statische_Konfigurationen: - Ziele: ['172.23.0.242:8080'] - Jobname: "Nginx" metrics_path: '/status/format/prometheus' statische_Konfigurationen: - Ziele: ['172.23.0.242:8088'] 2>Befehl starten –net=host, damit der Prometheus-Server direkt mit Exporter und Grafana kommunizieren kann docker run -d -p 9090:9090 \ -v /root/Prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ -v "/etc/lokaleZeit:/etc/lokaleZeit" \ --name prometheus \ --net=Host \ prom/prometheus:latest # Zugriff nach erfolgreichem Start des Prometheus-Containers# PS: Der Server muss den externen Netzwerkport von eth0 öffnen, bevor Sie mit dem Browser auf 9090 0.0.0.0 zugreifen können. 106.15.0.11:9090 4. Erstellen und Ausführen von Grafana
docker run -d -i -p 3000:3000 \ -v "/etc/lokaleZeit:/etc/lokaleZeit" \ -e "GF_SERVER_ROOT_URL=http://grafana.server.name" \ -e "GF_SECURITY_ADMIN_PASSWORD=admin8888" \ --net=Host \ grafana/grafana # PS: Der Server muss den externen Netzwerkport von eth0 öffnen, bevor er mit einem Browser aufgerufen werden kann: 3000 0.0.0.0 Nachdem Grafana gestartet ist, öffnen Sie die Anmeldeoberfläche 172.23.0.241:3000 im Browser und melden Sie sich an: Benutzername: admin Passwort: admin8888 1) Prometheus-Server hinzufügen Erstellen Sie dann eine grafische Darstellung für die hinzugefügte Datenquelle 5. Überwachungsvorlage hinzufügen
Zu diesem Zeitpunkt können Sie die entsprechende Vorlage kompilieren, den Wert von Prometheus übernehmen und auf Grafana übertragen. Das ist es. Sehr nützlich! 6. Schlüssel-Wert-AbfrageDurch den Indikator io_namespace_http_requests_total können wir: Abfrage der Gesamtzahl der Anfragen für die Anwendung sum(io_namespace_http_requests_total) Abfrage der Anzahl der HTTP-Anfragen pro Sekunde sum(rate(io_wise2c_gateway_requests_total[5m])) Abfrage der Top-N-URIs der aktuellen Anwendungsanforderungen topk(10, Summe(io_namespace_http_requests_total) nach (Pfad)) Konfigurieren Sie Prometheus zur Überwachung von Nginx
Hier ist die offizielle Quellinstallation: [root@web01 ~]# vim /etc/yum.repos.d/nginx.repo [nginx-stabil] Name=stabiles Nginx-Repository baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=1 aktiviert=1 gpgkey=https://nginx.org/keys/nginx_signing.key module_hotfixes=true 2) Abhängigkeiten installieren yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree 3) Installieren Sie nginx [root@web01 ~]# yum install -y nginx 4) Konfigurieren Sie nginx [root@web01 ~]# vim /etc/nginx/nginx.conf Benutzer www; 5) Starten Sie den Dienst 1. Methode 1: Direkt starten. Wenn ein Fehler auftritt ==》Schwerwiegender Fehler, Port 80 ist belegt ==》Überprüfen Sie den Dienst HTTPD, der den Port belegt, stoppen Sie ihn und starten Sie nginx neu [root@web01 ~]# systemctl starte nginx 2. Methode 2: [root@web01 ~]# nginx 1. Sehen Sie sich die aktuellen Nginx-Installationsoptionen an [root@db01 nginx-1.12.2]# nginx -V [root@db01 nginx-1.12.2]# ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' 2. Modul vorbereiten # Neue Pakete herunterladen und entpacken [root@k8s-n1 packages]# wget http://nginx.org/download/nginx-1.16.1.tar.gz [root@k8s-n1-Pakete]# tar xf nginx-1.16.1.tar.gz #Klonen und herunterladen des Moduls nginx-module-vts [root@k8s-n1 packages]# git clone https://github.com/vozlt/nginx-module-vts # .Installieren Sie das GeoIP-Modul [root@k8s-n1-Pakete]# yum -y install epel-release geoip-devel 3. Stoppen Sie den Nginx-Dienst # Stoppen Sie den Nginx-Dienst [root@k8s-n1-Pakete]# nginx -s stop #Sichern Sie die ursprüngliche Nginx-Startdatei[root@k8s-n1 packages]# welche Nginx /usr/sbin/nginx [root@k8s-n1-Pakete]# mv /usr/sbin/nginx /usr/sbin/nginx.bak # Sichern Sie das ursprüngliche nignx-Verzeichnis [root@k8s-n1 packages]# mv /etc/nginx nginx-1.12.2.bak 4. Kompilieren und installieren 1> Erforderliche Abhängigkeiten installieren Beim Kompilieren und Installieren kann der Fehler `make: *** Keine Regel zum Erstellen des von ‚default‘ geforderten Ziels ‚build‘ auftreten. Der Fehler „stop“ wird durch fehlende Abhängigkeiten verursacht. # Egal was, installieren Sie es und kompilieren Sie es dann. Andernfalls müssen Sie nach der Installation der Abhängigkeiten erneut ./configure ausführen. ~ yum install -y gcc gcc++ Bash-Vervollständigung vim lrzsz wget expect net-tools nc nmap-Baum dos2unix htop iftop iotop entpacken telnet sl psmisc nethogs Blicke bc pcre-Entwicklung zlib zlib-Entwicklung openssl openssl-Entwicklung libxml2 libxml2-Entwicklung libxslt-Entwicklung gd gd-Entwicklung perl-Entwicklung perl-ExtUtils-Embed GeoIP GeoIP-Entwicklung GeoIP-Daten pcre-Entwicklung 2> Kompilieren und installieren
–add-module=/root/packages/nginx-module-vts [root@db01 nginx-1.12.2]# ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-compat --with-debug --with-file-aio --with-google_perftools_module --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_degradation_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_mp4_module --with-http_perl_module=dynamic --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_xslt_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-stream_ssl_preread_module --with-threads --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E' --add-module=/root/package/nginx-module-vts --with-http_geoip_module # Kompilieren und installieren# -j Multi-Core-Kompilierung (es wird nicht empfohlen, diesen Parameter für eine niedrige Konfiguration zu verwenden, da er hängen bleibt~) [root@k8s-n1 nginx-1.12.2]# make -j && make install 5. Nginx konfigurieren [root@k8s-n1-Pakete]# cp -r nginx-1.12.2.bak/conf.d/ /etc/nginx/ [root@k8s-n1-Pakete]# cp -r nginx-1.12.2.bak/nginx.conf /etc/nginx/ [root@k8s-n1-Pakete]# rm -f /etc/nginx/conf.d/default.conf Konfigurieren der Nginx-Konfigurationsdatei HTTP-Schicht Serverebene ··· http { ··· schließen Sie /etc/nginx/conf.d/*.conf ein; ########################## 1.http-Ebene: Fügen Sie drei Konfigurationszeilen hinzu######################## vhost_traffic_status_zone; vhost_traffic_status_filter_by_host ein; GeoIP_Land /usr/share/GeoIP/GeoIP.dat; ######################### 2.Serverebene: Geben Sie die Portnummer der Serverebene an. Port 8088 wird empfohlen. Wenn kein Konflikt besteht, kopieren und fügen Sie einfach ein.########################### Server { hören Sie 8088; Servername localhost; # Die folgende Vhost-Konfiguration wird an diesen Speicherort geschrieben: location /status { vhost_traffic_status on; # Verkehrsstatus, die Standardeinstellung ist „Ein“, diese Zeile kann weggelassen werden vhost_traffic_status_display; vhost_traffic_status_anzeige_format html; vhost_traffic_status_filter_by_set_key $uri uri::$server_name; #Besuche pro URI vhost_traffic_status_filter_by_set_key $geoip_country_code country::$server_name; #Anfragen pro Land/Region vhost_traffic_status_filter_by_set_key $status $server_name; #HTTP-Code-Statistiken vhost_traffic_status_filter_by_set_key $upstream_addr upstream::backend; #Backend>Weiterleitungsstatistiken vhost_traffic_status_filter_by_set_key $remote_port client::ports::$server_name; #Port-Statistiken anfordern vhost_traffic_status_filter_by_set_key $remote_addr client::addr::$server_name; #IP-Statistiken anfordern location ~ ^/storage/(.+)/.*$ { setze $volume $1; vhost_traffic_status_filter_by_set_key $volume storage::$server_name; #Pfadstatistik anfordern} } } ########################### Serverebene: Sie können einen neuen Server erstellen oder die ursprüngliche Konfiguration ändern.########################## } 6. Starten Sie Nginx [root@k8s-n1-Pakete]# nginx [root@k8s-n1-Pakete]# netstat -lntp|grep nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 62214/nginx: Master tcp 0 0 0.0.0.0:8088 0.0.0.0:* LISTEN 62214/nginx: Master Browserzugriff: 172.23.0.243:80 # offizielle nginx-Standardseite 172.23.0.243:8088/status # nginx-Überwachungselementseite 7. Monitoring mit Prometheus
[root@k8s-m1 ~]# vim prometheus.yml ··· scrape_configs: - Jobname: "Nginx" metrics_path: '/status/format/prometheus' statische_Konfigurationen: - Ziele: ['172.23.0.243:8088'] ··· [root@k8s-m1 ~]# Docker startet Prometheus neu # Rufen Sie zu diesem Zeitpunkt die Prometheus-Verwaltungsseite auf, um die Überwachungselemente von Nginx abzufragen 8. Die Bedeutung der einzelnen ÜberwachungselementeNginx-module-vts bietet eine Vielzahl von Überwachungselementen. Wenn Sie die Bedeutung der Überwachungselemente verstehen, können Sie die erforderlichen Diagramme erstellen. # HILFE nginx_vts_info Nginx-Info # TYP nginx_vts_info Anzeige nginx_vts_info{hostname="hbhly_21_205",version="1.16.1"} 1 # HILFE nginx_vts_start_time_seconds Nginx Startzeit # TYP nginx_vts_start_time_seconds Messgerät nginx_vts_start_time_seconds 1584268136.439 # HILFE nginx_vts_main_connections Nginx-Verbindungen # TYP nginx_vts_main_connections Anzeige # Anzahl der Nginx-Verbindungen nach Status nginx_vts_main_connections{status="accepted"} 9271 nginx_vts_main_connections{status="aktiv"} 7 nginx_vts_main_connections{status="behandelt"} 9271 nginx_vts_main_connections{status="Lesen"} 0 nginx_vts_main_connections{status="Anfragen"} 438850 nginx_vts_main_connections{status="wartet"} 6 nginx_vts_main_connections{status="schreiben"} 1 # HILFE nginx_vts_main_shm_usage_bytes Gemeinsam genutzter Speicher [ngx_http_vhost_traffic_status] info # TYP nginx_vts_main_shm_usage_bytes Messgerät # Speichernutzung nginx_vts_main_shm_usage_bytes{shared="max_size"} 1048575 nginx_vts_main_shm_usage_bytes{shared="verwendete_Größe"} 24689 nginx_vts_main_shm_usage_bytes{shared="verwendeter_Knoten"} 7 # HELP nginx_vts_server_bytes_total Die Anfrage/Antwort-Bytes # TYP nginx_vts_server_bytes_total Zähler # HILFE nginx_vts_server_requests_total Der Anfragenzähler # TYP nginx_vts_server_requests_total Zähler # HELP nginx_vts_server_request_seconds_total Die Anforderungsverarbeitungszeit in Sekunden # TYP nginx_vts_server_request_seconds_total Zähler # HELP nginx_vts_server_request_seconds Der Durchschnitt der Anforderungsverarbeitungszeiten in Sekunden # TYP nginx_vts_server_request_seconds Messgerät # HELP nginx_vts_server_request_duration_seconds Das Histogramm der Anforderungsverarbeitungszeit # TYP nginx_vts_server_request_duration_seconds Histogramm # HILFE nginx_vts_server_cache_total Der Anfragen-Cache-Zähler # TYP nginx_vts_server_cache_total Zähler # Ein- und ausgehender Datenverkehr des Hosts nginx_vts_server_bytes_total{host="10.160.21.205",direction="in"} 22921464 nginx_vts_server_bytes_total{host="10.160.21.205",direction="out"} 1098196005 # Anzahl der Anfragen nach Statuscode 1** 2** 3** 4** 5** nginx_vts_server_requests_total{host="10.160.21.205",code="1xx"} 0 nginx_vts_server_requests_total{host="10.160.21.205",code="2xx"} 86809 nginx_vts_server_requests_total{host="10.160.21.205",code="3xx"} 0 nginx_vts_server_requests_total{host="10.160.21.205",code="4xx"} 2 nginx_vts_server_requests_total{host="10.160.21.205",code="5xx"} 0 nginx_vts_server_requests_total{host="10.160.21.205",code="total"} 86811 # Antwortzeit nginx_vts_server_request_seconds_total{host="10.160.21.205"} 0.000 nginx_vts_server_request_seconds{host="10.160.21.205"} 0,000 #Cache-Statistiken nach Status nginx_vts_server_cache_total{host="10.160.21.205",status="miss"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="bypass"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="abgelaufen"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="veraltet"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="aktualisieren"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="erneut validiert"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="treffer"} 0 nginx_vts_server_cache_total{host="10.160.21.205",status="knapp"} 0 nginx_vts_server_bytes_total{host="devapi.feedback.test",direction="in"} 3044526 nginx_vts_server_bytes_total{host="devapi.feedback.test",direction="out"} 41257028 # Statistik der Anzahl der Verbindungen nach Status nginx_vts_server_requests_total{host="devapi.feedback.test",code="1xx"} 0 nginx_vts_server_requests_total{host="devapi.feedback.test",code="2xx"} 3983 nginx_vts_server_requests_total{host="devapi.feedback.test",code="3xx"} 0 nginx_vts_server_requests_total{host="devapi.feedback.test",code="4xx"} 24 nginx_vts_server_requests_total{host="devapi.feedback.test",code="5xx"} 11 nginx_vts_server_requests_total{host="devapi.feedback.test",code="total"} 4018 nginx_vts_server_request_seconds_total{host="devapi.feedback.test"} 327.173 nginx_vts_server_request_seconds{host="devapi.feedback.test"} 0,000 # nginx Cache-Rechner, genau nach Status und Typ nginx_vts_server_cache_total{host="devapi.feedback.test",status="miss"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="bypass"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="abgelaufen"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="veraltet"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="aktualisieren"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="erneut validiert"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="treffer"} 0 nginx_vts_server_cache_total{host="devapi.feedback.test",status="knapp"} 0 nginx_vts_server_bytes_total{host="testapi.feedback.test",direction="in"} 55553573 nginx_vts_server_bytes_total{host="testapi.feedback.test",direction="out"} 9667561188 nginx_vts_server_requests_total{host="testapi.feedback.test",code="1xx"} 0 nginx_vts_server_requests_total{host="testapi.feedback.test",code="2xx"} 347949 nginx_vts_server_requests_total{host="testapi.feedback.test",code="3xx"} 31 nginx_vts_server_requests_total{host="testapi.feedback.test",code="4xx"} 7 nginx_vts_server_requests_total{host="testapi.feedback.test",code="5xx"} 33 nginx_vts_server_requests_total{host="testapi.feedback.test",code="total"} 348020 nginx_vts_server_request_seconds_total{host="testapi.feedback.test"} 2185.177 nginx_vts_server_request_seconds{host="testapi.feedback.test"} 0,001 nginx_vts_server_cache_total{host="testapi.feedback.test",status="miss"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="bypass"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="abgelaufen"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="stale"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="aktualisieren"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="erneut validiert"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="treffer"} 0 nginx_vts_server_cache_total{host="testapi.feedback.test",status="knapp"} 0 nginx_vts_server_bytes_total{host="*",direction="in"} 81519563 nginx_vts_server_bytes_total{host="*",direction="out"} 10807014221 # Anforderungsstatistiken nach Host nginx_vts_server_requests_total{host="*",code="1xx"} 0 nginx_vts_server_requests_total{host="*",code="2xx"} 438741 nginx_vts_server_requests_total{host="*",code="3xx"} 31 nginx_vts_server_requests_total{host="*",code="4xx"} 33 nginx_vts_server_requests_total{host="*",code="5xx"} 44 nginx_vts_server_requests_total{host="*",code="total"} 438849 nginx_vts_server_request_seconds_total{host="*"} 2512.350 nginx_vts_server_request_seconds{host="*"} 0,007 # Host-Cache-Statistiken nginx_vts_server_cache_total{host="*",status="miss"} 0 nginx_vts_server_cache_total{host="*",status="bypass"} 0 nginx_vts_server_cache_total{host="*",status="abgelaufen"} 0 nginx_vts_server_cache_total{host="*",status="veraltet"} 0 nginx_vts_server_cache_total{host="*",status="aktualisieren"} 0 nginx_vts_server_cache_total{host="*",status="erneut validiert"} 0 nginx_vts_server_cache_total{host="*",status="treffer"} 0 nginx_vts_server_cache_total{host="*",status="knapp"} 0 # HELP nginx_vts_upstream_bytes_total Die Anfrage/Antwort-Bytes # TYP nginx_vts_upstream_bytes_total Zähler # HILFE nginx_vts_upstream_requests_total Der Upstream-Anforderungszähler # TYP nginx_vts_upstream_requests_total Zähler # HELP nginx_vts_upstream_request_seconds_total Die Anfrageverarbeitungszeit inklusive Upstream in Sekunden # TYP nginx_vts_upstream_request_seconds_total Zähler # HELP nginx_vts_upstream_request_seconds Der Durchschnitt der Anforderungsverarbeitungszeiten einschließlich Upstream in Sekunden # TYP nginx_vts_upstream_request_seconds Messgerät # HELP nginx_vts_upstream_response_seconds_total Die einzige Upstream-Antwortverarbeitungszeit in Sekunden # TYP nginx_vts_upstream_response_seconds_total Zähler # HELP nginx_vts_upstream_response_seconds Der Durchschnitt der ausschließlich Upstream-Antwortverarbeitungszeiten in Sekunden # TYP nginx_vts_upstream_response_seconds Messgerät # HELP nginx_vts_upstream_request_duration_seconds Das Histogramm der Anforderungsverarbeitungszeit einschließlich Upstream # TYP nginx_vts_upstream_request_duration_seconds Histogramm # HELP nginx_vts_upstream_response_duration_seconds Das Histogramm der einzigen Upstream-Antwortverarbeitungszeit # TYP nginx_vts_upstream_response_duration_seconds Histogramm # Upstream-Verkehrsstatistiken nginx_vts_upstream_bytes_total{upstream="::nogroups",backend="10.144.227.162:80",direction="in"} 12296 nginx_vts_upstream_bytes_total{upstream="::keineGruppen",backend="10.144.227.162:80",direction="out"} 13582924 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="1xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="2xx"} 25 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="3xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="4xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="5xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.144.227.162:80",code="total"} 25 nginx_vts_upstream_request_seconds_total{upstream="::keineGruppen",backend="10.144.227.162:80"} 1.483 nginx_vts_upstream_request_seconds{upstream="::nogroups",backend="10.144.227.162:80"} 0.000 nginx_vts_upstream_response_seconds_total{upstream="::keineGruppen",backend="10.144.227.162:80"} 1.484 nginx_vts_upstream_response_seconds{upstream="::keineGruppen",backend="10.144.227.162:80"} 0.000 nginx_vts_upstream_bytes_total{upstream="::keineGruppen",backend="10.152.218.149:80",direction="in"} 12471 nginx_vts_upstream_bytes_total{upstream="::keineGruppen",backend="10.152.218.149:80",direction="out"} 11790508 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="1xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="2xx"} 24 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="3xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="4xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="5xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.152.218.149:80",code="total"} 24 nginx_vts_upstream_request_seconds_total{upstream="::keineGruppen",backend="10.152.218.149:80"} 1.169 nginx_vts_upstream_request_seconds{upstream="::nogroups",backend="10.152.218.149:80"} 0.000 nginx_vts_upstream_response_seconds_total{upstream="::keineGruppen",backend="10.152.218.149:80"} 1.168 nginx_vts_upstream_response_seconds{upstream="::nogroups",backend="10.152.218.149:80"} 0.000 nginx_vts_upstream_bytes_total{upstream="::nogroups",backend="10.160.21.205:8081",direction="in"} 3036924 nginx_vts_upstream_bytes_total{upstream="::nogroups",backend="10.160.21.205:8081",direction="out"} 33355357 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="1xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="2xx"} 3971 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="3xx"} 0 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="4xx"} 24 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="5xx"} 11 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8081",code="total"} 4006 nginx_vts_upstream_request_seconds_total{upstream="::keineGruppen",backend="10.160.21.205:8081"} 326.427 nginx_vts_upstream_request_seconds{upstream="::nogroups",backend="10.160.21.205:8081"} 0.000 nginx_vts_upstream_response_seconds_total{upstream="::keineGruppen",backend="10.160.21.205:8081"} 300.722 nginx_vts_upstream_response_seconds{upstream="::nogroups",backend="10.160.21.205:8081"} 0,000 nginx_vts_upstream_bytes_total{upstream="::nogroups",backend="10.160.21.205:8082",direction="in"} 55536408 nginx_vts_upstream_bytes_total{upstream="::keineGruppen",backend="10.160.21.205:8082",direction="out"} 9650089427 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8082",code="1xx"} 0 nginx_vts_upstream_requests_total{upstream="::nogroups",backend="10.160.21.205:8082",code="2xx"} 347912 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8082",code="3xx"} 31 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8082",code="4xx"} 7 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8082",code="5xx"} 33 nginx_vts_upstream_requests_total{upstream="::keineGruppen",backend="10.160.21.205:8082",code="total"} 347983 nginx_vts_upstream_request_seconds_total{upstream="::keineGruppen",backend="10.160.21.205:8082"} 2183.271 nginx_vts_upstream_request_seconds{upstream="::keineGruppen",backend="10.160.21.205:8082"} 0,001 nginx_vts_upstream_response_seconds_total{upstream="::keineGruppen",backend="10.160.21.205:8082"} 2180.893 nginx_vts_upstream_response_seconds{upstream="::keineGruppen",backend="10.160.21.205:8082"} 0,001 9. Zielausdrucksabfrage in der Prometheus-Benutzeroberfläche1) Typische Überwachungsindikatoren aus CAdvisor
2) Containerbezogen # Container-CPU-Auslastung Summe(irate(container_cpu_usage_seconds_total{image!=""}[1m])) ohne (CPU) # Container-Speichernutzung (Einheit: Bytes) container_memory_usage_bytes{image!=""} # Container-Netzwerk-Empfangsrate (Einheit: Bytes/Sekunde) Summe(Rate(Container_Netzwerk_Receive_Bytes_Total{Image!=""}[1m])) ohne (Schnittstelle) # Container-Netzwerkübertragungsrate sum(rate(container_network_transmit_bytes_total{image!=""}[1m])) ohne (Schnittstelle) # Containerdateisystem-Leserate Summe(Rate(container_fs_reads_bytes_total{image!=""}[1m])) ohne (Gerät) # Schreibrate des Containerdateisystems (Einheit: Bytes/Sekunde) Summe(Rate(Container_fs_writes_bytes_total{image!=""}[1m])) ohne (Gerät) 3) HTTP-bezogen # Gesamtzahl der HTTP-Anfragen prometheus_http_requests_total #HTTP-Anfrage Dauer Sekunden Bucket prometheus_http_request_duration_seconds_bucket # Dauer der HTTP-Anfrage in Sekunden prometheus_http_request_duration_seconds_count # Die Summe der Dauer der HTTP-Anfragen in Sekunden prometheus_http_request_duration_seconds_sum # HTTP-Antwortgröße in Bytes prometheus_http_response_size_bytes_bucket # HTTP-Antwortgröße Byteanzahl Anzahl prometheus_http_response_size_bytes_count # Die Summe der HTTP-Antwortgröße in Bytes prometheus_http_response_size_bytes_sum 4) Nginx-bezogen # Nginxvts-Filterbytes insgesamt nginx_vts_filter_bytes_total # Nginx VTS-Filtercache insgesamt nginx_vts_filter_cache_total # Nginx VTS-Filteranforderung in Sekunden nginx_vts_filter_request_seconds # Nginx VTS-Filteranforderung insgesamt in Sekunden nginx_vts_filter_request_seconds_total # Gesamtzahl der Nginx VTS-Filteranforderungen nginx_vts_filter_requests_total # Nginx-Informationen nginx_vts_info # Nginx VTS-Hauptverbindung nginx_vts_main_connections # Nginx VTS Haupt-SHM-Nutzungsbytes nginx_vts_main_shm_usage_bytes # Nginx VTS-Server Gesamtbytes nginx_vts_server_bytes_total # Nginx VTS-Server-Cache insgesamt nginx_vts_server_cache_total # Nginx_vts-Serveranforderung in Sekunden nginx_vts_server_request_seconds # Nginx_vts-Serveranforderung insgesamt in Sekunden nginx_vts_server_request_seconds_total # Gesamtzahl von Nginx_vts Service Requests nginx_vts_server_requests_total # Nginx VTS Startzeit in Sekunden nginx_vts_start_time_seconds 10. Installieren Sie Blackbox_exporter
Funktion: HTTP -Test Definition Anforderung Anfrage Header Information Beurteilung HTTP -Status / HTTP -Antworten Header / HTTP -Körperinhalt TCP -Test Business -Komponenten -Status -Status -Überwachung Anwendungsschicht Protokoll Definition und Überwachung des ICMP -Test -Host -Erkennungsmechanismus Post -Test -Schnittstelle Konnektivität SSL-Zertifikat Ablaufzeit# Download und Decompress [root@11 prometheus]# WGet https://github.com/prometheus/blackbox_exporter/releases/download/v0.14.0/blackbox_exporter-0.14.0.linux-amd64.tar.gzzzz. [root@11 prometheus]# tar -xvf Blackbox_exporter-0.14.0.linux-amd64.tar.gz [root@11 prometheus]# MV Blackbox_exporter-0.14.0.Linux-amd64/usr/local/Blackbox_exporter # Überprüfen Sie, ob die Installation erfolgreich ist. Blackbox_exporter, Version 0.14.0 (Branch: Head, Revision: Bba7ef76193948a33a5868a1ab38b864f7d968a) Benutzer erstellen: root@63d11aa5b6c6 Baudatum: 20190315-13: 32: 31 Go Version: Go1.11.5 # JUCID SYSTEMSMANAGEMENT [root@11 prometheus]# cat /usr/lib/systemd/system/blackbox_exporter.service [Einheit] Beschreibung = Blackbox_exporter [Service] Benutzer=root Typ=einfach Execstart =/usr/local/schwarzbox_exporter/schwarzbox_exporter ---config.file =/usr/local/blackbox_exporter/schwarzbox.yml Neustart=bei Fehler [root@11 prometheus]# # Starten [root@11 prometheus]# Systemctl Daemon-Reload [root@11 prometheus]# systemctl enable -now Blackbox_exporter 11.Docker bereitet das Nginx-Modul-VTS-Modul bereitDa das von YUM installierte Nginx das Nginx-Modul-VTS-Modul standardmäßig nicht hat, müssen Sie den entsprechenden Nginx-Quellcode herunterladen und neu kompilieren. Docker baut Konsulcluster (unvollendet)1. Starten Sie den ersten Konsuldienst: conul1 Docker Run --Name Consul1 -d -p 8500: 8500 -P 8300: 8300 -P 8301: 8301 -P 8302: 8302 -p 8600: 8600 - -RESTART = Always Consul: Last Agent -server -Bootstrap -EXPECT 2 -UI -BIND = 0.0.0.0.0.0.0.0.0. # Erhalten Sie die IP -Adresse von Consul Server1 Docker Inspect -Format '{{.NetworkSettings.ipaddress}}' Consul1 172.17.0.2 # PS: 8500 HTTP -Port, verwendet für die HTTP -Schnittstelle und die Web -Benutzeroberfläche 8300 Server -RPC -Port, Konsulserver im selben Rechenzentrum kommunizieren über diesen Port 8301 SERF LAN -Port, Konsul -Clients im selben Rechenzentrum kommunizieren über diesen Port 8302 SREF WAN -Port, Konsulserver in verschiedenen Rechenzentren kommunizieren über diesen Port 8600 DNS -Port, der für Service -Discovery -BBOstrape verwendet wird. -UI: Führen Sie die Webkonsole aus -Hören Sie den Netzwerkport, 0.0.0.0, alle Netzwerkports. 2. Starten Sie den zweiten Konsuldienst: Konsul2 und treten Sie Consul1 (mit dem Join -Befehl) ein (mit dem Join -Befehl). Docker Run -d --Name conul2 -d -p 8501: 8500 Konsul Agent -server -ui -bind = 0,0,0,0 -client = 0,0,0,0 -join 172.17.0.2 docker run -d -p 8501:8500 --restart=always -v /XiLife/consul/data/server3:/consul/data -v /XiLife/consul/conf/server2:/consul/config -e CONSUL_BIND_INTERFACE='eth0' --privileged=true --name=consu2 consul agent -server -ui -node=consul2 -client='0.0.0.0' -datacenter=xdp_dc -data-dir /consul/data -config-dir /consul/config -join=172.17.0.2 3. Starten Sie den dritten Konsuldienst: Konsul3 und tret Consul1 bei Docker Run --Name Consul3 -d -p 8502: 8500 Konsul Agent -server -ui -bind = 0,0,0,0 -client = 0,0,0,0 -join 172.17.0.2 4.. Zeigen Sie den laufenden Container an (Konsul -Cluster -Status). [root@K8S -M1 -Konsul]# Docker Exec -it -Konsul1 -Konsulmitglieder Knotenadress Statustyp Build -Protokoll -DC -Segment 013A4A7E74D2 172.17.0.4:8301 Alive Server 1.10.0 2 DC1 <Alls> 3c118fa83d47 172.17.0.3:8301 Alive Server 1.10.0 2 DC1 <Alls> 4B5123C97C2B 172.17.0.5:8301 Alive Server 1.10.0 2 DC1 <Alls> A7D272AD157A 172.17.0.2:8301 Alive Server 1.10.0 2 DC1 <Alls> 5. Service Registrierung und Entfernung
# 注冊241的node-exporter 服務信息curl -X PUT -d '{"id": "node-exporter","name": "node-exporter-172.23.0.241","address": "172.23.0.241","port": 9100,"tags": ["prometheus"],"checks": [{"http": "http://172.23.0.241:9100/metrics", "interval": "5s"}]}' http://172.23.0.241:8500/v1/agent/service/register #Registrieren Sie die Node-Exporter-Serviceinformationen von 242. Ändern Sie alle oben genannten IP-Adressen auf 242 und halten Sie den Port unverändert. Wenn Sie einen Dienst Deregister haben möchten, können Sie den folgenden API-Befehl zum Beispiel verwenden, um curl -x put http://172.23.0.241:8500/v1/agent/service/deregister/node-exporter Anhang: Aktualisierung des CentOS6 -Kernels rpm -uvh https://hkg.mirror.rackspace.com/elrepo/kernel/el6/x86_64/rpms/elrepo-release-6-12.el6.elrepo.noarch.rpm YUM -Quellfehlerlösung: Die Spiegelquelle CD /etc/yum.repos.d kann nicht ermittelt werden MV Centos-Base.Repo Centos-Base.Repo.Backup wget http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS6-Base-163.repo CentOS6-Base.repo lecker, alles sauber machen wget -o /etc/yum.repos.d/centos-base.repo http://file.kangle.odata.cc/repo/centos-6.repo wget -o /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo yum makecache Dies ist das Ende dieses Artikels über die Bereitstellung von Prometheus mit Docker. Das könnte Sie auch interessieren:
|
<<: Empfehlen Sie einige nützliche Lernmaterialien für Neulinge im Webdesign
>>: Wie verstecke ich einen bestimmten Text in HTML?
In diesem Artikelbeispiel wird der spezifische Co...
Inhaltsverzeichnis EffectList-Sammlung Effektlist...
Inhaltsverzeichnis 1. Node.js und Vue 2. Führen S...
Konfigurationsdatei, die beim Systemstart geladen...
1. Was ist ElasticSearch? Elasticsearch wird eben...
1. Befehlseinführung Mit dem Befehl ln werden Lin...
Inhaltsverzeichnis Umgebungsbeschreibung Docker-I...
Inhaltsverzeichnis 1. Listenschnittstelle und and...
In MySQL können in der Datenbank fehlerhafte Zeic...
Wenn Sie den Datumswähler kapseln, müssen Sie die...
Hintergrund: Einige Experimente müssen auf dem Se...
CentOS 8 ist schon seit längerem auf dem Markt. A...
Ich habe mich kürzlich mit Linux beschäftigt und ...
1. Systemumgebung [root@localhost-Startseite]# ca...
[Problembeschreibung] Unsere Produktionsumgebung ...