Docker Dashboard with Zabbix and Echarts Widgets

Listen to this Post

In this article, we explore the integration of Docker, Zabbix, and Echarts widgets to create a powerful monitoring dashboard. Below are some practical commands and code snippets to help you set up and manage this integration.

Docker Commands

1. Pull Zabbix Docker Image:

docker pull zabbix/zabbix-server-mysql:latest

2. Run Zabbix Server with MySQL:

docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

3. Run Zabbix Web Interface:

docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-p 80:8080 \
-d zabbix/zabbix-web-nginx-mysql:latest

Zabbix Commands

1. Start Zabbix Agent:

systemctl start zabbix-agent

2. Enable Zabbix Agent on Boot:

systemctl enable zabbix-agent

3. Check Zabbix Agent Status:

systemctl status zabbix-agent

Echarts Integration

1. Install Echarts via npm:

npm install echarts --save

2. Basic Echarts Example:

[javascript]
var myChart = echarts.init(document.getElementById(‘main’));
var option = {
title: {
text: ‘Zabbix Monitoring’
},
tooltip: {},
legend: {
data:[‘Metrics’]
},
xAxis: {
data: [“CPU”,”Memory”,”Disk”,”Network”]
},
yAxis: {},
series: [{
name: ‘Metrics’,
type: ‘bar’,
data: [5, 20, 36, 10]
}]
};
myChart.setOption(option);
[/javascript]

What Undercode Say

In conclusion, integrating Docker with Zabbix and Echarts provides a robust solution for monitoring and visualizing system metrics. Docker simplifies the deployment of Zabbix, while Echarts offers a flexible and interactive way to display data. Below are additional commands and tips to enhance your setup:

1. Docker Compose for Zabbix:

version: '3'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql:latest
ports:
- "10051:10051"
environment:
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"
depends_on:
- mysql-server

zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:latest
ports:
- "80:8080"
environment:
DB_SERVER_HOST: "mysql-server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"
depends_on:
- zabbix-server

mysql-server:
image: mysql:5.7
environment:
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"

2. Linux System Monitoring Commands:

  • Check CPU Usage:
    top
    
  • Check Memory Usage:
    free -m
    
  • Check Disk Usage:
    df -h
    
  • Check Network Statistics:
    netstat -s
    

3. Windows System Monitoring Commands:

  • Check CPU and Memory Usage:
    [cmd]
    perfmon
    [/cmd]
  • Check Disk Usage:
    [cmd]
    wmic diskdrive get status
    [/cmd]
  • Check Network Statistics:
    [cmd]
    netstat -e
    [/cmd]

By leveraging these tools and commands, you can create a comprehensive monitoring solution that provides real-time insights into your system’s performance. For further reading, consider exploring the official documentation for Docker, Zabbix, and Echarts.

References:

Hackers Feeds, Undercode AIFeatured Image