Zabbix安装部署

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

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来实现。

file

zabbix-server安装部署

1.关闭selinux和firewall

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

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

2.更改yum源为阿里源

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

file

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

3.安装httpd

#yum install httpd -y
#systemctl start httpd 
#systemctl  status httpd
#systemctl enable httpd

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

file

4.安装php

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

file

5.安装mysql–yum安装

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

#rpm -qa|grep mysql  查看之前安装的mysq
#rpm -e xxxx  卸载所有mysql服务

#yum list installed | grep mysql  也可尝试使用yum命令卸载旧版本
#yum remove mysql

#find / -name mysql  查看残留mysql文件
#rm -rf 文件

(2)下载mysql的yum源

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

(3)开启mysql服务

#systemctl start mysqld
#systemctl status mysqld
#systemctl enable mysqld

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

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

file

mysql -uroot -p

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

file

解决方法如下:

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

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

file

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

#yum -y  install php-mysql   将php和mysql关联
#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模块
#systemctl restart httpd  重启apache服务

6.安装部署zabbix环境

获取下载源

#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)

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

查看源地址文件内容

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

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

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

清理并重新构建yum缓存

#yum clean all
#yum makecache

yum安装zabbix server和agent

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

file

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等

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

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

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

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

mysql> create database zabbix character set utf8 collate utf8_bin;

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

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

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

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

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

刷新授权表

mysql> flush privileges;
mysql>exit

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

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

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

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

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

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

file

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

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

file

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后缀

file
file
file

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

file

查看日志:

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

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

file

解决方法:修改zabbix账号

mysql>ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'zabbix';
#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

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

file
file

图形化乱码问题:

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

file

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

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

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

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

刷新,乱码问题解决

file

zabbix-agent安装部署

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


#yum -y install ntpdate
#ntpdate  -u ntp.aliyun.com   #同步时间:

#mv /etc/localtime{,.bak}
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  #时区统一:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld
getenforce #查看防火墙状态
setenforce 0 #更改防火墙状态
iptables -L  #查看iptables规则   #关闭防火墙:

获取下载源

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)

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

查看源地址文件内容

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

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

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

清理并重新构建yum缓存

#yum clean all
#yum makecache

安装agent2

#yum -y install zabbix-agent2

配置文件和启动文件

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

/usr/sbin/zabbix_agent2 #启动文件

设置开机自启并启动

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

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

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

修改完成后重启服务

systemctl restart zabbix-agent2

验证客户端连通性:

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

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

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

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

file

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

file
file

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

posted @ 2022-01-06 10:40  萌褚  阅读(1000)  评论(0编辑  收藏  举报