• Stars
    star
    1,319
  • Rank 35,659 (Top 0.8 %)
  • Language
    Dockerfile
  • License
    Apache License 2.0
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Full stack tools for monitoring containers and other stuff. ;)

Discord

YouTube Channel Subscribers YouTube Channel Views Twitch Status GitHub followers Twitter Follow Twitter Follow

Docker Pulls Docker Pulls Docker Pulls

GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars GitHub Repo stars

giropops-monitoring

Full stack tools for monitoring containers and other stuff. ;)

  • Netdata
  • Prometheus
  • AlertManager
  • Rocket.Chat
  • Docker
  • cAdvisor
  • Grafana
  • Node_Exporter

Install Demonstration

demo

Howto

First of all, clone the giropopos-monitoring repo:

# git clone https://github.com/badtuxx/giropops-monitoring.git

Install Docker and create Swarm cluster

# curl -fsSL https://get.docker.com | sh
# docker swarm init

Install Netdata:

# bash <(curl -Ss https://my-netdata.io/kickstart.sh)

Setting Netdata Exporter configuration in Prometheus:

# vim conf/prometheus/prometheus.yml
...
- job_name: 'netdata'
    metrics_path: '/api/v1/allmetrics'
    params:
      format: [prometheus]
    honor_labels: true
    scrape_interval: 5s
    static_configs:
         - targets: ['YOUR_IP:19999']

Get Rocket.Chat Incoming WebHook

  1. Deploy giropops stack, only to get the WebHook
# docker stack deploy -c docker-compose.yml giropops
  1. Access YOUR_IP:3080 and create your account

  2. Login with your user and go to: Administration => Integrations => New Integration => Incoming WebHook

  3. Set "Enabled" and "Script Enabled" to "True"

  4. Set all channels, icons, etc. as you need

  5. Paste contents of rocketchat/incoming-webhook.js into Script field.

  6. Create Integration. You will see some values appear. Copy WebHook URL and proceed to "Integration between Rocket.Chat and AlertManager" section.

  7. Remove giropops stack

# docker stack rm giropops

Rocket.Chat Docs

Integration between Rocket.Chat and AlertManager

# vim conf/alertmanager/config.yml

route:
    repeat_interval: 30m
    group_interval: 30m
    receiver: 'rocketchat'

receivers:
    - name: 'rocketchat'
      webhook_configs:
          - send_resolved: false
            # copy below the WEBHOOK that you create before
            url: '${WEBHOOK_URL}'

Deploy Stack with Docker Swarm

Execute deploy to create the stack of giropops-monitoring:

# docker stack deploy -c docker-compose.yml giropops

Creating network giropops_backend
Creating network giropops_frontend
Creating network giropops_default
Creating service giropops_prometheus
Creating service giropops_node-exporter
Creating service giropops_alertmanager
Creating service giropops_cadvisor
Creating service giropops_grafana
Creating service giropops_rocketchat
Creating service giropops_mongo
Creating service giropops_mongo-init-replica

Verify if services are ok:

# docker service ls

ID              NAME                          MODE         REPLICAS  IMAGE                                  PORTS
2j5vievon95j    giropops_alertmanager         replicated   1/1       linuxtips/alertmanager_alpine:latest   *:9093->9093/tcp
y1kinszpqzpg    giropops_cadvisor             global       1/1       google/cadvisor:latest                 *:8080->8080/tcp
jol20u8pahlp    giropops_grafana              replicated   1/1       grafana/grafana:latest                 *:3000->3000/tcp
t3635s4xh5cp    giropops_mongo                replicated   1/1       mongo:3.2
t8vnb7xuyfa8    giropops_mongo-init-replica   replicated   0/1       mongo:3.2
usr0jy4jquns    giropops_node-exporter        global       1/1       linuxtips/node-exporter_alpine:latest  *:9100->9100/tcp
zc3qza0bxys7    giropops_prometheus           replicated   1/1       linuxtips/prometheus_alpine:latest     *:9090->9090/tcp
7bgnm0poxbwj    giropops_rocketchat           replicated   1/1       rocketchat/rocket.chat:latest          *:3080->3080/tcp

PS: Don't worry why giropops_mongo-init-replica service is down, it only executes one time to initialize the replica set. It will not stay running.

Access Services in Browser

