Zabbix+Grafana(一)-安装配置从入门到可用的可视化运维案例 ...

打印 上一主题 下一主题

主题 245|帖子 245|积分 735

1 Zabbix+Grafana案例概述

由于最近发生了几次服务器系统盘满,导致业务受影响的事件,筹划研究一下运维管理系统,把各种服务器整体做个监控,安装过程中碰到不少题目,参考了很多文档,最终安装成功,以是写篇文章记录一下我的安装过程。
我更倾向于做一些案例类文章,从头到尾跟着操纵就能出效果,同时弄清楚整个过程,放到生产环境中使用也比较放心,如果大家在操纵过程中发现有地方写的不清楚,请私信我,我会及时完善。
文章计分别三个阶段,本篇是第一阶段:


  • 第一阶段:本篇文章,Zabbix+Grafana安装、对接,监控Windows和Linux。
  • 第二阶段:Grafana面板分享、创建面板、数据显现。
  • 第三阶段:Zabbix实现告警到邮件、钉钉和微信。
1.1 环境介绍

本案例全部软件都接纳官网安装包或安装流程进行安装,由于7不支持yum安装zabbix,为了方便安装,以是选择了CentOS9。
Grafana服务器接纳了Windows Server系统,这台同时作为运维机使用,Grafana在CentOS9中安装也很方便,可以按需选择。
软件也可以按需选择版本、编译安装,请自行选择。
1.2 软件版本

名称软件版本链接操纵系统CentOS 9 Stream自行安装(安装时选择中文,如果安装的英文版,可以参考2.2修改,不然zabbix配置时,不能选择中文)操纵系统Windows Server自行安装,尽量新版中间件Nginx 1.22.1Zabbix安装过程中附带安装,不需要自行安装PHPPHP 8.0.30Zabbix安装过程中附带安装,不需要自行安装数据库mysql 8.0.36 RHEL9 x86_64https://repo.mysql.com//mysql80-community-release-el9-5.noarch.rpmZabbix6.0 LTS 6.0.28https://www.zabbix.com/cn/download?zabbix=6.0&os_distribution=centos&os_version=9&components=server_frontend_agent&db=mysql&ws=nginxGrafana10.4.1 Enterprisehttps://grafana.com/grafana/download/10.4.1?pg=get&platform=windows&plcmt=selfmanaged-box1-cta1 1.3 服务器配置

前三台服务器可以合并为一台,只是在安装zabbix导入数据库时有些差异,如果不会操纵可以评论区留言。
角色IP数量安装软件vCPU内存磁盘Zabbix应用服务器192.168.1.11zabbix-server、Nginx、PHP416100数据库服务器192.168.1.21Mysql48100Grafana应用服务器192.168.1.31Grafana48100被监控客户端/按需zabbix-agent/// 2 服务端安装

2.1 Mysql安装及配置

在数据库服务器中操纵

  • 配置防火墙
    1. #开放3306端口
    2. firewall-cmd --zone=public --add-port=3306/tcp --permanent
    3. firewall-cmd --reload
    复制代码
  • 安装Mysql官方源
    1. rpm -Uvh https://repo.mysql.com//mysql80-community-release-el9-5.noarch.rpm
    复制代码
  • 安装mysql-community-server
    1. yum install mysql-community-server
    复制代码

  • 启动Mysql服务
    1. #启动服务
    2. systemctl start mysqld
    3. systemctl enable mysqld
    4. #查看服务状态
    5. systemctl status mysqld
    复制代码

  • 获取root初始暗码,保存备用
    1. grep password /var/log/mysqld.log
    复制代码

  • 修改root初始暗码
    1. #使用初始密码登录
    2. mysql -uroot -p
    3. Enter password:输入初始密码
    4. #以下是在mysql命令行中操作
    5. #修改初始密码为Zabbix@123,这里自行替换成你自己的密码,建议设置的复杂一些
    6. ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zabbix@123';
    复制代码
  • (按需)设置允许root远程毗连
    zabbix通过独立的账户毗连数据库,以是root是否允许远程登录都可以,默认只允许本机登录,可以配置允许全部或允许指定IP:

    • 允许全部IP远程登录
      1. #以下是在mysql命令行中操作
      2. use mysql;
      3. UPDATE user SET host='%' WHERE user='root';
      4. #刷新权限
      5. FLUSH PRIVILEGES;
      6. #检查结果
      7. use mysql;
      8. SELECT user,host FROM user;
      复制代码

       

    • 允许指定IP远程登录
      1. #以下是在mysql命令行中操作
      2. #例如:允许root用户通过192.168.1.1远程登录,并设置密码为Zabbix@123
      3. CREATE USER root@192.168.1.1 IDENTIFIED BY 'Zabbix@123';
      4. #给远程账户添加权限
      5. GRANT ALL PRIVILEGES ON *.* TO root@192.168.1.1;
      6. #刷新权限
      7. FLUSH PRIVILEGES;
      8. #检查结果
      9. SELECT user,host FROM user;
      复制代码


  • 创建zabbix数据库
    1. #以下是在mysql命令行中操作
    2. #创建zabbix的数据库
    3. create database zabbix character set utf8mb4 collate utf8mb4_bin;
    4. #创建zabbix账户,允许zabbix服务器的IP访问数据库
    5. create user zabbix@localhost identified by 'Zabbix@123';
    6. create user zabbix@192.168.1.1 identified by 'Zabbix@123';
    7. #授权zabbix账户访问数据库
    8. grant all privileges on zabbix.* to zabbix@localhost;
    9. grant all privileges on zabbix.* to zabbix@192.168.1.1;
    10. #开启权限,为后续导入初始数据做准备
    11. set global log_bin_trust_function_creators = 1;
    12. quit;
    复制代码
  • Mysql配置完成
2.2 Zabbix安装及配置

在zabbix应用服务器中操纵

  • 配置防火墙
    1. #开放8080、10050、10051端口
    2. firewall-cmd --zone=public --add-port=8080/tcp --permanent
    3. firewall-cmd --zone=public --add-port=10050/tcp --permanent
    4. firewall-cmd --zone=public --add-port=10051/tcp --permanent
    5. firewall-cmd --reload
    复制代码
  • (按需)服务器安装中文环境,不然配置zabbix时不能选中文
    1. #确认当前语言,如果是en_US.UTF-8说明是英文,按照此方法安装
    2. echo $LANG
    3. en_US.UTF-8
    4. #安装中文环境
    5. yum install glibc-common
    6. yum install langpacks-zh_CN.noarch
    7. #编辑配置文件
    8. vim /etc/locale.conf
    9. 修改为LANG="zh_CN.UTF-8"
    10. source /etc/locale.conf
    11. #重启系统
    12. reboot
    复制代码
  • (按需)如果之前安装了epel源,需要在epel源中清除zabbix,确保使用Zabbix源安装
    1. #编辑epel源配置文件
    2. vim /etc/yum.repos.d/epel.repo
    3. #在[epel]下添加如下语句
    4. excludepkgs=zabbix*
    复制代码

  • 安装Zabbix源
    1. #安装Zabbix官方源
    2. rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
    3. #清理缓存
    4. yum clean all
    复制代码
  • 安装Zabbix server,Web前端,agent
    1. yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
    复制代码

  • 在zabbix应用服务器中操纵,导入初始架构和数据,系统将提示您输入新创建的暗码。
    1. #在zabbix应用服务器中执行,将IP换成自己数据库服务器的IP
    2. #本案例中数据库服务器IP为192.168.1.2
    3. zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -h 192.168.1.2 --default-character-set=utf8mb4 -uzabbix -p zabbix
    4. Enter password:输入数据库zabbix用户的密码
    复制代码
  • 导入完成,关闭权限
    1. mysql -h 192.168.1.2 -uroot -p
    2. Enter password:输入root用户密码
    3. #关闭权限
    4. set global log_bin_trust_function_creators = 0;
    5. quit;
    复制代码
  • 修改zabbix配置文件
    1. vim /etc/zabbix/zabbix_server.conf
    2. #填写数据库服务器IP
    3. DBHost=192.168.1.2
    4. #填写数据库zabbix账户的密码
    5. DBPassword=Zabbix@123
    6. #填写端口号
    7. DBPort=3306
    8. #修改缓存大小
    9. ValueCacheSize=256M
    复制代码
  • 修改nginx配置文件
    1. vim /etc/nginx/conf.d/zabbix.conf
    2. #取消listen注释,默认端口8080
    复制代码

  • 启动zabbix、nginx、php服务
    1. systemctl restart zabbix-server zabbix-agent nginx php-fpm
    2. systemctl enable zabbix-server zabbix-agent nginx php-fpm
    复制代码
  • 浏览器访问http://192.168.1.1:8080,选择中文

  • 确认全部项目都是OK

  • 配置毗连数据库
    填写数据库服务器的IP、端口、数据库暗码

  • 配置主机名,此名称将显示在浏览器标题处

  • 出现此页面表现安装成功

  • Zabbix配置完成
    默认用户名:Admin
    默认暗码:zabbix

  • 办理zabbix中文显示为□□方块的题目
    处理处罚前:

    在windows系统中找一个字体,上传到zabbix应用服务器,替换zabbix的默认字体
  1. #默认字体位置/usr/share/zabbix/assets/fonts/graphfont.ttf
  2. #我这里选择黑体,直接覆盖
  3. mv simhei.ttf /usr/share/zabbix/assets/fonts/graphfont.ttf
复制代码
​ 处理处罚后:

2.3 Grafana安装及配置

在grafana应用服务器中操纵

  • 配置防火墙,开放80端口

  • 下载、解压安装包,我这里用的二进制包
    https://grafana.com/grafana/download/10.4.1?pg=get&platform=windows&plcmt=selfmanaged-box1-cta1

  • nssm可以把grafana注册成服务
    https://nssm.cc/download

  • 进入nssm目录,安装服务
    1. cd C:\Users\Administrator\Desktop\grafana-v10.4.0\bin\nssm-2.24\win64
    2. nssm.exe install GrafanaService
    复制代码
    弹出窗口,path选择grafana-v10.4.0\bin\grafana-server.exe,其他保持默认,点击install service

  • 修改配置文件
    复制grafana-v10.4.0\conf\sample.ini,重命名为custom.ini
    修改端口为80

  • 启动服务

  • 浏览器访问http://192.168.1.3
    默认用户名:admin
    默认暗码:admin

  • 设置中文


3 grafana对接zabbix数据

3.1 安装grafana对接zabbix插件



  • 命令安装:
  1. #在grafana-v10.4.0\bin\目录下执行
  2. grafana-cli.exe plugins install alexanderzobnin-zabbix-app
复制代码


  • 手动安装:

    • 我这里网络原因没法在线安装,也说一下手动安装,在这里下载安装包:
      https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app/?tab=installation

       

    • 解压到grafana-v10.4.0\data\plugins\

      添加环境变量,如果不添加,我这里插件会报错,在此记录一下
      在环境变量-系统变量-path中,添加bin和插件目录,添加如下内容:
      这是我的安装目录,需要根据你的实际安装目录修改

  1. C:\Users\Administrator\Desktop\grafana-v10.4.0\bin;C:\Users\Administrator\Desktop\grafana-v10.4.0\data\plugins\alexanderzobnin-zabbix-app
复制代码

3.2 重启grafana服务


3.3 启用插件

管理-插件和数据-插件-zabbix,点击enable


3.4 回到zabbix中创建api token


  • 管理-一般-API token

  • 点击创建



  • 名称随意
  • 用户选择admin
  • 取消到期时间选项
  • 点击添加


  • 复制认证令牌,保存好

3.5 到grafana中添加数据源


  • 毗连-数据源-Add data source

  • 划到最后,找到zabbix

  • 对接参数


  • 名称:随意,选择Default
  • URL:http://192.168.1.1:8080/api_jsonrpc.php
  • Auth type:选择api token
  • API Token:填写第11步生成的Token



  • 勾选此选项,点击save & test

3.6 出现这个代表对接成功,至此服务端安装工作全部完成


4 被监控客户端安装

被监控客户端安装相对简单,Windows直接下载MSI安装包,CentOS 9按照官网的流程yum安装即可,还有客户端需要在防火墙开放10050端口。
在官网下载对应安装包:https://www.zabbix.com/cn/download_agents
本文的环境是6.0 LTS 6.0.28,你可以根据实际环境选择,版本建议选择agent2,功能、性能都好一些。


4.1 Windows


  • 防火墙开放10050端口,安装时会自动添加

  • 下载安装包
    https://cdn.zabbix.com/zabbix/binaries/stable/6.0/6.0.28/zabbix_agent2-6.0.28-windows-amd64-openssl.msi
  • 安装agent2


    • hostname自动生成,不需要修改,填写zabbix服务器IP,勾选添加agent路径到PATH即可


  • 安装完成

4.2 CentOS


  • 防火墙开放10050端口
    1. firewall-cmd --zone=public --add-port=10050/tcp --permanent
    2. firewall-cmd --reload
    复制代码
  • 安装zabbix源

    • (按需)如果之前安装了epel源,需要在epel源中清除zabbix,确保使用Zabbix源安装
      1. #编辑epel源配置文件
      2. vim /etc/yum.repos.d/epel.repo
      3. #在[epel]下添加如下语句
      4. excludepkgs=zabbix*
      复制代码
    • 安装zabbix官方源
      1. #安装Zabbix官方源
      2. rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
      3. #清理缓存
      4. yum clean all
      复制代码

  • 安装agent2
    1. yum install zabbix-agent2 zabbix-agent2-plugin-*
    复制代码
  • 配置agent2(被动模式,适用内网环境:服务器/客户端在同一网络中)
    1. vim /etc/zabbix/zabbix_agent2.conf
    2. #被动模式,仅需要配置Server:填写zabbix服务器IP
    3. Server=192.168.1.1
    复制代码
  • 启动服务
    1. systemctl restart zabbix-agent2
    2. systemctl enable zabbix-agent2
    复制代码
5 Zabbix中添加客户端

5.1 登录zabbix,找到监测-主机


5.2 创建主机(被动模式)




  • 主机名:填写IP地址或主机名
  • 模板根据系统类型选择:

    • Windows选择:Windows by Zabbix agent
    • Liunx选择:Linux by Zabbix agent
    • 群组:自行选择,可以用自带的,也可以新建
    • Interfaces:点击“添加”,选择“客户端”,填写客户端IP地址


5.3 添加完成

ZBX图标变为绿色,表现添加成功

5.4 查看数据

点击最新数据,能看到数据表现监控成功



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

梦应逍遥

高级会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表