最新要闻

广告

手机

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

光庭信息跌4.57% 2021上市超募11亿2022扣非降74% 时快讯

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

搜狐汽车全球快讯 | 大众汽车最新专利曝光:仪表支持拆卸 可用手机、平板替代-环球关注

家电

部署zabbix5.0以及使用 全球微头条

来源:博客园

前言

  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-fpmsystemctl 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 root@192.168.x.x

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

邮件报警

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

创建报警媒介类型

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

获取授权码

开启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.localdomain192.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.confPidFile=/var/run/zabbix/zabbix_agent2.pidLogFile=/var/log/zabbix/zabbix_agent2.logLogFileSize=0Server=192.168.xx.xxServerActive=192.168.xx.xxHostname=zabbix-agent01Include=/etc/zabbix/zabbix_agent2.d/*.confControlSocket=/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 sysnameSNMPv2-MIB::sysName.0 = STRING: zabbix-server

    编辑服务端 zabbix-server

    点击更新后可以看到


  1. a-Z ↩︎

关键词: