首页 > 其他分享 >部署zabbix5.0以及使用

部署zabbix5.0以及使用

时间:2023-06-28 22:24:22浏览次数:45  
标签:zabbix5.0 部署 server etc zabbix yum proxy 使用 agent2

前言

  1. 检查防火墙是否关闭

    vim /etc/selinux/config

    SELINUX=disabled

  2. 内存4G为好

  3. 配置好阿里yum源

实验步骤-服务端

  1. 获取zabbix的下载源

    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

  2. 更换zabbix.repo源(下载快点)

    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  3. 清空缓存,下载zabbix服务器

    yum clean all

    yum makecache

  4. yum install zabbix-server-mysql zabbix-agent -y

  5. 安装 Software Collections ,便于后续安装高版本php,默认yum安装的php版本为5.4过低。可以在机器上,使用多个版本的软件,并且不会影响整个系统的依赖环境

    yum install centos-release-scl -y

  6. 修改zabbix-fronted 前端源

    vim /etc/yum.repos.d/zabbix.repo

    enabled=1

  1. 安装zabbix前端环境

    yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

  2. 安装mysql数据库 并启动 设置开机自启

    yum install mariadb-server -y

    systemctl start mysqld

    systemctl enable mysqld

  3. 默认没有密码修改密码

    先进入mysql

    mysql -u root -p

    这里修改密码设置为root

    set password root@localhost=password('root');

    如果出现ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 50651, now running 50733. Please use mysql_upgrade to fix this error.

    就退出mysql 执行

    mysql_upgrade -u root -p

    再去修改密码

    如果出现

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

    则卸载plugin validate_password

    uninstall plugin validate_password;

  4. 创建zabbix数据库

    create database zabbix character set utf8 collate utf8_bin;

  5. 创建zabbix用户

    create user zabbix@localhost identified by 'root';

  6. 给zabbix用户zabbix数据库的权限,并刷新权限退出

    grant all privileges on zabbix.* to zabbix@localhost;

    flush privileges;

    quit;

  7. 使用zabbix-mysql命令,导入数据库信息

    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

  8. vim /etc/zabbix/zabbix_server.conf

    找到DBPassword=root

    后面填写你的mysql密码

  9. grep '^DBPassword' /etc/zabbix/zabbix_server.conf 检查一下密码是否设置

  10. 修改zabbix的php文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 把时区改为亚洲上海 并去掉注释

    vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

    php_value[date.timezone] = Asia/Shanghai

  11. 启动相关服务

    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

  12. 网页访问ip/zabbix 直接下一步

    后续直接一路下一步不要管

  13. 默认账号密码

    Admin

    zabbix

客户端

  1. 注意时间正确

    服务端和客户端都要进行

    yum install ntpdate -y

    ntpdate -u ntp.aliyun.com

  2. 时区的统一配置

    mv /etc/localtime{,.bak}
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    然后输入date 看看服务端和客户端的日期时间

  3. 在客户端获取zabbix的下载源

    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

  4. 更换zabbix.repo源(下载快点)

    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  5. 安装agent2

    yum install zabbix-agent2 -y

  6. 启动服务

    systemctl enable --now zabbix-agent2

  7. 更改配置文件

    vim /etc/zabbix/zabbix_agent2.conf

    Server=x.x.x.x (填服务端ip地址)

    ServerActive=x.x.x.x (填服务端ip地址)

    Hostname=zabbix-agent01 (填写你的客户端主机名)

  8. 重启服务

    systemctl restart zabbix-agent2

  9. 在服务端安装zabbix-get

    yum install zabbix-get -y

  10. 命令检测 去服务端输入以下命令

    zabbix_get -s '192.168.x.x' -p 10050 -k 'system.hostname'

解决乱码问题

  1. 安装字体(服务端)

    yum -y install wqy-microhei-fonts

  2. 复制字体

    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

添加zabbix-agent主机

自定义监控内容

自定义监控服务器登陆的人数

需求:限制登陆人数不超过两个,超过两个就发出报警信息

  1. 明确需要执行的命令

    who | wc -l

  2. 手动创建zabbix的配置文件,用于自定义key

    cd /etc/zabbix/zabbix_agent2.d/

    vim userparameter_login.conf

    UserParameter=login.user,who|wc -l

  3. 重启服务

    systemctl restart zabbix-agent2

    zabbix_get -s '192.168.70.20' -p 10050 -k 'login.user'

    此时显示2 两台机器人登录 一台本机登录一台ssh连接登录的

在页面添加zabbix-server的自定义监控项模板

添加流程

  1. 创建模板

  2. 创建应用集(好比是一个文件夹,里面放入一堆监控项)

  3. 创建监控项,自定义item,你具体想监控的内容

  4. 创建触发器,当监控项获取到值的时候,进行和触发器比较,判断,决定是否报警

  5. 创建图形

  6. 将具体的主机和该模板链接,关联

  7. 创建模板

可以看到模板已添加

  1. 创建应用集

  1. 创建监控项

  1. 创建触发器

  1. 创建图形

  1. 关联

    找到要关联的主机

    ​ 可以看到图形中已经显示了

    这时候去测试报错 多创建用户ssh连接

    用另外一台虚拟机去ssh连接客户端机器

    ssh [email protected]

    仪表盘就可以看到报错了!

邮件报警

利用上述自定义监控内容来测试邮件报警

创建报警媒介类型

这里需要授权码 (下面写了如何获取授权码)

获取授权码

开启smtp服务让你验证 成功后会发送授权码给你

如果出现报警媒介类型已存在就换个报警媒介名称

Email名称报错 换了个Zabbix_Email

可以看到创建成功了 可以进行测试

测试通过

重新测试增添user登录 可以发现报警并发送邮件了

可以看到以收到报警邮件

最后确认信息即可

聚合图形

现在在这里也能监测到agent01 CPU usage 情况

全网监控方案

如果有许多的机器需要监控难道还需要手动一个个添加主机么?

思路:

  • 克隆监控模板
  • 自动注册和自动发现
  • 使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本如python等

监控服务的具体方法

端口检测的命令

netstat

ss

lsof

在服务端,用zabbix语句 net.tcp.port的值

[root@localhost ~]# zabbix_get -s '192.168.70.20' -p 10050 -k 'net.tcp.port[,22]'
1

自动注册和自动发现

自动发现

​ zabbix server主动的去发现所有的客户端,然后将客户端的信息,登记在服务端的机器上

​ 缺点是 zabbix-server压力会比较大

​ 如果定义的一个网段 100-200网段,耗时较久,且压力比较大

自动注册

​ zabbix agent2主动上报自己的信息,发给zabbix-server

​ 缺点是agent2可能找不到server (配置文件写错了,网络不通)

自动发现步骤

配置hosts解析

先把之前链接测试的客户端禁用删除

vim /etc/hosts

在下面添加你的服务端机器和客户端机器的地址和机器名称

192.168.x.x localhost.localdomain
192.168.x.x zabbix-agent01

直接在这里修改它的规则

最后点主机就可以看到已连接到客户端机器

可以看到已经自动发现了客户端agent01机器

自动注册步骤

1.准备机器

server

agent2

2.修改agent2配置文件

vim /etc/zabbix/zabbix_agent2.conf

3.重启服务

systemctl restart zabbix-agent2

4.验证

去服务端zabbix语句去验证这个机器通信

[root@zabbix-server ~]# zabbix_get -s '192.168.xx.xx' -p 10050 -k 'agent.ping'
1

继续添加 添加主机群主

添加与模板关联

可以看到以及添加进来了

