zabbix5.0的安装与使用-centos7

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • zabbix介绍
  • zabbix的安装
    • 1、centos+nginx+mysql的准备工作
      • a、centos关闭selinux
    • 配置与ntp服务器chrony时间同步
      • b、安装nginx(可以先不安装,后面zabbix有专门的nginx):
        • Nginx采用docker 镜像,挂载目录
      • c、安装mysql5.7
        • mysq采用 docker 镜像
    • 2、选择平台
    • 安装和配置 Zabbix 服务器
      • a、安装 Zabbix 存储库
      • b、 安装Zabbix 服务器
      • c、安装 Zabbix 前端
      • d、创建数据库
        • 导入数据库-初始模式和数据,系统将提示您输入新创建的密码
      • e、zabbix-server配置文件中的数据库配置
      • f、为 Zabbix 前端配置 PHP
      • g、启动服务并设置开机自启
      • h、安装zabbix-agent
        • 补充:下载二进制包--生产环境不能连外网的情况下
        • 批量脚本处理
        • windows下的安装
      • i、配置 Zabbix 前端
  • 二、zabbix前端页面的基础配置
    • 一、邮箱
      • Zabbix配置邮箱
      • 用户群组授权-设备组读写
      • 配置-动作,创建动作-标签触发报警
      • 配置-操作
    • 创建被监控的主机-服务器
      • 创建监控主机的内容
      • 图形化展示
  • 自定义等进阶内容
    • 二、自定义监控项,脚本监控。用到上边配置客户端时的配置文件。
      • 监控主机cpu达到80%后报警
    • 三、web监控
      • 创建场景
  • 使用SNMP监控网络设备
    • 服务器主机需要安装net-snmp
    • 交换机和路由器的设置snmp v2c与v3
    • snmp v3配置方法
    • 监 控EXSI 虚拟化主机
      • 开启MOB服务(ManagedObjectBrowser)
      • 添加zabbix只读用户
      • 获取ESXi主机UUID
      • zabbix添加监控主机
  • 故障问题
    • WEB页面下提示: zabbix server is not running: the information displayed may not be current
    • 故障无法发送邮件,提示: Couldn't connect to server: Failed to connect to 2409:8c54:1050:10::43: Network is unreachable
    • 故障主机显示红色ZBX,提示: Received empty response from Zabbix Agent at [192.168.118.10]. Assuming that agent dropped connection because of access permissions.
    • Telnet service is down on Client-nginx1
    • 其他主机 可用性无法亮绿,基本上是因为主机名称没设置好,造成无法识别,这个要注意下。
    • 同一机子上二进制安装和docker安装冲突
    • 忘了Admin密码时改密
    • Zabbix server: Utilization of poller processes over 75%
  • 从源码安装
    • 创建用户账户
    • 配置源代码
  • docker容器安装
  • 解决 Zabbix 占用内存过大


zabbix介绍

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。zabbix由两部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

zabbix的安装

1、centos+nginx+mysql的准备工作

本次安装的服务器基础环境为centos7+nginx+mysql,首先进行安装前的准备工作

a、centos关闭selinux

# systemctl disable firewalld
# systemctl stop firewalld
# setenforce 0 
# sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/selinux/config
reboot

配置与ntp服务器chrony时间同步

# vim /etc/chrony.conf
server 192.168.118.33 iburst       //新增一行,指向NTP服务,原来几个可以#掉

# for i in { 01 02 }; do scp /etc/chrony.conf root@ceph$i:/etc/ ;done 
# systemctl restart chronyd
# chronyc sources -v    //验证时间是否同步  client1前面有^*表示同步成功
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.118.33                3   6     7     2  +7866ns[  +14ms] +/-  143ms

windows客户端 修改-> 调整时期与时间->internet 时间-》更改设置
zabbix5.0的安装与使用-centos7_第1张图片

b、安装nginx(可以先不安装,后面zabbix有专门的nginx):

nginx可以先不装,后面安装前端时也有一个,没改端口的话容易造成端口冲突。

#由于centos默认没有nginx rpm源,首先更新一下nginx的rpm源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 
# 安装nginx
yum install nginx
# 设置开机启动
systemctl enable nginx
# 启动nginx
systemctl start nginx
# 查看nginx启动状态
systemctl status nginx

Nginx采用docker 镜像,挂载目录
#docker run -d -p 80:80 --name nginx01 \
-v /data/nginx/log:/var/log/nginx  \
-v /data/nginx/html:/usr/share/nginx/html \
-v /data/nginx/conf:/etc/nginx/conf.d \
registry.cn-hangzhou.aliyuncs.com/ivesgdidf/nginx

拷贝临时容器默认文件到默认路径
直接挂载,默认配置文件不会生成,所以需要从一个临时的容器中复制一份过来

# docker run -d -p 83:80 --name nginx03 centos-nginx:latest
# docker start nginx03
# docker cp nginx03:/usr/share/nginx/html/index.html /data/nginx/html
# docker cp nginx03:/etc/nginx/conf.d/default.conf /data/nginx/conf/
# docker stop nginx03 | docker rm nginx03                 ##删除临时容器
# docker restart nginx01

c、安装mysql5.7

# 更新mysql的rpm源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
# 由于该rpm源默认的mysql版本为8.0,我们需要改为5.7
vim /etc/yum.repos.d/mysql-community.repo

如下所示,更改默认版本为5.7

zabbix5.0的安装与使用-centos7_第2张图片

# cat /etc/yum.repos.d/mysql-community.repo 
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

注意:这个方式安装不了的话,可能是官网又更新了,可以看看 MySQL高可用集群-MHA 的安装方式。

# 安装 mysql 
yum -y install mysql-community-server mysql-community-devel 
# 设置 mysql 为开机启动
systemctl enable mysqld
# 启动 mysql
systemctl start mysqld
# 查看 mysql 启动状态
systemctl status mysqld
# 查看 mysql 临时密码
grep 'temporary password' /var/log/mysqld.log
# 用临时密码登录 mysql
mysql -uroot -p
# 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 
# 允许远程登录
update mysql.user set Host='%' where HOST='localhost' and User='root';


# 刷新权限
mysql> flush privileges;
# 退出
quit;

mysq采用 docker 镜像
# docker pull mysql:5.7
# docker run -d -p 3306:3306 --name mysql \
-v /opt/mysql/log:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql/conf \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7

# docker exec -it mysql /bin/bash

2、选择平台

在官网选择对应的平台与版本
zabbix5.0的安装与使用-centos7_第3张图片

安装和配置 Zabbix 服务器

a、安装 Zabbix 存储库

// 更新zabbix的rpm源
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

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

//清掉其他 源
# yum clean all

b、 安装Zabbix 服务器

# yum -y install zabbix-server-mysql
....
依赖关系解决

====================================================================================================================================================
 Package                                 架构                       版本                             源                                        大小
====================================================================================================================================================
正在安装:
 zabbix-server-mysql                     x86_64                     5.0.36-1.el7                     zabbix                                   3.2 M
为依赖而安装:
 OpenIPMI                                x86_64                     2.0.27-1.el7                     base                                     243 k
 OpenIPMI-libs                           x86_64                     2.0.27-1.el7                     base                                     523 k
 OpenIPMI-modalias                       x86_64                     2.0.27-1.el7                     base                                      16 k
 fping                                   x86_64                     3.16-1.el7                       zabbix-non-supported                      44 k
 unixODBC                                x86_64                     2.3.1-14.el7                     base                                     413 k

事务概要
====================================================================================================================================================
安装  1 软件包 (+5 依赖软件包)




c、安装 Zabbix 前端

启用红帽软件集合

# yum install centos-release-scl

编辑文件 /etc/yum.repos.d/zabbix.repo 并启用 zabbix-frontend 存储库。

[zabbix-frontend]
...
enabled=1
...

安装前端包

# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl

d、创建数据库

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> update mysql.user set Host='%' where HOST='localhost' and User='zabbix';
mysql> flush privileges;
mysql> quit;

---降低密码安全强度
mysql> set global validate_password_special_char_count=0;
mysql> set global validate_password_mixed_case_count=0;
mysql> set global validate_password_length=6;
mysql> set global validate_password_number_count=0;
# flush privileges;

最后的zabbix表示数据库名

docker 容器的mysql 方式需要

[root@localhost ives]# cp /usr/share/doc/zabbix-server-mysql-5.0.23/create.sql.gz /opt/mysql/data/zabbix/
[root@localhost ives]# docker exec -it mysql /bin/bash
root@0f3e375c1261:/# zcat /var/lib/mysql/zabbix/create.sql.gz | mysql -uzabbix -p  zabbix     

导入数据库-初始模式和数据,系统将提示您输入新创建的密码
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix 

e、zabbix-server配置文件中的数据库配置

# vim /etc/zabbix/zabbix_server.conf
。。
DBPassword=password        
。。

f、为 Zabbix 前端配置 PHP

编辑文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf,取消注释并设置“listen”和“server_name”指令。

# listen 80;
# server_name example.com;      

//域名一定要改,可以改成 IP地址 192.168..;否则,后面启动后会显示红帽的默认nginx的页面,不显示zabbix页面,如下
zabbix5.0的安装与使用-centos7_第4张图片

编辑文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,将 nginx 添加到 listen.acl_users 指令。

listen.acl_users = apache,nginx

然后取消注释并为您设置正确的时区。

; php_value[date.timezone] = Europe/Riga

改成系统相同的如: Asia/Shanghai
Beijing

g、启动服务并设置开机自启

# systemctl restart zabbix-server rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server rh-nginx116-nginx rh-php72-php-fpm

h、安装zabbix-agent

zabbix-agent安装在被监控服务器上,可以与zabbix-server在同一台服务器上,也可以在不同服务器上,以下假定在新的一台服务器上进行安装

# 更新zabbix的rpm源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm


yum clean all
#  安装
yum -y install zabbix-agent

