前言
由于项目需要,近期使用Docker搭了一个
zabbix(ubuntu-3.4.3)
+grafana(5.0.3)
的服务器监控框架,grafana汉化使用前辈传承的在源代码上的汉化,真正实现一键快速搭建服务器监控模块。
1.Docker-Compose
编写
准备
首先在服务器内建立以下目录(可以根据自我需求自行更改,记住同步即可):
zabbix
相对应的数据库数据卷主机挂载位置/usr/local/docker/mysql/zabbix/database/mysql
grafana
汉化的配置数据卷主机挂载位置
/usr/local/docker/grafana/grafana-storage
/usr/local/docker/grafana/grafana-etc
相应的汉化配置文件已上传到
解压后根据上述建立的挂载文件夹放入,即可完美使用我的汉化包
docker-compose.yml
不熟悉docker
以及docker-compose
安装以及使用的可以参考本人博客:
version: '2.0'
services:
# zabbix-server 容器配置
server:
image: zabbix/zabbix-server-mysql:ubuntu-3.4.3
container_name: zabbix-server
depends_on:
- mysql
# - agent
environment:
TZ: Asia/Shanghai
DB_SERVER_HOST: "mysql"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"
ports:
- "10051:10051"
volumes:
- /etc/localtime:/etc/localtime:ro
links:
- mysql:zabbix-mysql
# - agent:zabbix-agent
user: root
networks:
zabbixbr:
ipv4_address: 172.25.0.6
restart: always
# zabbix-agent 容器配置
# agent:
# image: zabbix/zabbix-agent:ubuntu-3.4.3
# container_name: zabbix-agent
# privileged: true
# ports:
# - "10050:10050"
# volumes:
# - /etc/localtime:/etc/localtime:ro
# user: root
# networks:
# zabbixbr:
# ipv4_address: 172.25.0.5
# restart: always
# zabbix web 环境容器配置
web:
image: zabbix/zabbix-web-nginx-mysql:ubuntu-3.4.3
container_name: zabbix-web
depends_on:
- mysql
- server
environment:
TZ: Asia/Shanghai
DB_SERVER_HOST: "mysql"
ZBX_SERVER_HOST: "server"
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"
volumes:
- /etc/localtime:/etc/localtime:ro
links:
- mysql:zabbix-mysql
- server:zabbix-server
ports:
- "90:80"
user: root
networks:
zabbixbr:
ipv4_address: 172.25.0.4
restart: always
# mysql 容器配置
mysql:
image: mysql:5.7
container_name: zabbix-mysql
command: --character-set-server=utf8 --collation-server=utf8_general_ci
environment:
TZ: Asia/Shanghai
MYSQL_DATABASE: "zabbix"
MYSQL_USER: "zabbix"
MYSQL_PASSWORD: "zabbix_pwd"
MYSQL_ROOT_PASSWORD: "root_pwd"
networks:
zabbixbr:
ipv4_address: 172.25.0.3
ports:
- "3306:3306"
volumes:
# 数据库 volume 路径:根据自己需求调整
- /usr/local/docker/mysql/zabbix/database/mysql:/var/lib/mysql
- /etc/localtime:/etc/localtime:ro
restart: always
# Grafana 容器配置
grafana:
image: grafana/grafana:5.0.3
container_name: zabbix-grafana
environment:
TZ: Asia/Shanghai
# 下面填写你想安装的插件,多项逗号分隔,当然也可以直接把插件上传到下面的 volume 中
GF_INSTALL_PLUGINS: alexanderzobnin-zabbix-app
# 挂载储存用的 volume,映射到宿主目录 /var/lib/docker/volumes 下
volumes:
# 插件和 Grafana 的用户配置数据放这里面
- /usr/local/docker/grafana/grafana-storage:/var/lib/grafana
# grafana.ini 配置文件在里面
- /usr/local/docker/grafana/grafana-etc:/etc/grafana
ports:
- "3000:3000"
networks:
zabbixbr:
ipv4_address: 172.25.0.2
restart: always
# 容器 内网配置
networks:
zabbixbr:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/16
# 内网网关
gateway: 172.25.0.1
为何注释掉
zabbix-agent
容器的搭建?因为
zabbix-agent
顾名思义是zabbix
的客户端所在的位置,客户端所在的位置自然就是所要监控的服务器,如果使用容器构建的话,监控的是容器的信息,没有多大的用处。如果想要一键式搭建的测试的话,可以关掉注释内容。
后续将Docker-Compose.yml
文件拷贝到服务器,运行即可
# 启动部署
docker-compose -d up
# 卸载容器
docker-compose down
# 查看服务器当前镜像
docker images
# 查看服务器当前容器
docker ps -a
2.在目标PC
配置zabbix-agent
安装:
# 安装zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# 安装zabbix-agent
yum install zabbix-agent
启动
# 将zabbix-agent设置为每次开机启动
systemctl enable zabbix-agent.service
# 服务立即启动 下次不启动
systemctl start zabbix-agent.service
# 查看zabbix-agent的运行状况
systemctl status zabbix-agent.service
编辑
# 编辑zabbix-agent的配置文件
vim /etc/zabbix/zabbix_agentd.conf
# 修改配置文件中以下字段为
Server=172.25.0.6
ServerActive=172.25.0.6
# 外网IP(监控的服务器多了容易辨别)
Hostname= 172.18.23.82
# 查看zabbix-agent的运行日志
cat /var/log/zabbix/zabbix_agentd.log
解析配置
Server
对应的是zabbix
服务器的ip
,由于采用docker
安装,故使用docker
分配的内网地址
ServerActive
是主动服务推送,故也应对应zabbix
服务器的ip
Hostname
是主机名,在zabbix-web
中配置时要与此处对应
这里存在的坑就是docker
安装的zabbix
的版本一定、一定、一定要和zabbix-agent
的大版本一致,比如本文全是用的3
zabbix-agent服务启动成功
3.zabbix-web配置监控PC
之前的配置完成后,现在需要在zabbix-web页面配置监控的PC用来显示相应的监控数据
打开
http://服务器外网Ip:90/
,初始用户名:Admin 密码:zabbix
进入后修改语言为中文
然后创建主机
配置agent
配置模板
成功
第一次如果agent
和server
不在同一个服务器,编辑127.0.0.1
的agent
为相应的ip
,模板监控Temlate OS Linux
即可
4.配置grafana
访问http://ip:3000/,初始账号、密码:admin,admin
如若根据本文安装,此时grafana中的zabbix插件已启动
如若没有,自行启动
接下来就是配置数据源(由于使用我的配置,这些都会显示已配置好,只需进入修改为自己对应的信息即可,其实只需修改
URL
的ip
地址即可)
注意:docker
安装的zabbix
的url
是http://zabbix-web的ip/api_jsonrpc.php
,非docker
安装是http://zabbix-web的ip/zabbix/api_jsonrpc.php
配置完后点击Save & Test
测试能否正确获取agent
的数据
成功后进入
Dashboards->Manage->服务器监控
即可显示
后续集成点击右上方分享,获取相应的地址即可快速集成