Zabbix监控

Posted by William(王明高) Blog on August 2, 2020

Zabbix监控

部署

1.1 说明

  • 通过Zabbix、cadvisor、prometheus监控服务器、Docker的性能并通过grafana做展示
  • 部署方式:Docker-compose。
  • Docker版本:Server Version: 19.03.12

1.2 部署Zabbix、prometheus、grafana、cadvisor容器

1.2.1 创建本地挂载目录

mkdir /opt/docker_volume/zabbix/mysql

1.2.2 创建Zabbix所需的MySQL容器

docker run -d --name mysql-server \--restart=always \--privileged=true \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-v /opt/docker_volume/zabbix/mysql/data:/var/lib/mysql \-v /etc/localtime:/etc/localtime:ro \-p 127.0.0.1:3306:3306 \-d mysql:5.7 \--character-set-server=utf8 \--collation-server=utf8_bin

1.2.3 创建Zabbix主服务容器

docker run -d \--name zabbix-server-mysql \--link mysql-server:mysql \--restart=always \--privileged=true \-e DB_SERVER_HOST="mysql-server" \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-v /etc/localtime:/etc/localtime:ro \-v /opt/docker_volume/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \-v /opt/docker_volume/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \-p 10051:10051 \zabbix/zabbix-server-mysql

1.2.4 创建Zabbix的Nginx容器

docker run -d \--name zabbix-web-nginx-mysql -t \--link mysql-server:mysql \--link zabbix-server-mysql:zabbix-server \--restart=always \--privileged=true \-e DB_SERVER_HOST="mysql-server" \-e MYSQL_DATABASE="zabbix" \-e MYSQL_USER="zabbix" \-e MYSQL_PASSWORD="zabbix" \-e MYSQL_ROOT_PASSWORD="zabbix" \-e PHP_TZ="Asia/Shanghai" \-p 80:8080 -d \zabbix/zabbix-web-nginx-mysql

1.2.5 创建promethues容器

docker run -d \--name prometheus \--restart=always \-p 9090:9090 \-v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \prom/prometheus

1.2.6 创建 node-exporter容器

docker run -d \--name node-exporter  \--restart=always   \ -v "/proc:/host/proc:ro"   \-v "/sys:/host/sys:ro"   \-v "/:/rootfs:ro"   \-p 9100:9100   \prom/node-exporter

1.2.7 创建 cadvisor 收集Docker容器性能

docker run -d \--name cadvisor \--restart=always \-v /:/rootfs:ro \-v /var/run:/var/run:ro \-v /sys:/sys:ro \-v /var/lib/docker/:/var/lib/docker:ro \-v /dev/disk/:/dev/disk:ro \-p 8080:8080 \google/cadvisor:latest

1.2.8 创建grafana 容器,用于图形展现

docker run -d \--name=grafana \--restart=always \--privileged=true \-v /opt/docker_volume/grafana/plugins:/var/lib/grafana/plugins \-p 3000:3000 \grafana/grafana

2 配置

2.1 prometheus配置文件

cat <<EOF>> /etc/prometheus/prometheus.ymlglobal:  scrape_interval:     15s  evaluation_interval: 15s alerting:  alertmanagers:  - static_configs:    - targets:      \# - alertmanager:9093rule_files:scrape_configs:  - job_name: 'prometheus'    static_configs:    - targets: ['192.168.0.241:9100','192.168.0.234:9100']    - job_name: 'container'    static_configs:    - targets: ['192.168.0.241:8080','192.168.0.234:8080']EOF

targets: [‘192.168.0.241:9100’,’192.168.0.234:9100’] 此项配置为监控0.241、0.234服务器上node-export收集的系统数据

targets: [‘192.168.0.241:8080’,’192.168.0.234:8080’] 此项配置为监控0.241、0.234服务器上cadviso收集的docker数据

2.2 grafana添加支持Zabbix数据源的插件

通过容器命令方式添加插件

docker exec -it grafana grafana-cli plugins install alexanderzobnin-zabbix-app

如果上述方法未能安装成功,直接从官网下载插件后解压到grafana挂载的插件目录

wget https://codeload.github.com/alexanderzobnin/grafana-zabbix/legacy.zip/309146fa6b001dc776acb250b8668eeac2db4f92 -P /tmpcd /tmp && unzip 309146fa6b001dc776acb250b8668eeac2db4f92cp -R alexanderzobnin-grafana-zabbix-309146f/ /opt/docker_volume/grafana/plugins

2.3 放行端口

firewall-cmd --zone=public --add-port=80 --permanentfirewall-cmd --zone=public --add-port=8080 --permanentfirewall-cmd --zone=public --add-port=10000 --permanentfirewall-cmd --zone=public --add-port=10050 --permanentfirewall-cmd --zone=public --add-port=3000 --permanentfirewall-cmd --zone=public --add-port=9200 --permanentfirewall-cmd --zone=public --add-port=5601 --permanentfirewall-cmd --zone=public --add-port=9090 --permanentfirewall-cmd --zone=public --add-port=9100 --permanent

2.4 被监控端安装zabbix_agent并配置参数

Hostname=Windows-0.2  #zabbix显示主机名ServerActive=192.168.0.241 #zabbix服务器Server=0.0.0.0/0 #允许Zabbix主动连接访问

3 配置grafana显示图形

3.1 添加prometheus、zabbix数据源

登录http://192.168.0.241:3000/login 默认密码为admin:admin

3.2 导入展现模板

3.3 windows展现效果

img

3.4 Docker展现效果

img