//显示前面不带#的配置行
# grep -n '^[^#]' /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
117:Server=127.0.0.1
163:ServerActive=127.0.0.1
174:Hostname=Zabbix server                        //在服务器端配置时的名称,要对应好,其他节点还是要注意下.
314:Include=/etc/zabbix/zabbix_agentd.d/*.conf

vim /etc/zabbix/zabbix_agentd.conf   //服务端安装这个会在/etc/zabbix/文件下,客户只接安装代理则会在/etc下
--- 其他服务器配置如下
Server=192.168.118.20           //zabbix-server服务器的ip地址
# ListenPort=10050              //默认10050端口,要改其他就改下,不然就不要动
StartAgents=3                   //138行,去掉前面的#号,如果设置为0,则禁用被动检查,
ServerActive=192.168.118.20     //163行,zabbix-server地址,用于服务可用性探测
Hostname=Client-nginx1          //必须与服务器上配置的主机名匹配。
Include=/etc/zabbix/zabbix_agentd.d/*.conf            //334行,不动
---

# 启动服务并设置开机自启
systemctl start zabbix-agent
systemctl enable zabbix-agent

netstat -anpt | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2952/zabbix_agentd  
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      2344/zabbix_server  
tcp6       0      0 :::10050                :::*                    LISTEN      2952/zabbix_agentd  
tcp6       0      0 :::10051                :::*                    LISTEN      2344/zabbix_server

补充:下载二进制包–生产环境不能连外网的情况下

服务 不能连外,只能其他 机子先下载,再上传到指定服务器

 wget https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.36/zabbix_agent-5.0.36-linux-3.0-amd64-static.tar.gz

 mkdir /opt/zabbix_agent
 mv zabbix_agent-5.0.36-linux-3.0-amd64-static.tar.gz /opt/zabbix_agent
 cd zabbix_agent
 tar -zxvf zabbix_agent-5.0.36-linux-3.0-amd64-static.tar.gz
#ls
bin  conf  sbin
cp conf/zabbix_agentd.conf conf/zabbix_agentd.conf.bak

创建zabbix用户

groupadd zabbix
useradd -g zabbix -s /sbin/nologin zabbix

创建需要的目录及授权

mkdir -p /var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix

修改下配置文件

# grep -n '^[^#]' conf/zabbix_agentd.conf
30:LogFile=/tmp/zabbix_agentd.log
113:Server=127.0.0.1
159:ServerActive=127.0.0.1
170:Hostname=Zabbix server

vim conf/zabbix_agentd.conf

PidFile=/opt/zabbix_agent/zabbix_agentd.pid               //11行,去掉#号空格,再改路径。
LogFile=/var/log/zabbix/zabbix_agentd.log               //32行,改路径
Server=192.168.118.10                                   //113行 ,127.0.0.1改成服务器地址    
ListenPort=10050                                       //121行,去掉#号
StartAgents=3                                     //138行,去掉前面的#号,如果设置为0,则禁用被动检查,
ServerActive=192.168.118.10                       //zabbix-server地址,用于服务可用性探测
Hostname=node                               //必须与服务器上配置的主机名匹配。
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf

把zabbix-agent/bin/下的两个命令软连接到/usr/bin下

ln -s /opt/zabbix_agent/bin/*   /usr/bin/

cp sbin/zabbix_agentd /usr/bin/

创建服务启动文件

# vim zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/opt/zabbix_agent/conf/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/opt/zabbix_agent/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/bin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target

启动服务

cp zabbix-agent.service  /usr/lib/systemd/system/
systemctl daemon-reload 
systemctl restart zabbix-agent.service
systemctl enable zabbix-agent.service
systemctl status zabbix-agent.service

这部分应该是要放后面的,相对应该的服务端页面的设置
zabbix5.0的安装与使用-centos7_第5张图片
这个安装包是被动模式的,主动模式不能用
zabbix agent检测分为主动(agent active) 和被动(agent)
agent 安装包 对应zabbix agent模块
agent2 安装包对应zabbix agent active模块

zabbix5.0的安装与使用-centos7_第6张图片
在这里插入图片描述
重新安装另一台时,又出现PID问题,直接指到其他opt路径,不能生效,
生产中的服务 器是不能随便重启的,只能先用在线安装,后续有空再用虚拟机再装下

报错:
Jul 13 15:42:45 data_node1 systemd[1]: Can't open PID file /run/zabbix/zabbix_agentd.pid (yet?) after start: No such file or directory
Jul 13 15:42:45 data_node1 systemd[1]: Failed to start Zabbix Agent.

先把配置文件的PID文件改回到 /var/run/下,正常启动后,再停止,再把文件指向到/opt/zabbix_agentd

/usr/lib/systemd/system/zabbix-agent.service
conf/zabbix_agentd.conf
默认:
PidFile=/var/run/zabbix/zabbix_agentd.pid

mkdir -p /var/run/zabbix/
chown -R zabbix:zabbix /var/run/zabbix/
批量脚本处理
//查看版本软件
yum --showduplicates list zabbix-agent      
//下载软件不安装,或不指定版本下载最新的
yum install zabbix-agent.x86_64.0.5.0.36-1.el7 --downloadonly --downloaddir=/opt -y

for i in { 11 12 13 }; do scp zabbix-agent.* root@192.168.30.$i:/opt/ ;done
或 
ansible node -m copy -a 'src=/opt/zabbix-agent.* dest=/opt/'

//本机安装查看,再确认下当前版本的行数,如有不对请改后面脚本
rpm -ivh /opt/zabbix-agent-5.0.36-1.el7.x86_64.rpm
grep -n '^[^#]' /etc/zabbix/zabbix_agentd.conf
13:PidFile=/var/run/zabbix/zabbix_agentd.pid
32:LogFile=/var/log/zabbix/zabbix_agentd.log
43:LogFileSize=0
117:Server=127.0.0.1
163:ServerActive=127.0.0.1
174:Hostname=Zabbix server
314:Include=/etc/zabbix/zabbix_agentd.d/*.conf

//建立脚本
vim zabbix-agent-conf.sh  
---
//安装程序zabbix-agent
rpm -ivh /opt/zabbix-agent-5.0.36-1.el7.x86_64.rpm

//修改配置文件,注意替换行数,最好提前再确认下当前版本的行数
grep -n '^[^#]' /etc/zabbix/zabbix_agentd.conf
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.ba
sed -i 's/# StartAgents=3/StartAgents=3/g' /etc/zabbix/zabbix_agentd.conf
sed -i '125c ListenPort=11050' /etc/zabbix/zabbix_agentd.conf
sed -i '117c Server=192.168.118.10' /etc/zabbix/zabbix_agentd.conf
sed -i '163c ServerActive==192.168.118.10' /etc/zabbix/zabbix_agentd.conf
sed -i 's/Hostname=Zabbix server/Hostname='"$HOSTNAME"'/g' /etc/zabbix/zabbix_agentd.conf
grep -n '^[^#]' /etc/zabbix/zabbix_agentd.conf

//启动服务
systemctl restart zabbix-agent.service 
systemctl status zabbix-agent.service 
systemctl enable zabbix-agent.service 

----
//复制脚本文件
for i in { 11 12 13 }; do scp zabbix-agent-conf.sh [email protected].$i:/opt/ ;done
或 
ansible node -m copy -a 'src=/opt/zabbix-agent-conf.sh dest=/opt/'

//ansible执行脚本文件
ansible node -m command -a "sh /opt/zabbix-agent-conf.sh"
windows下的安装

下载地址:https://cdn.zabbix.com/zabbix/binaries/stable/5.0/5.0.14/zabbix_agent2-5.0.14-windows-amd64-openssl.msi
zabbix5.0的安装与使用-centos7_第7张图片

Host name需要和Zabbix服务端Web页面上设置的主机名称一致

zabbix5.0的安装与使用-centos7_第8张图片

i、配置 Zabbix 前端

连接到您新安装的 Zabbix 前端:http:// server_ip_or_name
按照 Zabbix 文档中描述的步骤:

二、zabbix前端页面的基础配置

1、前端页面初始化工作
zabbix-server配置完成并启动后,访问对应的域名,进行初始化工作
zabbix5.0的安装与使用-centos7_第9张图片

进行环境检查

zabbix5.0的安装与使用-centos7_第10张图片

进行数据库配置工作
zabbix5.0的安装与使用-centos7_第11张图片
zabbix5.0的安装与使用-centos7_第12张图片

这里会提示错误:
Details Cannot connect to the database.
Access denied for user ‘zabbix’@‘%’ to database ‘zabbix’
百度查下很多人说改这个文件

# ls /usr/share/zabbix/conf/
certs  zabbix.conf.php.example
# cp /usr/share/zabbix/conf/zabbix.conf.php.example /usr/share/zabbix/conf/zabbix.conf.php 
# vim /usr/share/zabbix/conf/zabbix.conf.php

$DB['SERVER']                   = 'localhost';
$DB['PORT']                             = '3306';
$DB['PASSWORD']                 = '';

改完还是没法下一步,考虑到权限问题,就进数据库查看用户权限,发现是无访问权限 USAGE ON .
,奇怪了,用MySQLQueryBrowser 都连得好好的,只能再重新对zabbix这个库重新授权下,就搞定了.
回退把/usr/share/zabbix/conf/zabbix.conf.php改名掉,还是可以下一步,说明5.0不用提前设置这个文件,最后完成配置后,会自动生成的,看后面…。

mysql> show grants for zabbix;
+------------------------------------+
| Grants for zabbix@%                |
+------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'%' |
+------------------------------------+
1 row in set (0.01 sec)

## zabbix用户和 zabbix@localhost会被mysql认为是两个库,一个本地,一个远端
mysql> create user zabbix identified by 'zabbix';

mysql> grant all privileges on zabbix.* to zabbix;

mysql> show grants for zabbix;
+----------------------------------------------------+
| Grants for zabbix@%                                |
+----------------------------------------------------+
| GRANT USAGE ON *.* TO 'zabbix'@'%'                 |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'%' |
+----------------------------------------------------+
2 rows in set (0.00 sec)

Zabbix服务器详细信息
zabbix5.0的安装与使用-centos7_第13张图片

检查配置

zabbix5.0的安装与使用-centos7_第14张图片

完成配置工作
zabbix5.0的安装与使用-centos7_第15张图片

登录,初始用户名为Admin,密码为zabbix

zabbix5.0的安装与使用-centos7_第16张图片
进入主页
zabbix5.0的安装与使用-centos7_第17张图片

更改界面语言为中文
zabbix5.0的安装与使用-centos7_第18张图片
zabbix5.0的安装与使用-centos7_第19张图片
zabbix5.0的安装与使用-centos7_第20张图片

一、邮箱

1、登录邮箱后台找到邮箱的授权码,用于配置zabbix报警邮箱,163邮箱方式是,设置-POP3/SMTP/IMAP,点进去后下边授权密码管理。加一下授权码,需复制下来保存,只显示一次。
QQ邮箱方式是 账户-设置-POP3/SMTP/IMAP。。开启 -短信验证 : 授权码 fleaycxhbuhpcadf

Zabbix配置邮箱

zabbix5.0的安装与使用-centos7_第21张图片zabbix5.0的安装与使用-centos7_第22张图片
马上测试下看能不能发送
zabbix5.0的安装与使用-centos7_第23张图片
zabbix5.0的安装与使用-centos7_第24张图片

然后到管理-用户,点Admin用户
zabbix5.0的安装与使用-centos7_第25张图片
zabbix5.0的安装与使用-centos7_第26张图片

zabbix5.0的安装与使用-centos7_第27张图片

用户群组授权-设备组读写

zabbix5.0的安装与使用-centos7_第28张图片
zabbix5.0的安装与使用-centos7_第29张图片

配置-动作,创建动作-标签触发报警

zabbix5.0的安装与使用-centos7_第30张图片

zabbix5.0的安装与使用-centos7_第31张图片

配置-操作

zabbix5.0的安装与使用-centos7_第32张图片

custom messege 部分:

{TRIGGER.STATUS}: {TRIGGER.NAME}

故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
告警主机:{HOSTNAME1},IP地址:{HOST.CONN}
告警时间:{EVENT.DATE}--{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

如需重复报警,上边的步骤里,把1-1改成1-3,就是同一事件报警3次,0表示无数次。

5、恢复操作:
zabbix5.0的安装与使用-centos7_第33张图片

{TRIGGER.STATUS}: {TRIGGER.NAME}

恢复:{TRIGGER.STATUS},服务器:{TRIGGER.NAME} 已经恢复!   
告警主机:{HOSTNAME1} ,IP地址:{HOST.CONN}
告警时间:{EVENT.DATE}---{EVENT.TIME}
恢复时间:{EVENT.DATE}---{EVENT.RECOVERY.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

zabbix5.0的安装与使用-centos7_第34张图片
虽然配置完就是显示启用状态,但是好久没发邮件,偶然勾选了再启用,就生效了。
zabbix5.0的安装与使用-centos7_第35张图片

停掉虚拟机服务或 SW后的,问题这边有动作自动发邮件,动作日志也可以查看。
zabbix5.0的安装与使用-centos7_第36张图片
zabbix5.0的安装与使用-centos7_第37张图片

创建被监控的主机-服务器

安装完面会默认加服务器端了
zabbix5.0的安装与使用-centos7_第38张图片
zabbix5.0的安装与使用-centos7_第39张图片
zabbix5.0的安装与使用-centos7_第40张图片

创建监控主机的内容

zabbix5.0的安装与使用-centos7_第41张图片
zabbix5.0的安装与使用-centos7_第42张图片
zabbix5.0的安装与使用-centos7_第43张图片
这里注意下:
zabbix agent检测分为主动(agent active)和被动(agent)两种形式,主动与被动的说法均是相对于agent来讨论的。简单说明一下主动与被动的区别如下:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
zabbix5.0的安装与使用-centos7_第44张图片
zabbix5.0的安装与使用-centos7_第45张图片
zabbix5.0的安装与使用-centos7_第46张图片
zabbix5.0的安装与使用-centos7_第47张图片
过一会就会显示出来监控状况,红色代表有问题了, Zabbix server 使用正常
zabbix5.0的安装与使用-centos7_第48张图片
zabbix5.0的安装与使用-centos7_第49张图片
在这里插入图片描述
邮件发送等故障问题,看后面的故障内容,处理完后
zabbix5.0的安装与使用-centos7_第50张图片

图形化展示

zabbix5.0的安装与使用-centos7_第51张图片

如上图左上角所示,选择对应的监控项,则会展示监控图表数据,但是图表部分的汉字乱码
需要安装对应的字体包
执行如下命令:

yum -y install wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
cp: overwrite ‘/usr/share/fonts/dejavu/DejaVuSans.ttf’? y

再次刷新页面,即可正常显示
zabbix5.0的安装与使用-centos7_第52张图片

自定义等进阶内容

二、自定义监控项,脚本监控。用到上边配置客户端时的配置文件。

1、建模板
zabbix5.0的安装与使用-centos7_第53张图片
zabbix5.0的安装与使用-centos7_第54张图片


zabbix5.0的安装与使用-centos7_第55张图片

2、创建监控项
zabbix5.0的安装与使用-centos7_第56张图片

3、建触发器

zabbix5.0的安装与使用-centos7_第57张图片

4、最后将要建的模板加入相应的主机。
方法:

zabbix5.0的安装与使用-centos7_第58张图片

监控主机cpu达到80%后报警

默认cpu监控模板中的触发器,当负载在一定时间内(比如最近5分钟)超过5以上为报警阀值。但是在实际场景中,由于服务器配置不一样,这个默认的cpu触发器用起来意义就不大了,这时候就需要我们手动自定义cpu的触发器了。

在cpu utilization中有一个cpu idle时间,即cpu的空闲时间,当空闲时间小于20%的时候就是cpu大于80%的时候。所以cpu达到80%后报警的触发器配置如下:

名称:cpu user percent on {HOST.NAME} gt 80%

表达式:{Template OS Linux:system.cpu.util[,idle].avg(5)}<20

zabbix5.0的安装与使用-centos7_第59张图片

三、web监控

1、进入配置
点配置-主机,之后点想要建web页面监控的主机
zabbix5.0的安装与使用-centos7_第60张图片
关于加密: 内网可以不加密,比较消耗资源。

zabbix5.0的安装与使用-centos7_第61张图片
点右上角的 创建应用集
应用集一般配合监控项使用,是多个同类型的监控项的分类目录
名字随便输入,比如你后面这个应用集里面放的是监控cpu的,你可以写成cpu utils
zabbix5.0的安装与使用-centos7_第62张图片
zabbix5.0的安装与使用-centos7_第63张图片
zabbix5.0的安装与使用-centos7_第64张图片

创建场景

场景模式可以用来测试访问主页、登入,测试,登出,测试(具体可以参考官网https://www.zabbix.com/documentation/5.0/zh/manual/web_monitoring/example)
zabbix5.0的安装与使用-centos7_第65张图片
2、然后同一页面,点步骤

zabbix5.0的安装与使用-centos7_第66张图片
3、下一步创建模板,用于报警

zabbix5.0的安装与使用-centos7_第67张图片

4、 触发器

zabbix5.0的安装与使用-centos7_第68张图片

这里边选择完主机会出现刚才的web场景的选项

zabbix5.0的安装与使用-centos7_第69张图片

5、然后把模板应用于主机
zabbix5.0的安装与使用-centos7_第70张图片

    至此完成web页面状态码监控,注意这里只能监测到返回200以外的错误,像网页文件打不开这种404等之类的,而nginx挂了的超时并不会报错。可以用前边的进程监控,也可以利用nginx状态模块监控,也可以用下边的端口监控,当然nginx只监听一个端口时可以,多个端口建议用进程或状态模块。

四、端口监控
1、配置开始
点配置-主机-相应的主机-选中之前web监控建的模板。因为我这里是一个应用,所以用相同的模板,可以单独建立一个。

zabbix5.0的安装与使用-centos7_第71张图片

2、创建监控项
点进相应的主机后,创建监控项

zabbix5.0的安装与使用-centos7_第72张图片

zabbix5.0的安装与使用-centos7_第73张图片

3、创建触发器
接着点,触发器,创建触发器。

zabbix5.0的安装与使用-centos7_第74张图片

使用SNMP监控网络设备

服务器主机需要安装net-snmp

yum install  net-snmp

vim /etc/snmp/snmpd.conf
#       sec.name  source          community
com2sec notConfigUser  default       public     //修改团体名称public 改成zabbix

#       groupName      securityModel securityName
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c          notConfigUser  // notConfigUser改成关联至组 notConfigGroup

# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#       name           incl/excl     subtree         mask(optional)
view    systemview    included   .1.3.6.1.2.1.1
view    systemview    included   .1.3.6.1.2.1.25.1.1

//创建一个view,并对其授权可访问的OID范围, 自定义授权,否则zabbix server无法获取数据,这里需要用到SNMP MIB,参考https://blog.csdn.net/qq_36801585/article/details/105569627 ,华为的设备为1.3.6.1.4.1.2011
view    systemview    included   1.3.6.1.4.1.2011

//或者 获取所有的数据,如下取消前面#
view systemonly included .1

改完记得重启下

测试获取数据

yum -y install net-snmp-utils
snmpwalk -v 2c -c zabbix 192.168.118.254  .1.3.6.1.4.1.2021.192.168.118.20


服务页面正常后显示如下,SNMP变绿色:
在这里插入图片描述
交换机也可以同样获取,IP取值其中一个Vlan的IP就好,主机名确保和设置一致。

补允: snmpwalk使用方法很简单,如下:

snmpwalk -v 12c(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)

–v:指定snmp的版本, 1或者2,该参数必须有。

–c:指定连接设备SNMP读密码,该参数必须有。

IP:指定要walk的设备的IP地址,该参数必须有。

OID:代表要获取设备的指标oid,该参数不是必须的。

# snmpwalk -v 2c -c zabbix 192.168.118.254   //这样会获 取一大堆信息。。。
# snmpwalk -v 2c -c zabbix 192.168.118.254  system  //查看系统信息
SNMPv2-MIB::sysDescr.0 = STRING: Huawei AR1220 Huawei Versatile Routing Platform Software  VRP (R) software,Version 5.130 (AR1220 V200R003C00) Copyright (C) 2011-2012 Huawei Technologies Co., Ltd
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.2011.2.224.1
。。。
# snmpwalk -v 2c -c zabbix 192.168.118.254 ifDescr //获取网卡信息

交换机和路由器的设置snmp v2c与v3

打开Ensp模拟器设置需要的设置及中转的云
zabbix5.0的安装与使用-centos7_第75张图片
设置云连接到内网
zabbix5.0的安装与使用-centos7_第76张图片

路由、交换机的IP和路由设置好后,这里省略

[R1]snmp-agent 
[R1]snmp-agent community read zabbix     //设置团体名为zabbix
[R1]snmp-agent sys-info version all     //开启所有版本的SNMP
//udp-port是监听端口,address是zabbix服务器地址,trap-hostname、trap-paramsname  服务主机名
[R1]snmp-agent target-host trap-hostname zabbix address 192.168.118.20 udp-port 161 trap-paramsname zabbix
[R1]snmp-agent trap enable     /开启SNMP
[SW]snmp-agent
[SW]snmp-agent sys-info version v2c
[SW]snmp-agent community read/write XXX(团体名)     zabbix     //设置团体名为zabbix
[SW]snmp-agent target-host inform address udp-domain 192.168.118.20 params securityname zabbix v2c
[SW]snmp-agent trap enable     /开启SNMP

或者  ??
[SW]snmp-agent target-host inform address udp-domain 192.168.118.10 udp-port 10160 params securityname zabbix  v2c 

新设备改端 口 snmp-agent port ?

回到服务器添加主机 {SNMP_COMMUNITY}
zabbix5.0的安装与使用-centos7_第77张图片

zabbix5.0的安装与使用-centos7_第78张图片
添加一个宏{$SNMP_COMMUNITY},设置团体名字:
zabbix5.0的安装与使用-centos7_第79张图片
在这里插入图片描述
在这里插入图片描述

snmp v3配置方法

v3用户名zabbix

dis cu | inc snmp
snmp-agent
snmp-agent community read cipher zabbix
snmp-agent sys-info version v3
snmp-agent usm-user v3 zabbix                         //实体机只要用户名zabbix ,虚拟机还要后面跟组名,一样zabbix           
snmp-agent usm-user v3 zabbix authentication-mode sha        回车输PW    zabbix
snmp-agent usm-user v3 zabbix privacy-mode aes128         回车输PW
snmp-agent trap enab

zabbix5.0的安装与使用-centos7_第80张图片
虚拟机设置方法:
用户名:zabbix 组名:zabbix 认证算法:md5 加密算法:des56

snmp-agent
snmp-agent community read cipher zabbix
snmp-agent sys-info version v3
snmp-agent usm-user v3 zabbix zabbix authentication-mode sha zabbix123 privacy-mode des56 zabbix123

//配置Trap
snmp-agent target-host trap address udp-domain 192.168.118.10 udp-port 161 params securityname zabbix v3 privacy
snmp-agent trap enable     

后面可以再加acl 控制
[SW]snmp-agent usm-user v3 zabbix zabbix authentication-mode sha zabbix123 privacy-mode des56 zabbix123 acl ?
  INTEGER<2000-2999>  Apply basic ACL

zabbix5.0的安装与使用-centos7_第81张图片
zabbix5.0的安装与使用-centos7_第82张图片
在这里插入图片描述

监 控EXSI 虚拟化主机

vim /etc/zabbix/zabbix_server.conf
参考以下内容修改:
StartVMwareCollectors=0 修改为
StartVMwareCollectors=3
此值取决于要监控的 VMware 服务的数量。在大多数情况下,这应该是
servicenum < StartVMwareCollectors < (servicenum * 2)

其中 servicenum 是 VMware 服务的数量。例如:如果您有 1 个 VMware 服务要将 StartVMwareCollectors 设置为 2。

systemctl restart zabbix-server

开启MOB服务(ManagedObjectBrowser)

在管理-系统-高级设置,找到键:Config.HostAgent.plugins.solo.enableMob,然后将其设置为true
zabbix5.0的安装与使用-centos7_第83张图片

添加zabbix只读用户

创建用户
zabbix5.0的安装与使用-centos7_第84张图片
添加权限
zabbix5.0的安装与使用-centos7_第85张图片
zabbix5.0的安装与使用-centos7_第86张图片
zabbix5.0的安装与使用-centos7_第87张图片

获取ESXi主机UUID

3.1 访问ManagedObjectReference页面
浏览器访问:https://esxi_ip/mob
zabbix5.0的安装与使用-centos7_第88张图片
获取主机UUID
浏览器访问:https://esxi_ip/mob/?moid=ha-host&doPath=hardware.systemInfo
zabbix5.0的安装与使用-centos7_第89张图片
UUID: aaa64d56-91e0-85ab-50ff-b4533a6acd39

zabbix添加监控主机

zabbix5.0的安装与使用-centos7_第90张图片

zabbix5.0的安装与使用-centos7_第91张图片
设置宏:添加以下变量
{KaTeX parse error: Expected 'EOF', got '}' at position 11: VMWARE.URL}̲ {VMWARE.USERNAME}
{KaTeX parse error: Expected 'EOF', got '}' at position 16: VMWARE.PASSWORD}̲ {VMWARE.HV.UUID}

zabbix5.0的安装与使用-centos7_第92张图片

故障问题

WEB页面下提示: zabbix server is not running: the information displayed may not be current

docker ps
查看到容器一直在重启,查看日志
docker logs -f --tail 500 0f3e375c1261
故障原因 ,大致说明没有空间,mysql容器无法启动

查询后,磁盘没有空间

[root@localhost ives]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 894M     0  894M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M   19M  892M    3% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   39G   39G   20K  100% / ------------------没 空间了。。。。。
/dev/sda1               1014M  185M  830M   19% /boot
/dev/mapper/centos-home   19G  203M   19G    2% /home
tmpfs                    182M   12K  182M    1% /run/user/42
tmpfs                    182M     0  182M    0% /run/user/0
tmpfs                    182M     0  182M    0% /run/user/1000

排查看,发现之前做的每天系统备份一直在运行,空间弄没了,清掉备份,再启动mysql容器
再看下还有提示。。。
查看日志文件了解故障详情
/var/log/zabbix/zabbix_server.log

4367:20220829:174119.862 database is down: reconnecting in 10 seconds
  4367:20220829:174129.863 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

容器 mysql的位置 -v /opt/mysql/data:/var/lib/mysql \ 没找到。。。
查找并指定文件

find / -name mysql.sock     //容器映射的位置没找到文件,关掉容器,把本机mysql启动后,就在/var/lib/mysql/看到生成文件了,看来不适合用docker容器的mysql

zabbix_server.conf文件中有一项需求,默认会在/var/lib/mysql/下找,,113行
DBSocket= 

在这里插入图片描述

其他人的案例解决方式:
解决方式参考:https://blog.csdn.net/wojiuwangla/article/details/92585758

主要原因是zabbix服务运行开始监测时,会有太多个进程连接mysql,造成无法连上
可以查看日志文件了解故障详情
/var/log/zabbix/zabbix_server.log


数据库是存活状态,再看看数据库配置的进程数大小

vim /opt/mysql/conf/my.cnf     //docker mysql的映射文件,默认为/etc/my.cnf
添加如下:
max_connections = 1000
max_connect_errors = 20000

设置完再重启下

故障无法发送邮件,提示: Couldn’t connect to server: Failed to connect to 2409:8c54:1050:10::43: Network is unreachable

查看maillog日志

# tail /var/log/maillog
Aug 31 09:44:11 localhost postfix/postdrop[27387]: warning: mail_queue_enter: create file maildrop/708842.27387: No space left on device

没发现最新的,查查服务配置,发现qq的smtp服务器设置成mail.qq.com了,改成smtp.qq.com
断开客户端主要网络等一会看看邮件,正常发送了,再恢复网络,接收也正常了,可以看到故障时的邮件及网络恢复后邮件。
zabbix5.0的安装与使用-centos7_第93张图片
在这里插入图片描述

故障主机显示红色ZBX,提示: Received empty response from Zabbix Agent at [192.168.118.10]. Assuming that agent dropped connection because of access permissions.

在这里插入图片描述
在客户端机子上改zabbix_agentd.conf

# vim /etc/zabbix_agentd.conf 
ServerActive=192.168.118.204    #填写zabbix_server服务端 的 IP

改完重启服务,恢复正常
zabbix5.0的安装与使用-centos7_第94张图片

Telnet service is down on Client-nginx1

telnet服务,实际生产中可能有的服务器不安装,或拒绝这些,这里是因为添加了检测telnet出现的报错
对被监控机子安装下面这三个,

yum -y install telnet-server telnet xinetd
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd

再检查 下就好了
在这里插入图片描述

其他主机 可用性无法亮绿,基本上是因为主机名称没设置好,造成无法识别,这个要注意下。

同一机子上二进制安装和docker安装冲突

由于间隔太久,两种方式安装 ,docker的还启动着,二进制安装后就不能正常启动,试了改pid的位置 也不行,后面才想到,dokcer好像有装过,可能有冲突了,停了docker容器就好

-- Unit zabbix-server.service has begun starting up.
709 21:50:51 K8SHA-master systemd[1]: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after
709 21:50:51 K8SHA-master polkitd[716]: Unregistered Authentication Agent for unix-process:4756:1931
709 21:50:51 K8SHA-master systemd[1]: Failed to start Zabbix Server.
-- Subject: Unit zabbix-server.service has failed

忘了Admin密码时改密

 [root@zabbix ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8281
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> use zabbix;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [zabbix]> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

MariaDB [zabbix]> select * from users;
+--------+-------+--------+---------------+--------------------------------------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
| userid | alias | name   | surname       | passwd                                                       | url | autologin | autologout | lang  | refresh | type | theme   | attempt_failed | attempt_ip | attempt_clock | rows_per_page |
+--------+-------+--------+---------------+--------------------------------------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
|      1 | Admin | Zabbix | Administrator | $2y$10$92nDno4n0Zm7Ej7Jfsz8WukBfgSS/U0QkIuu8WkJPihXBb2A1UrEK |     |         1 | 0          | zh_CN | 30s     |    3 | default |              0 |            |             0 |            50 |
|      2 | guest |        |               | $2y$10$89otZrRNmde97rIyzclecuk6LwKAsHN0BcvoOKGjbT.BwMBfm7G06 |     |         0 | 15m        | en_GB | 30s     |    1 | default |              0 |            |             0 |            50 |
|      3 | itczl |        |               | $2y$10$142fFWpyYY3.qpE0SSS02O8O32vTAUVpj82xAXmJt7PrH5jkbSR5m |     |         0 | 0          | zh_CN | 30s     |    1 | default |              0 |            |             0 |            50 |
+--------+-------+--------+---------------+--------------------------------------------------------------+-----+-----------+------------+-------+---------+------+---------+----------------+------------+---------------+---------------+
3 rows in set (0.00 sec)

MariaDB [zabbix]> update user set password=PASSWORD('Root@11111') where user='Admin';
MariaDB [zabbix]> flush privileges;

Zabbix server: Utilization of poller processes over 75%

zabbix server 在开启Discovery功能后,zabbix web页面报警提示:“Zabbix server :Ulitization of discoverer processes over 75%”。

原因:

每个discovery任务占用一个discovery进程,但是zabbix server默认只配置了一个discovery。

所以告警“Zabbix server :Ulitization of discoverer processes over 75%”和Utilization of data collectors 占用100%

最简单的处理办法就是直接关闭discovery功能。告警即可解决。

优化的解决办法是修改配置文件把discovery进程数量调大。

方法:

编辑zabbix server配置文件/etc/zabbix/zabbix_server.conf

找到StartDiscoverers,把注释去掉,值给个3或者5即可,然后重启zabbix server服务。

systemctl restart zabbix-server

等一小会再查看服务状态
zabbix5.0的安装与使用-centos7_第95张图片
zabbix5.0的安装与使用-centos7_第96张图片

从源码安装

下载源包 https://www.zabbix.com/cn/download_sources#50LTS

令解压缩源代码

# tar -zxvf zabbix-5.0.35.tar.gz 
# cd zabbix-5.0.35/


 # 安装依赖
# yum install mysql-devel libcurl libevent libevent-devel fping curl-devel libxml2  libxml2-devel 
 
## 如果要启用snmp的话
# yum install mysql-devel libcurl libevent libevent-devel fping curl-devel libxml2  libxml2-devel snmpd net-snmp-devel net-snmp

创建用户账户

groupadd zabbix
useradd -g zabbix zabbix

导入数据库脚 本

mysql -uroot -p
use zabbix;
source /opt/zabbix-5.0.35/database/mysql/schema.sql;
source /opt/zabbix-5.0.35/database/mysql/images.sql;
source /opt/zabbix-5.0.35/database/mysql/data.sql;

配置源代码

如果要配置 Zabbix server 和 Zabbix proxy 的源代码,您可以运行以下内容:

//查看帮助
./configure --help

./configure --enable-server --enable-agent --with-mysql  --with-net-snmp --with-libcurl --with-libxml2

./configure --prefix=/opt/zabbix/ --enable-server --enable-agent --with-mysql --with-libcurl --with-libxml2 --with-net-snmp
 make && make install







docker容器安装

该示例示范了如何使用内置 MySQL 数据库、Zabbix server、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java gateway 来运行 Zabbix 应用。
1.创建专用于Zabbix组件容器的网络:

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2.启动空的MySQL服务器实例

# docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --network=zabbix-net \
      -d mysql:8.0 \
      --restart unless-stopped \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password

3.启动Zabbix Java gateway实例

# docker run --name zabbix-java-gateway -t \
      --network=zabbix-net \
      --restart unless-stopped \
      -d zabbix/zabbix-java-gateway:alpine-5.0-latest

4、启动Zabbix snmptraps实例

# docker run --name zabbix-snmptraps -t \
      -v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw \
      -v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro \
      --network=zabbix-net \
      -p 162:1162/udp \
      --restart unless-stopped \
      -d zabbix/zabbix-snmptraps:alpine-5.0-latest

5.启动Zabbix server实例并将该实例与创建的MySQL服务器实例链接


# docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      -e ZBX_ENABLE_SNMP_TRAPS="true" \
      --network=zabbix-net \
      -p 10051:10051 \
      --restart unless-stopped \
      --volumes-from zabbix-snmptraps \
      -d zabbix/zabbix-server-mysql:alpine-5.0-latest

Zabbix服务器实例向主机公开10051 / TCP端口(Zabbix trapper)

5.启动Zabbix Web界面,并将实例与创建的MySQL服务器和Zabbix server实例链接

# docker run --name zabbix-web-nginx-mysql -t \
      -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="root_pwd" \
      --network=zabbix-net \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-5.0-latest

Zabbix Web界面实例向主机公开80 / TCP端口(HTTP)

docker pull mysql:8.0
docker pull zabbix/zabbix-java-gateway:alpine-5.0-latest
docker pull zabbix/zabbix-snmptraps:alpine-5.0-latest
docker pull zabbix/zabbix-server-mysql:alpine-5.0-latest
docker pull zabbix/zabbix-web-nginx-mysql:alpine-5.0-latest



解决 Zabbix 占用内存过大

定位到是PHP的问题,以下是PHP的优化配置

参考:
zabbix5.0的安装与使用-centos7_第97张图片
改完如下:

[root@zabbix ~]# cat /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[zabbix]
user = apache
group = apache

listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock
listen.acl_users = apache
listen.allowed_clients = 127.0.0.1

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 8
pm.max_spare_servers = 35
pm.max_requests = 2000

php_value[session.save_handler] = files
php_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/

php_value[max_execution_time] = 300
php_value[memory_limit] = 128M
php_value[post_max_size] = 16M
php_value[upload_max_filesize] = 2M
php_value[max_input_time] = 300
php_value[max_input_vars] = 10000
php_value[date.timezone] = Asia/Shanghai

[root@zabbix ~]# systemctl restart rh-php72-php-fpm
[root@zabbix ~]# systemctl status rh-php72-php-fpm





































你可能感兴趣的:(网络应用,nginx,centos,运维)