部署zabbix5.0以及使用

  • 部署zabbix5.0以及使用已关闭评论
  • 261 次浏览
  • A+
所属分类:linux技术
摘要

检查防火墙是否关闭vim /etc/selinux/configSELINUX=disabled内存4G为好配置好阿里yum源


前言

  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

部署zabbix5.0以及使用

  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

    部署zabbix5.0以及使用

  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 直接下一步

    部署zabbix5.0以及使用

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

  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'
    部署zabbix5.0以及使用

解决乱码问题

  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主机

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

自定义监控内容

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

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

  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. 创建模板

部署zabbix5.0以及使用

部署zabbix5.0以及使用

可以看到模板已添加

部署zabbix5.0以及使用

  1. 创建应用集

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

  1. 创建监控项

部署zabbix5.0以及使用

部署zabbix5.0以及使用

  1. 创建触发器

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

  1. 创建图形

部署zabbix5.0以及使用

部署zabbix5.0以及使用

  1. 关联

    找到要关联的主机

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

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

    部署zabbix5.0以及使用

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

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

    ssh root@192.168.x.x

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

    部署zabbix5.0以及使用

邮件报警

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

创建报警媒介类型

部署zabbix5.0以及使用

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

部署zabbix5.0以及使用

获取授权码

部署zabbix5.0以及使用

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

部署zabbix5.0以及使用

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

Email名称报错 换了个Zabbix_Email

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

部署zabbix5.0以及使用

部署zabbix5.0以及使用

测试通过

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

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

部署zabbix5.0以及使用

可以看到以收到报警邮件

部署zabbix5.0以及使用

最后确认信息即可

部署zabbix5.0以及使用

聚合图形

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

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

部署zabbix5.0以及使用

全网监控方案

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

思路:

  • 克隆监控模板
  • 自动注册和自动发现
  • 使用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解析

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

部署zabbix5.0以及使用

vim /etc/hosts

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

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

直接在这里修改它的规则

部署zabbix5.0以及使用

部署zabbix5.0以及使用

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

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

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

自动注册步骤

1.准备机器

server

agent2

2.修改agent2配置文件

vim /etc/zabbix/zabbix_agent2.conf

部署zabbix5.0以及使用

3.重启服务

systemctl restart zabbix-agent2

4.验证

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

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

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

继续添加 添加主机群主

部署zabbix5.0以及使用

添加与模板关联

部署zabbix5.0以及使用

部署zabbix5.0以及使用

部署zabbix5.0以及使用

可以看到以及添加进来了

zabbix代理服务器配置

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

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

  2. 防火墙都关闭

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

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

  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

    部署zabbix5.0以及使用

    [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;

    部署zabbix5.0以及使用

  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

    部署zabbix5.0以及使用

    systemctl start zabbix-proxy

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    ​ 客户端配置

    部署zabbix5.0以及使用

    先修改好配置文件

    vim /etc/zabbix/zabbix_agent2.conf

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    在客户端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

    部署zabbix5.0以及使用

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

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    部署zabbix5.0以及使用

    点击更新后可以看到

    部署zabbix5.0以及使用


  1. a-Z ↩︎