To access Prometheus interface on browser:

http://YOUR_IP:9090

To access AlertManager interface on browser:

http://YOUR_IP:9093

To access Grafana interface on browser:

http://YOUR_IP:3000
user: admin
passwd: giropops

To add plugs edit file giropops-monitoring/grafana.config
GF_INSTALL_PLUGINS=plug1,plug2
Current plugs grafana-clock-panel,grafana-piechart-panel,camptocamp-prometheus-alertmanager-datasource,vonage-status-panel

Have fun, access the dashboards! ;)

To access Netdata interface on browser:

http://YOUR_IP:19999

To access Prometheus Node_exporter metrics on browser:

http://YOUR_IP:9100/metrics

To access RocketChat interface on browser:

http://YOUR_IP:3080
> First to register becomes admin

Remember that RocketChat endpoints and payloads are identical to Slack's, so if you wanna set Grafana alerts, just select a slack alert and give it a RocketChat incoming webhook URL, with no script needed.

Test if your alerts are ok:

# docker service rm giropops_node-exporter

Wait some seconds and you will see the integration works fine! Prometheus alerting the AlertManager that alert the Slack that shows it to you! It's so easy and that simple! :D

Of course, create new alerts on Prometheus:

# vim conf/prometheus/alert.rules

Ahhhh, Help us to improve it!

Thanks! #VAIIII

More Repositories

1

DescomplicandoKubernetes

Shell
3,721
star
2

DescomplicandoDocker

Descomplicando o Docker, o livro.
HTML
3,270
star
3

CertifiedContainersExpert

1,170
star
4

MutiraoDevOps

Go
970
star
5

DescomplicandoPrometheus

Repositório do treinamento Descomplicando o Prometheus da LINUXtips
CSS
501
star
6

BondeDoCKA

396
star
7

DescomplicandoHelm

Smarty
269
star
8

cheatsheet

Repo com as cheatsheet da LINUXtips!
227
star
9

descomplicando-ansible-2020

Shell
226
star
10

DescomplicandoArgoCD

CSS
212
star
11

DescomplicandoGitlab

167
star
12

DevOpsExtreme

Repositório com palestras e arquivos relacionados ao ev
HCL
148
star
13

badtuxx

133
star
14

convencendo-seu-chefe

122
star
15

k8s-canary-deploy-example

Only to show how we can use canary deployment using only default components of Kubernetes.
Lua
111
star
16

DescomplicandoNomad

HCL
83
star
17

DescomplicandoGit

83
star
18

giropops-senhas-labs

Esse repositório foi criado com as maravilhosas pessoas que estavam no chat da live da LINUXtips na Twitch.
CSS
79
star
19

terraform-101

HCL
75
star
20

LINUXtips

69
star
21

descomplicando-ansible-final

68
star
22

bondedoPI

Stack DevOps / GitOps rodando em 07 Raspberries PI
53
star
23

prometheus_alpine

Prometheus running on Alpine Linux.
Dockerfile
41
star
24

k8s-deploy-nginx-example

36
star
25

ansible-course

31
star
26

create-operators-with-ansible

Makefile
28
star
27

ingress

28
star
28

giropops

27
star
29

giropops-senhas

CSS
26
star
30

domingao

HCL
26
star
31

node-exporter_alpine

Prometheus Node-Exporter running on Alpine Linux.
Dockerfile
24
star
32

ebooks

24
star
33

alertmanager_alpine

Prometheus AlertManager running on Alpine Linux.
Dockerfile
23
star
34

talks

Dockerfile
22
star
35

tekton-examples

20
star
36

katacoda-scenarios

Katacoda Scenarios
Shell
17
star
37

DescomplicandoCrossplane

15
star
38

hpd-wp

Repository created to my students during HPD training. It's an Ansible playbook to install Wordpress with MariaDB, PHP-FPM, and Nginx.
PHP
15
star
39

blackbox-exporter_alpine

Dockerfile
14
star
40

simple-index

very simple index.php
13
star
41

DescomplicandoeBPF

12
star
42

DescomplicandoChaos

11
star
43

DevChef

11
star
44

ebook-External-Secrets-Operator-K8s-Vault

10
star
45

QuebrandoEntrevistas

9
star
46

testing

5
star
47

DescomplicandoOllama

3
star
48

charts-example

Smarty
1
star