zabbix代理服务器配置

  1. 环境准备,准备三台机器

    zabbix-server zabbix-agent01 zabbix-agent02(代理)

  2. 防火墙都关闭

  3. 确保之前所学的自动发现,注册以及关闭

  4. 准备好客户端机器,agent02机器

  5. 来配置zabbix-proxy代理服务器,并且部署数据库,用于存储agent02发来的数据,最终发给zabbix-server

    ​ 上面我们已经配置就不需要配置了

    1. ​ 配置yum源

      rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

    2. 更换zabbix.repo源(下载快点)

      sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo

  6. 安装proxy,以及数据库

    yum install zabbix-proxy-mysql zabbix-get -y

  7. 启动数据库,配置数据库用户,存储zabbix-agent2信息数据

    没有数据库先安装

    yum install mariadb-server mariadb -y

    [root@zabbix-agent02 ~]# mysql -uroot -p

    MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;

    Query OK, 1 row affected (0.00 sec)

    创建zabbix用户并授予其zabbix_proxy表所有权限

    MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
    Query OK, 0 rows affected (0.00 sec)

  8. 导入zabbix-proxy数据库信息

    查询sql文件在哪

    rpm -ql zabbix-proxy-mysql

    [root@zabbix-agent02 ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.36/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

    再次进入数据库

    [root@zabbix-agent02 ~]# mysql -uroot -p

    使用zabbix_proxy数据库

    MariaDB [(none)]> use zabbix_proxy;

    查看数据库中的表 可以发现以及导入进来了

    MariaDB [zabbix_proxy]> show tables;

  9. 修改zabbix_proxy配置文件,链接数据库的信息 (zabbix-agent02作为代理机器 )

    [root@zabbix-agent02 ~]# sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf
    [root@zabbix-agent02 ~]# sed -i 's#Server=127.0.0.1#Server=192.168.70.18#' /etc/zabbix/zabbix_proxy.conf
    [root@zabbix-agent02 ~]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-agent02#' /etc/zabbix/zabbix_proxy.conf

    grep -Ev '#|$' /etc/zabbix/zabbix_proxy.conf

    systemctl start zabbix-proxy

    ​ 客户端配置

    先修改好配置文件

    vim /etc/zabbix/zabbix_agent2.conf

    在客户端zabbix-agent01机器 重启服务

    systemctl restart zabbix-agent2

    [root@zabbix-agent01 ~]# grep '[1]' /etc/zabbix/zabbix_agent2.conf
    PidFile=/var/run/zabbix/zabbix_agent2.pid
    LogFile=/var/log/zabbix/zabbix_agent2.log
    LogFileSize=0
    Server=192.168.xx.xx
    ServerActive=192.168.xx.xx
    Hostname=zabbix-agent01
    Include=/etc/zabbix/zabbix_agent2.d/*.conf
    ControlSocket=/tmp/agent.sock

SNMP监控

简单网络管理协议

  1. 服务端安装snmp监控程序

    yum install net-snmp net-snmp-utils -y

  2. 开启snmp的配置

    sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf

    systemctl start snmpd.service

  3. 使用snmp命令

    -v 指定协议版本 -c 指定暗号

    [root@zabbix-server ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
    SNMPv2-MIB::sysName.0 = STRING: zabbix-server

    编辑服务端 zabbix-server

    点击更新后可以看到


  1. a-Z ↩︎

标签:zabbix5.0,部署,server,etc,zabbix,yum,proxy,使用,agent2
From: https://www.cnblogs.com/xuxuxuxuxu/p/17512626.html

相关文章

  • 10redis列表操作,其他操作,redis管道,django中使用redis,django缓存,序列化json和pickle,cel
    字符串和字节转换的两种方式#字符串和字节转换的两种方式 -decode,encode-直接类型转换-bytes格式的16进制,2进制,10进制的显示#字符串需要用encode,bytes格式需要用decode,但是有时候忘了#可以直接进行强转b1=bytes(s,encoding='utf-8') print(......
  • 解决使用锐捷网络时CentOS7在网络适配器为NAT模式下无法联网的问题
    原因:锐捷网络会反复自动关闭该服务解决方法:1.使用脚本保持自动打开nat服务2.锐捷客户端下虚拟机VMware无法联网的问题(本人没有尝试过该方法)......
  • 使用exceljs和file-saver导出带图片的excel表格
    参考https://www.swvq.com/article/detail/487https://github.com/exceljs/exceljs/blob/master/README_zh.md#图片importExcelJSfrom'exceljs'importfileSaverfrom'file-saver'letworkbook=nullletworksheet=null//图片转base64constco......
  • F5Cloud第一期如何在AWS上部署F5 VE​
    F5Cloud第一期如何在AWS上部署F5VEF5VE初始化:配置VLAN,Selfip,LOCALDNS,NTP,创建设备组,创建信任关系peer,组建双机,同步配置......
  • Golang 简单的数据对齐可提高程序速度和内存使用率
    序Golang中的结构或struct是用户定义的类型,允许将可能不同类型的项分组/组合为单一类型。可以说是一个不支持继承但支持组合的轻量级类。我们使用Golang编写代码的时候,你肯定使用过struct。但是,你可能不知道的是,通过简单地重新排序结构中的字段,可以极大地提高Go程序的......
  • 在Centos7上部署Yapi
    组件版本:CentOS7Nodev12.22.9mongoDBv4.4.22Yapiv1.12.0一、安装nodenode下载地址:https://registry.npmmirror.com/binary.html?path=node/v12.22.9/下载node压缩包到本地,解压缩文件,移动并重命名node#下载压缩包到本地wgethttps://registry.npmmirror.com/-/bina......
  • Redis的使用
    redis字符串类型操作set(name,value,ex=None,px=None,nx=False,xx=False)在Redis中设置值,默认,不存在则创建,存在则修改参数:ex,过期时间(秒)px,过期时间(毫秒)nx,如果设置为True,则只有name不存在时,当前set操作才执行,值存在,就修改不了,执行没效果xx,如果设......
  • Docker数据管理_为什么使用数据卷
    Docker数据管理_为什么使用数据卷什么是容器数据卷Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(DataVolume)思考Docker容器删除后,在容器中产生的数据还在吗?Docker容器和外部机器可以直接交换文件吗?容器之间能进行数据交互?数据卷概念......
  • 【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实
    为什么要使用不可变集合不可变集合包括元组和冻结集合,其特点是不能被修改。元组有序、不可变、可包含不同类型元素,不能进行修改、删除操作,可通过索引访问元素。冻结集合是一种无序的集合类型,内部元素不能修改、添加或删除,因此常用于处理集合的不可变。不可变对象有很多优点不可变对......
  • Spring之Bean后处理器——InstantiationAwareBeanPostProcessor的使用与源码解析
    <divclass="operating"><aclass="href-article-editslide-toggle">版权</a></div></div></div></div><divid="blogHuaweiyunAdvert"></d......