欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Zabbix安装部署

程序员文章站 2022-06-01 20:32:40
...

镜像下载、域名解析、时间同步请点击 阿里云开源镜像站

zabbix监控内容:

1.硬件监控。 通过SNMP来进行路由器交换机的监控(这些可以跟一些厂商沟通来了解如何做)、 服务器的温度以及其他,可以通过IPMI来实现。当然如果没有硬件全都是云,直接跳过这一步骤。

2.系统监控。 如CPU的负载,上下文切换、内存使用率、磁盘读写、磁盘使用率、磁盘inode节点。 当然这些都是需要配置触发器,因为默认太低会频繁报警。

3.服务监控。 比如公司用LNMP nginx自带Status模块、PHP也有相关的Status、 MySQL的话可以通过percona来进行监控。Redis这些通过自身的info获信息进行过滤等。 方法都类似。要么服务自带。要么通过脚本来实现想监控的内容,以及报警和图形功能。

4.网络监控。 如果是云主机又不是跨机房,那么可以选择不监控网络。当然你说我们是跨机房以及如何如何。 推荐使用smokeping来做网络相关的监控。或者直接交给你们的网络工程师来做。因为术业有专攻。

5.安全监控。 如果是云主机可以考虑使用自带的安全防护。当然也可以使用iptables。 如果是硬件,那么推荐使用硬件防火墙。使用云可以购买防DDOS,避免出现故障导致down机一天。 如果是系统,那么权限、密码、备份、恢复基础的方案要做好。 web同时也可以使用nginx+waf来实现一个web层面的防火墙。当然也可以使用集成好的openresty。

6.Web监控。 web监控的话题其实还是很多。比如可以使用自带的web监控来监控页面相关的延迟、 js响应时间、下载时间、等等。这里我推荐使用专业的商业软件, 听云来做这一块。毕竟人家全国各地都有机房。 (如果本身是多机房那就另说了)

7.日志监控。 如果是web的话可以使用监控Nginx的500x日志。 PHP的ERROR日志。其实这些需求无非是,收集、存储、查询、 展示,我们其实可以使用开源的ELKstack来实现。ogstash(收集)、 elasticsearch(存储+搜索)、kibana(展示)

8.业务监控。 我们上面做了那么多,其实最终还是保证业务的运行。 这样我们做的监控才有意义。所以业务层面这块的监控需要和开发以及总监开会讨论, 监控比较重要,如API、等。(需要开会确认)然后通过简单的脚本就可以实现, 最后设置触发器即可

9.流量分析。 平时我们分析日志都是拿awk sed xxx一堆工具来实现。 这样对我们统计ip、pv、uv不是很方便。那么可以使用百度统计、 google统计、商业,让开发嵌入代码即可。当然避免隐私也可以使用 piwiki来做相关的流量分析。

10.可视化。 通过screen以及引入一 些第三方的库来美化界面,同时我们也需要知道、订单量突然增加、 突然减少。或者说突然来了一大波流量,这流量从哪儿来,是不是推广了, 还是被攻击了。可以结合监控平来来梳理各个系统之间的业务关系。

11.自动化监控。 如上我们做了那么多的工作,当然不能是一台一台的来加key实现。 可以通过Zabbix的主动模式以及被动模式来实现。当然最好还是通过API来实现。

Zabbix安装部署

zabbix-server安装部署

1.关闭selinux和firewall

准备:两个centos7虚拟机,一个作为zabbix-server,另一个作为zabbix-agent
需要安装:Apache+MySQL+Php+zabbix-server、zabbix-agent等

  1. #vim /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled
  2. #或使用:
  3. #sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  4. #getenforce #Disabled 为关闭(临时关闭)
  5. #setenforce 0 #设置SELinux 成为enforcing模式(永久关闭)
  6. #systemctl stop firewalld.service 停止防火墙
  7. #systemctl disable firewalld.service禁止firewall开机启动

2.更改yum源为阿里源

