Como dice el refrán, un sistema sin monitoreo está funcionando desnudo, y un buen monitoreo es la tercera mano y el tercer ojo del personal de operación y mantenimiento. Este artículo usará prometheus y Grafana para construir un sistema de monitoreo para monitorear el host y la base de datos ( MySQL , Redis ).
1. Ropa interior Grafana
Grafana es un panel de visualización (Dashboard), con un gráfico y una pantalla de diseño muy hermosos, un panel de medición y un editor de gráficos con todas las funciones, compatible con Graphite, zabbix, InfluxDB, Prometheus y otras fuentes de datos.
1.1 Descargar e instalar
Enlace de descarga: https://grafana.com/grafana/download
Después de la descarga, puede instalarlo:
sudo dpkg -i grafana_5.0.4_amd64.deb
Empiece a ver el estado:
sudo systemctl start grafana-server
sudo systemctl status grafana-server
A continuación, configure el usuario y el directorio de prometheus:
vagrant@vagrant:/htdocs/share$ sudo useradd --no-create-home --shell /bin/false prometheus
vagrant@vagrant:/htdocs/share$ sudo useradd --no-create-home --shell /bin/false node_exporter
vagrant@vagrant:/htdocs/share$ sudo mkdir /etc/prometheus
vagrant@vagrant:/htdocs/share$ sudo mkdir /var/lib/prometheus
vagrant@vagrant:/htdocs/share$ sudo chown prometheus:prometheus /etc/prometheus
vagrant@vagrant:/htdocs/share$ sudo chown prometheus:prometheus /var/lib/prometheus
Siguiente descarga prometheus:
vagrant @ vagrant: / htdocs / share $ cd
vagrant @ vagrant: ~ $ curl -LO https://github.com/prometheus/prometheus/releases/download/v2.0.0/prometheus-2.0.0.linux-amd64.tar .gz
Descomprima e ingrese al directorio:
vagrant @ vagrant: / htdocs / share $ sudo cp prometheus-2.0.0.linux-amd64 / prometheus / usr / local / bin /
vagrant @ vagrant: / htdocs / share $ sudo cp prometheus-2.0.0.linux-amd64 / promtool / usr / local / bin /
vagrant @ vagrant: / htdocs / share $ sudo chown prometheus: prometheus / usr / local / bin / prometheus
vagrant @ vagrant: / htdocs / share $ sudo chown prometheus: prometheus / usr / local / bin / promtool vagrant
@ vagrant : / htdocs / share $ sudo cp -r prometheus-2.0.0.linux-amd64 / consoles / etc / prometheus
vagrant @ vagrant: / htdocs / share $ sudo cp -r prometheus-2.0.0.linux -amd64 / console_libraries / etc / prometheus
vagrant @ vagrant: / htdocs / share $ sudo chown -R prometheus: prometheus / etc / prometheus / consoles
vagrant @ vagrant: / htdocs / share $ sudo chown -R prometheus: prometheus / etc / prometheus / console_libraries
Agregar tarea de monitoreo:
El contenido de /etc/prometheus/prometheus.yml es el siguiente:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- objetivos: ['localhost: 9090']
- job_name: 'Mysql'
static_configs:
- objetivos: ['192.168.0.200:9104']
etiquetas:
instancia: '192.168. 0.200 '
- nombre_trabajo:' redis '
static_configs:
- destinos: [' 192.168.0.200:9121 ']
etiquetas:
instancia:' 127.0.0.1 '
El contenido de /etc/systemd/system/prometheus.service es el siguiente:
[Unidad]
Descripción = Prometheus
Wants = network-online.target
Después = network-online.target
[Servicio]
Usuario = prometheus
Grupo = prometheus
Tipo = simple
ExecStart = / usr / local / bin / prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path / var / lib / prometheus / \
--web.console.templates = / etc / prometheus / consoles \
--web.console.libraries = / etc / prometheus / console_libraries
[Instalar]
WantedBy = multi-user.target
Guarde la configuración de reinicio:
vagrant @ vagrant: / htdocs / share $ sudo systemctl daemon-reload
vagrant @ vagrant: / htdocs / share $ sudo systemctl iniciar prometheus vagrant
@ vagrant: / htdocs / share $ sudo systemctl habilitar prometheus
Abra la página de inicio: http://192.168.0.200:3000
Contraseña predeterminada: admin / admin
http://192.168.0.200:9090/graph
Agregar fuente de datos:
Importe la plantilla Kanban por separado:
$ tar xvfz mysqld_exporter-0.11.0.linux-amd64.tar.gz
$ cd mysqld_exporter-0.11.0.linux-amd64/
$ sudo vim my.cnf
El contenido es el siguiente:
[cliente]
usuario =
contraseña de exportador = 123456
puerto = 3306
Después de guardar, ejecute:
$
nohup ./mysqld_exporter --config.my-cnf = "my.cnf" &
descargar:
wget https://github.com/oliver006/redis_exporter/releases/download/v0.13/redis_exporter-v0.13.l
Abrir la cremallera:
tar -xvf redis_exporter-v0.13.linux-amd64.tar.gz
Descargue la plantilla prometheus-redis_rev1.json de redis de grafana:
wget https://grafana.com/api/dashboards/763/revisions/1/download
Importe la plantilla json en grafana:
Inicie redis_exporter:
## 无密码
./redis_exporter redis//192.168.0.200:6379 &
## 有密码
./redis_exporter -redis.addr 192.168.0.200:6379 -redis.password 123456
Descarga my2.sql:
clon de git https://github.com/john1337/my2Collector.git
Una vez completada la descarga, importe la base de datos.
Puede ver estos monitores en Kanban: