翼度科技»论坛 云主机 LINUX 查看内容

部署zabbix5.0以及使用

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
前言


  • 检查防火墙是否关闭
    vim /etc/selinux/config
    SELINUX=disabled
  • 内存4G为好
  • 配置好阿里yum源
实验步骤-服务端



  • 安装zabbix前端环境
    yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
  • 安装mysql数据库 并启动 设置开机自启
    yum install mariadb-server -y
    systemctl start mysqld
    systemctl enable mysqld
  • 默认没有密码修改密码
    先进入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;
  • 创建zabbix数据库
    create database zabbix character set utf8 collate utf8_bin;
  • 创建zabbix用户
    create user zabbix@localhost identified by 'root';
  • 给zabbix用户zabbix数据库的权限,并刷新权限退出
    grant all privileges on zabbix.* to zabbix@localhost;
    flush privileges;
    quit;
  • 使用zabbix-mysql命令,导入数据库信息
    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
  • vim /etc/zabbix/zabbix_server.conf
    找到DBPassword=root
    后面填写你的mysql密码
  • grep '^DBPassword' /etc/zabbix/zabbix_server.conf 检查一下密码是否设置
  • 修改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

  • 启动相关服务
    systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
    systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
  • 网页访问ip/zabbix 直接下一步

    后续直接一路下一步不要管
  • 默认账号密码
    Admin
    zabbix
客户端


  • 注意时间正确
    服务端和客户端都要进行
    yum install ntpdate -y
    ntpdate -u ntp.aliyun.com
  • 时区的统一配置
    mv /etc/localtime{,.bak}
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    然后输入date 看看服务端和客户端的日期时间
  • 在客户端获取zabbix的下载源
    rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
  • 更换zabbix.repo源(下载快点)
    sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
  • 安装agent2
    yum install zabbix-agent2 -y
  • 启动服务
    systemctl enable --now zabbix-agent2
  • 更改配置文件
    vim /etc/zabbix/zabbix_agent2.conf
    Server=x.x.x.x         (填服务端ip地址)
    ServerActive=x.x.x.x         (填服务端ip地址)
    Hostname=zabbix-agent01         (填写你的客户端主机名)
  • 重启服务
    systemctl restart zabbix-agent2
  • 在服务端安装zabbix-get
    yum install zabbix-get -y
  • 命令检测 去服务端输入以下命令
    zabbix_get -s '192.168.x.x' -p 10050 -k 'system.hostname'

解决乱码问题


  • 安装字体(服务端)
    yum -y install wqy-microhei-fonts
  • 复制字体
    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
添加zabbix-agent主机




自定义监控内容

自定义监控服务器登陆的人数
需求:限制登陆人数不超过两个,超过两个就发出报警信息

  • 明确需要执行的命令
    who | wc -l
  • 手动创建zabbix的配置文件,用于自定义key
    cd /etc/zabbix/zabbix_agent2.d/
    vim userparameter_login.conf
    UserParameter=login.user,who|wc -l
  • 重启服务
    systemctl restart zabbix-agent2
    zabbix_get -s '192.168.70.20' -p 10050 -k 'login.user'
    此时显示2 两台机器人登录 一台本机登录一台ssh连接登录的
在页面添加zabbix-server的自定义监控项模板
添加流程

  • 创建模板
  • 创建应用集(好比是一个文件夹,里面放入一堆监控项)
  • 创建监控项,自定义item,你具体想监控的内容
  • 创建触发器,当监控项获取到值的时候,进行和触发器比较,判断,决定是否报警
  • 创建图形
  • 将具体的主机和该模板链接,关联
  • 创建模板


可以看到模板已添加


  • 创建应用集




  • 创建监控项



  • 创建触发器




  • 创建图形



  • 关联
    找到要关联的主机


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

    这时候去测试报错 多创建用户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.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代理服务器配置


  • 环境准备,准备三台机器
    zabbix-server zabbix-agent01 zabbix-agent02(代理)
  • 防火墙都关闭
  • 确保之前所学的自动发现,注册以及关闭



  • 准备好客户端机器,agent02机器
  • 来配置zabbix-proxy代理服务器,并且部署数据库,用于存储agent02发来的数据,最终发给zabbix-server
    ​        上面我们已经配置就不需要配置了

  • 安装proxy,以及数据库
    yum install zabbix-proxy-mysql zabbix-get -y
  • 启动数据库,配置数据库用户,存储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)
  • 导入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;

  • 修改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监控

简单网络管理协议

  • 服务端安装snmp监控程序
    yum install net-snmp net-snmp-utils -y
  • 开启snmp的配置
    sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
    systemctl start snmpd.service
  • 使用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



    点击更新后可以看到



来源:https://www.cnblogs.com/xuxuxuxuxu/p/17512626.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

x

举报 回复 使用道具