清空/etc/yum.repos.d/*,下载阿里云的centos7镜像和epel镜像

Zabbix安装部署

  1. #yum install wget -y
  2. #rm -rf /etc/yum.repos.d/*
  3. #wget -O /etc/yum.repos.d/Centos_Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  4. #wget -O /etc/yum.repos.d/epel-7 https://mirrors.aliyun.com/repo/epel-7.repo
  5. #yum clean all 清空缓存
  6. #yum makecache 生成缓存

3.安装httpd

  1. #yum install httpd -y
  2. #systemctl start httpd
  3. #systemctl status httpd
  4. #systemctl enable httpd

验证apache服务是否安装成功:
在浏览器中输入虚拟机的ip地址,出现下图为成功

Zabbix安装部署

4.安装php

  1. #yum install php -y 重启apache服务
  2. #systemctl restart httpd
  3. #vim /var/www/html/hell.php 查看php是否安装成功
  4. < h1>hello world</h1>
  5. < h1>hi</h1>
  6. this is a....

Zabbix安装部署

5.安装mysql–yum安装

yum安装方式可能会比较慢,可使用其他安装方法
(1)卸载旧的mysql版本

  1. #rpm -qa|grep mysql 查看之前安装的mysq
  2. #rpm -e xxxx 卸载所有mysql服务
  3. #yum list installed | grep mysql 也可尝试使用yum命令卸载旧版本
  4. #yum remove mysql
  5. #find / -name mysql 查看残留mysql文件
  6. #rm -rf 文件

(2)下载mysql的yum源

  1. #wget https://repo.mysql.com//mysql80-community-release-el7-4.noarch.rpm --no-check-certificate 下载到当前路径,下载完成可以在当前目录查看到
  2. #rpm -ivh mysql80-community-release-el7-4.noarch.rpm
  3. #yum repolist enable|grep mysql 查看mysql的yum源是否安装成功
  4. #yum install mysql-server -y

(3)开启mysql服务

  1. #systemctl start mysqld
  2. #systemctl status mysqld
  3. #systemctl enable mysqld

安装完成后,在/var/log/mysqld.log文件中给root生成了一个默认密码,通过下面的方式找到root默认密码,然后登录mysql进行修改:

#grep "temporary password" /var/log/mysqld.log

Zabbix安装部署

mysql -uroot -p

mysql>alter user ‘root’@‘localhost’ identified by ‘新密码’;
报错error:You must reset your password using ALTER USER statement before executing this statement

Zabbix安装部署

解决方法如下:

  1. mysql>alter user user() identified by 'abCD@1234';

密码要符合密码规则,否则会报错Your password does not satisfy the current policy requirements

Zabbix安装部署

如果想要修改成“123456”这种简单的密码,参考文章https://blog.csdn.net/zhanaolu4821/article/details/93622812

  1. #yum -y install php-mysql 将php和mysql关联
  2. #yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel 安装常用的php模块
  3. #systemctl restart httpd 重启apache服务

6.安装部署zabbix环境

获取下载源

  1. #rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

查看下载的repo文件(zabbix.repo)

  1. [root@localhost ~]# ls /etc/yum.repos.d/
  2. Centos-L.repo.bak CentOS-x86_64-kernel.repo
  3. CentOS-Media.repo.bak zabbix.repo

查看源地址文件内容

  1. [root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
  2. [zabbix]
  3. name=Zabbix Official Repository - $basearch
  4. baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

更换源地址(sed -i替换,使用#做分隔符,替换文件内源地址指向地址)

  1. [root@localhost ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#' /etc/yum.repos.d/zabbix.repo

清理并重新构建yum缓存

  1. #yum clean all
  2. #yum makecache

yum安装zabbix server和agent

  1. [root@localhost ~]# yum -y install zabbix-server-mysql zabbix-agent
  1. [root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo

Zabbix安装部署

Software Collections,便于后续安装高版本的php,默认yum安装的php版本为5.4过低。

SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。

软件包会安装在/opt/rh目录下
为了避免系统广泛冲突,/opt/rh包安装在目录中,例如,这允许你在 Centos7机器上安装Python3.5,而不会删除或干扰Python2.7

/etc/opt/rh/软件包的所有配置文件都存储在目录中相应的目录中,SCL包提供了定义使用所包含应用程序所需的环境变量的shell脚本,例如:PATH等

  1. [root@localhost ~]# yum -y install centos-release-scl

前提是安装SCL,-scl会安装到/etc/opt/rh文件夹不会跟系统应用冲突

  1. [root@localhost ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

创建一个zabbix数据库,character set utf8(设置字符编码为utf8),collate utf8_bin(支持utf8)

  1. mysql> create database zabbix character set utf8 collate utf8_bin;

创建一个zabbix用户,zabbix@localhost(用户名为zabbix允许localhost登录),密码为abCD@1234

  1. mysql> create user zabbix@localhost identified by 'abCD@1234';

给zabbix用户授权,grant all privileges(授予所有权限权),

zabbix.*(授予zabbix数据库里的所有表的权限),zabbix@localhost(授予的用户是zabbix)

  1. mysql> grant all privileges on zabbix.* to zabbix@localhost;

刷新授权表

  1. mysql> flush privileges;
  2. mysql>exit

使用zabbix-mysql,导入数据库信息(使用zcat查看压缩文件内容导入到数据库)

  1. [root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -p zabbix
  2. Enter password:输入数据库root密码

登录数据库,查看zabbix数据库内容

  1. [root@localhost ~]# mysql -uroot -pabCD@1234
  2. mysql> use zabbix;
  3. mysql> show tables; #查看库内的表

修改zabbix server配置文件里改数据库的密码(找到DBPasswd的行,去掉注释,修改密码为数据库里zabbix用户的密码)

  1. [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf

Zabbix安装部署

修改zabbix的PHP配置文件,修改时区为上海,并去掉前面注释符号“;”

  1. [root@localhost ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

Zabbix安装部署

grep验证时区已经更改为亚洲/上海

[root@localhost ~]# grep ‘timezone’ /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

启动zabbix:

启动server端、agent端、apache服务、启动php进程(zabbix前端是交给PHp解析的)

[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

[root@localhost ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

默认访问ip的80端口是apache的测试页面,需要加上/zabbix后缀

Zabbix安装部署
Zabbix安装部署
Zabbix安装部署

报错:cannot connect to the database.the server requested authentication method unknown to the client.
经检查,zabbix-server服务启动失败,重启服务仍失败

Zabbix安装部署

查看日志:

  1. #tailf /var/log/zabbix/zabbix_server.log

报错:[Z3001]connection to database ‘zabbix’ failed:[2059] authentication plugin ‘caching_sha2_password’ cannot be loaded

Zabbix安装部署

解决方法:修改zabbix账号

  1. mysql>ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'zabbix';
  2. #systemctl restart zabbix-server

因为mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;
参考https://www.cnblogs.com/Sherry-XRJ/p/11754077.html

多次点击next step
到登录界面,默认账号Admin,密码zabbix

点击用户设置可更改默认密码和界面语言、风格等:

Zabbix安装部署
Zabbix安装部署

图形化乱码问题:

zabbix默认检测了服务端本身,但是编码有问题

Zabbix安装部署

服务端安装字体(需要之前配置的zabbix源):

  1. #yum -y install wqy-microhei-fonts
  1. #alias #系统默认的别名cp=cp -i,在cp前加\就可以还原命令的本意
  2. alias cp='cp -i'

用刚安装的wqf的.ttc文件,覆盖原来的文件

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

刷新,乱码问题解决

Zabbix安装部署

zabbix-agent安装部署

客户端和服务端安装ntpdate同步时间,时区统一,关闭防火墙

  1. #yum -y install ntpdate
  2. #ntpdate -u ntp.aliyun.com #同步时间:
  3. #mv /etc/localtime{,.bak}
  4. #ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #时区统一:
  5. sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  6. systemctl disable --now firewalld
  7. getenforce #查看防火墙状态
  8. setenforce 0 #更改防火墙状态
  9. iptables -L #查看iptables规则 #关闭防火墙:

获取下载源

  1. rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

查看下载的repo文件(zabbix.repo)

  1. [root@localhost ~]# ls /etc/yum.repos.d/
  2. Centos-L.repo.bak CentOS-x86_64-kernel.repo
  3. CentOS-Media.repo.bak zabbix.repo

查看源地址文件内容

  1. [root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo

更换源地址(sed -i替换,使用#做分隔符,替换文件内源地址指向地址)

  1. [root@localhost ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#' /etc/yum.repos.d/zabbix.repo

清理并重新构建yum缓存

  1. #yum clean all
  2. #yum makecache

安装agent2

  1. #yum -y install zabbix-agent2

配置文件和启动文件

/etc/zabbix/zabbix_agent2.conf #配置文件

/usr/sbin/zabbix_agent2 #启动文件

设置开机自启并启动

  1. #systemctl enable --now zabbix-agent2
  2. [root@c4-node3 ~]# netstat -tpln | grep zabbix #检查端口是否被启用(安装net-tools)
  3. tcp6 0 0 :::10050 :::* LISTEN 3327/zabbix_agent2

配置文件(修改主机名,服务端地址)

  1. #grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf #过滤注释行和空行
  2. PidFile=/var/run/zabbix/zabbix_agent2.pid #pid文件
  3. LogFile=/var/log/zabbix/zabbix_agent2.log #日志文件
  4. LogFileSize=0 #日志大小,默认0无限制
  5. Server=192.168.86.148 #服务端地址(server地址,这里改为130)
  6. ServerActive=192.168.86.148 #改为服务端地址
  7. Hostname=zabbix_server #建议改为机器的主机名
  8. Include=/etc/zabbix/zabbix_agent2.d/*.conf
  9. #使用Include语法,“.d”目录里面所有以.conf结尾的文件都会被识别为配置文件
  10. ControlSocket=/tmp/agent.sock

修改完成后重启服务

  1. systemctl restart zabbix-agent2

验证客户端连通性:

在服务端上通过命令主动获取数据

  1. #yum -y install zabbix-get #安装工具
  2. #zabbix_get -s '192.168.86.131' -p 10050 -k 'system.hostname' #-s地址(zabbix_agent地址),-p端口,-k命令
  3. zabbix_agent #收集到了主机名连接成功

添加agent主机:
点击‘配置’大框里的‘主机’就可以看到默认监控的server端本机,点击‘创建主机’来添加要监控的主机

Zabbix安装部署
填入相关信息(主机名-显示的名字-群组linux servers-ip地址端口),然后点添加:

Zabbix安装部署

添加完成后,已经可以显示在主机列表里了,但是没有监控项, 点击主机名配置监控项
很多监控项不需要一个个手动定义的, 可以选择’模板’,默认为空输入linux可以看到输入推荐,选择 ‘Template OS linux by zabbix agent’,点击更新就可以看到模板里定义的监控项已经添加进去了,等到zbx亮了之后就可以监控了

Zabbix安装部署
Zabbix安装部署

本文转自:https://blog.csdn.net/hiolb/article/details/122246222