【Linux】在docker上部署grafana+zabbix监控实录
-------------------------------------------------------------------------------------------------
| 欢迎关注个人公众号 zclinux_note 第一时间获取关于linux使用的技巧。探索Linux的奥秘 |
-------------------------------------------------------------------------------------------------
环境:CentOS7
内核:3.10.0-957.el7.x86_64
grafana+zabbix-server主机IP:192.168.25.100
zabbix_agent 主机IP:192.168.25.10
前提:需要事先停止selinux,iptables,firewalld服务
1.首先安装docker
(1)配置阿里云repo
yum install wget -y
wget -O /etc/yum.repos.d/CentOS7-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache fast
(2)清除系统上原有老版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
(3)安装docker
安装自己的docker,我这里安装的是18.0.6的docker
安装环境依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
下载阿里云的docker的repo文件
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install docker-ce-18.06.0.ce -y
systemctl enable docker
systemctl start docker
查看docker版本是否正确
docker version
[root@docker ~]# docker version
Client:
Version: 18.06.0-ce
API version: 1.38
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:08:18 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.0-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 0ffa825
Built: Wed Jul 18 19:10:42 2018
OS/Arch: linux/amd64
Experimental: false
配置阿里docker镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://bxdltesm.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.安装完成后,再创建相关目录环境
mkdir -p /data/zabbix/mysql
useradd mysql
chown -R mysql.mysql /data/zabbix/mysql
3.开始安装zabbix-mysql,zabbix-nginx,zabbix-server
这里强调一点,zabbix和server,agent,还有grafana都是最新版,在容器启动的最后一行都是latest,如果需要特殊版本,需要特别指定
先启动数据库容器
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v /data/zabbix/mysql:/var/lib/mysql \
-d mysql:5.7
启动zabbix-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" \
--link mysql-server:mysql \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
启动zabbix-server容器
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" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
4.安装agent,客户端需要修改ip,其实也可以手动安装
docker run --name zabbix-agent \
-e ZBX_HOSTNAME="zabbix-agent" \
-e ZBX_SERVER_HOST="192.168.25.100" \
-p 10050:10050 \
--privileged \
-d zabbix/zabbix-agent:latest
手动安装zabbix-agent步骤
登陆该网站,选择自己的zabbix-server的版本(查看版本的方法是zabbix_server -V)
https://www.zabbix.com/download
然后看到下面有rpm -Uvh的命令,将其复制并执行再agent的服务器上
# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
我这里是4.4的版本
完成后,执行yum install -y zabbix-agent
完成后,手动修改/etc/zabbix/zabbix-agentd.conf文件中的serverip,serveractive,
全部完成后,重启agent进程
systemctl restart zabbix-agent
查看监听端口10050是否被监听
至此,agent全部安装完成
5.安装grafana
用户名密码都是admin
docker run -d --name=grafana -p 3000:3000 grafana/grafana
所有容器启动后,查看容器是否都正常运行
[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96b983e4ca77 zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" Less than a second ago Up Less than a second 0.0.0.0:80->80/tcp, 443/tcp zabbix-web-nginx-mysql
1400794e747c zabbix/zabbix-agent:latest "/sbin/tini -- /usr/? Less than a second ago Up Less than a second 0.0.0.0:10050->10050/tcp zabbix-agent
2695290c1afe grafana/grafana "/run.sh" 21 hours ago Up Less than a second 0.0.0.0:3000->3000/tcp grafana
bf70f93e0a1c zabbix/zabbix-server-mysql:latest "/sbin/tini -- /usr/? 21 hours ago Up Less than a second 0.0.0.0:10051->10051/tcp zabbix-server-mysql
efd6f9b4460e mysql:5.7 "docker-entrypoint.s? 21 hours ago Up Less than a second 3306/tcp, 33060/tcp mysql-server
打开zabbix的网页管理界面
http://192.168.25.100/zabbix
这里无需setup,容器已经都自动安装配置好,登陆直接就是控制台
分别点击【配置】 --> 【主机】-->【创建主机】
配置模板
完成后点击保存(因为我已经添加过了,所以显示的是更新按钮)
显示为绿色证明agent已经被server端监控好了
下面查看grafana是否安装成功
http://192.168.25.100:3000
账号密码都是admin,第一次登陆会强制修改密码
进入之后,需要创建新用户
点击邀请
创建的用户可以分配不同权限,我这里给了编辑权限,邮件选择不发送
点击复制邀请连接,在浏览器新界面点开
复制出来的地址可能是localhost,需要将其修改为本地server的ip,我这里是192.168.25.100
密码完成后,会自动登陆
6.安装grafana的zabbix插件
登陆到grafana的容器中操作
# docker exec -it grafana /bin/bash
root@a92fe62a4475:/# grafana-cli plugins install alexanderzobnin-zabbix-app
会提示一些信息,等待完成
root@a92fe62a4475:/# exit
重启grafana容器
docker restart grafana
完成后,再次进入到grafana的控制台,使用admin用户
找到zabbix
点击enable,然后看下是否有更新update一下
完成后,进入到data sources中,配置zabbix的api
开始配置
成功后,会提示绿色的对勾
然后到上面找到这个
点击导入import
其中配置这个地方的时候,地址的url写的有问题,写成了http//192.168.25.100/zabbix/api_jsonrpc.php
结果一直提示file not found.....
查了一些关于php的,也查看了配置文件,都是正常,最后要查的地方是nginx的配置
进入到容器中
[root@docker ~]# docker exec -it 96b983e4ca77 /bin/bash
找到nginx的配置文件
vi /etc/nginx/conf.d/下的nginx.conf文件
发现,nginx的配置直接就是在zabbix下的,
原来是乌龙,重新配置后才真正生效,网上也有直接配置http://192.168.25.100/zabbix的,虽然也生效,但是api接口不正确,最后获取不到正确的数据的
7.简单创建监控项
如果配置都正确的话,前面的group和host都好后,application和item会自动弹出监控项
这样配置的api才正确
找到想监控的监控项后,修改名称
最后,点击保存,保存在标题栏上,一定要保存
这就是全部完整的流程
【Linux】在docker上部署grafana+zabbix监控实录的更多相关文章
- 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控
Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...
- 使用VS把ASP.NET 5的应用发布到Linux的Docker上
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...
- 定期从Docker上部署的MySQL备份数据
前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依 ...
- 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
在阿里云上部署了zabbix,一直能正常接收到zbx发来的报警邮件(报警邮箱是163的),不知是什么原因,突然无法接收到报警邮件了. 但在服务器上手动执行echo "hello"| ...
- Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述
https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企 ...
- Linux实战教学笔记50:Zabbix监控平台3.2.4(二)深入理解zabbix
https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix Web操作深入 1.1 Zabbix Web下的主机和模版以及监控项的添加方式 ( ...
- Linux实战教学笔记51:Zabbix监控平台3.2.4(三)生产环境案例
https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix生产环境监测案例概述 1.1 项目规划 [x] :主机分组 交换机 Nginx To ...
- 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...
- 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库
一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...
随机推荐
- C++ 虚函数表与多态 —— 多态的简单用法
首先看下边的代码,先创建一个父类,然后在来一个继承父类的子类,两个类中都有自己的 play() 方法,在代码的第35-37行,创建一个父类指针,然后将子类地址引用赋值给父类,这时调用 P 指针的 pl ...
- DVWA各等级XSS
xss原理及基本介绍 XSS,全称Cross Site Scripting,即跨站脚本攻击,某种意义上也是一种注入攻击,是指攻击者在页面中注入恶意的脚本代码,当受害者访问该页面时,恶意代码会在其浏览器 ...
- Day5 - 07 函数的参数-参数组合
现在我们学完了位置参数.默认参数.可变参数.关键字参数.命名关键字参数五种参数类型.在Python中定义函数,可以使用这五种参数进行组合.但是参数定义的顺序必须是:必选参数.默认参数.可变参数.命名关 ...
- Day3 条件判断和循环
条件判断 if...else if...elif...else 格式: 注意缩进! if x: active elif y: active else : active 注 ...
- Linux 安装 MySQL 8 数据库(图文详细教程)
本教程手把手教你如何在 Linux 安装 MySQL 数据库,以 CentOS 7为例. 1. 下载并安装 MySQL 官方的 Yum Repository wget -i -c https://re ...
- vue 属性绑定 v-bind
属性绑定 v-bind 可以通过v-bind将属性值与数据绑定,这样就可以统一化管理 通过这样我们就可以直接访问跳转到百度页面 同样的这个值我们也可以通过事件进行改变 这样就可以方便我们做一些其它的操 ...
- Centos7.6上部署Supervisor来监控和操作各类服务
supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止.重启一个 ...
- Python开发的面试准备
1.is和==的区别: is比较的是id,对象的内存地址 = =比较的是值 2.按字典中的value值进行排序 sorted(dict.items(), key = lambda x: x[1]) 3 ...
- jxl导出Excel中需要跳过的的坑
正如上篇文章(JXL封装不能使用static关键字问题)所说,在jxl导出Excel时候如果频繁使用到WritableCellFormat去设置单元格的样式,这个时候经常会出现两种情况: 1.报警告: ...
- windows Server 2016安装Sqlserver远程连接的坑
如果要连接远程服务器 首先打开防火墙端口1433 新建入站规则 然后 如果没启用 就启用 然后重启服务就行 如果还是不行 进去属性 修改三处 然后重启服务