Overvåg CSGO – Counter Strike: Global Offensive with Prometheus – Sysdig


Julen er næsten her, og du bruger et par timer på at spille Counter-Strike: Global Offensive (CSGO). Du kan endda gøre det på din egen dedikerede server. Hvis det er tilfældet, og du vil lære at overvåge dit spil, så fortsæt med at læse!

I denne artikel lærer du, hvordan du installerer en CSGO-server og overvåger den, sammen med den instans, den kører i.

Prometheus, selvfølgelig, men hvilke eksportører?

Sådan installeres CSGO-server, Prometheus og eksportørerne

Vi brugte en tom Ubuntu 20.04 LTS-instans i en EC2-instans til dette projekt og lancerede CSGO-serveren, Prometheus og eksportørerne ved at bruge Docker og Docker Compose.


Bemærk, at du skal installere Docker. I dette scenarie fulgte vi installationsinstruktionerne til Ubuntu.

Konfigurer og start containerne

Lad os først skrive konfigurationsfilen til Prometheus. Lave en prometheus mappe med en prometheus.yaml fil indeni. Dette er indholdet:

global:
   external_labels:
     origin: prometheus-ec2-csgo
 scrape_configs:
   - job_name: prometheus
     static_configs:
     - targets:
        - localhost:9090
        - localhost:9100
        - localhost:8080
        - localhost:9137
 

Lad os derefter konfigurere CSGO-serveren ved at skabe en srcds.yaml fil med følgende indhold:

options:
   connectTimeout: 60s
   cacheExpiration: 15s
   cacheCleanupInterval: 11s
 servers:
   csgo:
     address: localhost:27015
     rconPassword: <CHANGE ME>
 

Her er vores docker-compose.yaml:

version: "3.3"
 services:
   csgo:
     image: timche/csgo
     container_name: csgo-ds
     environment:
       CSGO_GSLT: <STEAM TOKEN>
       CSGO_HOSTNAME: CSGOSERVER
       CSGO_PW: <CHANGE ME>
       CSGO_RCON_PW: <CHANGE ME>
       CSGO_PORT: 27017
     volumes:
       - type: bind
         source: /opt/csgo/csgo-data/
         target: /opt/app/static
     network_mode: host
     restart: unless-stopped
   csgo-updater:
     image: timche/csgo-updater
     container_name: csgo-updater
     volumes:
       - type: bind
         source: /var/run/docker.sock
         target: /var/run/docker.sock
   prometheus:
     image: quay.io/prometheus/prometheus:v2.31.1
     container_name: prometheus
     volumes:
       - ./prometheus/:/etc/prometheus/
       - /opt/prometheus/prometheus_data:/prometheus
     command:
       - '--config.file=/etc/prometheus/prometheus.yaml'
       - '--storage.tsdb.path=/prometheus'
     network_mode: host
   cadvisor:
     image: gcr.io/cadvisor/cadvisor
     volumes:
       - /:/rootfs:ro
       - /var/run:/var/run:rw
       - /sys:/sys:ro
       - /var/lib/docker/:/var/lib/docker:ro
     ports:
       - 8080:8080
     restart: always
     deploy:
       mode: global
   node-exporter:
     image: prom/node-exporter
     volumes:
       - /proc:/host/proc:ro
       - /sys:/host/sys:ro
       - /:/rootfs:ro
     command:
       - '--path.procfs=/host/proc'
       - '--path.sysfs=/host/sys'
       - --collector.filesystem.ignored-mount-points
       - "^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)"
     ports:
       - 9100:9100
     restart: always
   csgo-exporter:
     image: quay.io/galexrt/srcds_exporter:v0.0.1
     container_name: csgo-exporter
     command: ["/bin/srcds_exporter", "--config.file","/tmp/csgo/srcds.yaml"]
     network_mode: host
     volumes:
       - type: bind
         source: /home/ubuntu/srcds.yaml
         target: /tmp/csgo/srcds.yaml
 


Husk at ændre adgangskoden og erstatte den <CHANGE ME> strenge. Opret også et steam-token og placer det i <STEAM TOKEN> slot i CSGO-serverkonfigurationen YAML.

Nu skal du bare starte alle beholderne med følgende:

docker-compose up -d
 

Du kan se, om alt er i orden ved at tjekke, hvilke containere der kører:

docker ps

Tjek Prometheus dashboard

Normalt bliver porte ikke eksponeret som standard, når vi opretter cloud-forekomster, og af sikkerhedsmæssige årsager vil vi ikke gøre det. Lad os bruge en port videre til vores lokale maskine for at få sikker adgang til Prometheus-dashboardet.

ssh -f -N -i "<Path of your PEM file>" -L 9090:localhost:9090 <instance user>@<instance ip>
 

Gå nu til din browser og skriv localhost:9090og voilà

CSGO Metrics

Du kan få antallet af menneskelige spillere i spillet ved at bruge srcds_playercount_humans.

For at få antallet af bot-spillere i spillet, brug srcds_playercount_bots.


Du kan også beregne procentdelen af ​​brugen af ​​din server med

srcds_playercount_humans{server=~$server}/ srcds_playercount_limit{server=~$server}
 

For at kontrollere det aktuelle kort, der afspilles, skal du blot bruge srcds_map.

Forekomstmålinger

Overvågning af CSGO er nyttigt, men du skal også have et billede af, hvordan det fungerer i cloud-forekomsten.

Du kan få værdifuld viden fra disse målinger. For eksempel bruger du måske en mere kraftfuld maskine, end du egentlig har brug for. Så måske vil dette hjælpe dig med at spare nogle penge.

Hukommelse

Lad os først se, hvor meget hukommelse der bruges i instansen, i procent:

100 - ((node_memory_MemAvailable_bytes * 100) / node_memory_MemTotal_bytes)
 

En anden interessant metrik er den hukommelse, der bruges (i sekunder) af CSGO-servercontaineren.

container_memory_usage_bytes{name="csgo-ds"}
 

CPU

Lad os tjekke, hvad det samlede CPU-forbrug af beholderen er i procent. Eller med andre ord, hvor travlt er CPU’en:

(((count(count(node_cpu_seconds_total) by (cpu))) - avg(sum by (mode)(irate(node_cpu_seconds_total{mode="idle"}[5m])))) * 100) / count(count(node_cpu_seconds_total) by (cpu))
 

Tjek nu, hvor meget CPU CSGO-servercontaineren bruger:

rate(container_cpu_user_seconds_total{name="csgo-ds"}[5m])
 

Vente! Hvor er latensen?!

Vi målte ikke latensen, fordi klienten opretter forbindelse til serveren via UDP, så serveren kan ikke vide, hvad kommunikationens latens er.

Start kampen!

I denne artikel lærte du, hvordan du installerer CSGO-serveren i en cloud-instans, og hvordan du overvåger den med Prometheus sammen med instansen.

Du læser også listen over de mest interessante målinger for dette projekt. Start nu kampen med dine venner og nyd juleferien. Glædelig jul og godt nytår!!




Informationskilde : http://www.bing.com/news/apiclick.aspx?ref=FexRss&aid=&tid=6D2D525EDD2441B0AA66C422E59635D3&url=https%3A%2F%2Fsysdig.com%2Fblog%2Fmonitor-csgo%2F&c=1329074521948670819&mkt=fr-fr