centos7 yum 安装zabbix

zbbix5.0的部署

超哥linux视频地址:https://www.bilibili.com/video/BV1wp4y1x7B3?p=25&spm_id_from=pageDriver

zabbix-server部署

ip 的提取:

ifconfig enp0s3|awk 'NR==2{print $2}'

关闭selinux:

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

关闭防火墙:

systemctl stop firewalld
systemctl disable firewalld

下载zabbix的yum源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

更换yum源为阿里云

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

清空旧的yum缓存,下载zabbix服务端

yum clean all
yum makecache
yum -y install zabbix-server-mysql zabbix-agent 

安装php扩展插件(可以在机器上安装多个版本的软件,并且不会影响到整个系统的依赖环境,【下载的程序默认在/opt/rh/下】)

yum -y install centos-release-scl 

修改yum源[zabbix-frontend]前端源:

vim /etc/yum.repos.dzabbix.repo
找到[zabbix-frontend],修改为enabled=1

安装zabbix前端环境【且是安装到scl环境下/opt/rh】:

yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl 

安装zabbix所需的数据库(mariadb)

yum -y install mariadb-server

配置开机启动

systemctl enable --now mariadb  ##开机自启并立即启动mariadb

初始化数据库,设置密码:

mysql_secure_installation
mysql -uroot -proot1234

创建zabbix数据库和表:

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'zabbix';    #localhost表示数据库监听的网络地址
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;

使用zabbix-mysql导入数据库信息:

zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -pzabbix zabbix            #*表示版本号

修改zabbix配置:

[root@zabbix html]# egrep -v '^$|^#' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=xxx.xxx.xxx.xxx         #数据库IP地址
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

修改zabbix的php配置文件:

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
##找到并修改值为:
php_value[date.timezone] = Asia/Shanghai

启动zabbix相关的服务:

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

部署zabbix客户端

zabbix5.0版本
agent2新版本使用golang(并发性能好,多核的使用率很高)语言开发的客户端
agent2默认使用10050端口,也就是zabbix的客户端的端口
###旧版本agent和新版的agnet不能同时使用
###旧版本:zabbix-agent
###新版本:zabbix-agent2

机器环境准备:
192.168.1.105 zabbix-agent2
192.168.1.106 zabbix-agent2

注意时间正确:

yum -y install ntpdate    ##安装ntpdate服务
ntpdate -u ntp.aliyun.com  ##同步阿里云时间
mv /etc/localtime{,.bak}   ##备份时区文件
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  ##设置时区为亚洲上海

部署流程:
配置zabbix的yum源:
下载yun源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

更换yum源为阿里云

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

清空旧的yum缓存,下载zabbix服务端

yum clean all
yum makecache
yum -y install zabbix-agent2

#查看并修改配置文件:

more /etc/zabbix/zabbix_agent2.conf|grep -vE '^#|^$'
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.104   ###zabbix-server的ip地址
ServerActive=192.168.1.104  ###现有的zabbix-server的ip地址
Hostname=oppo2         ###zabbix客户端机器的hostname即可
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

启动命令:

/usr/sbin/zabbix_agent2

设置开机自启动(并立即启动):

systemctl enable --now zabbix-agent2

修改配置文件后重启:

systemctl restart zabbix-agent2

在服务端通过zabbix-get来验证zabbix-agent2的连接是否正常:
在服务端安装:

yum -y install zabbix-get
[root@oppo1 etc]# zabbix_get -s '192.168.1.105' -p 10050 -k 'agent.ping'
1  ###结果为1(真)
[root@oppo1 etc]# zabbix_get -s '192.168.1.105' -p 10050 -k 'system.hostname'
oppo2  ###获取主机名

web端乱码的问题:

zabbix默认监控了server本身,但是编码有问题:
解决方法:安装字体

yum -y install wqy-microhei-fonts

复制字体:【命令前加\可以去掉命令本身设置的别名,以最原始的命令执行】

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

自定义监控项:

web界面>配置>主机>点击某一台主机>

例如:自定义监控服务器登录的人数
需求:登录的人数不超过三个,超过三个人就发出报警的信息。
###先从命令行角度

查看zabbix自带的检查key
【zabbix_get -s '192.168.1.105' -p 10050 -k 'agent.ping'】
【zabbix_get -s '192.168.1.105' -p 10050 -k 'system.uname'】
【zabbix_get -s '192.168.1.105' -p 10050 -k 'system.hostname'】  
zabbix_get -s '192.168.1.105' -p 10050 -k 'vfs.fs.size[/boot,used]' ###这几个是zabbix自带的(单引号中的可以从web端的监控项中的键值复制过来)

1,先要明确使用的命令:
who |wc -l

2,手动创建zabbix的配置文件,用于自定义key:【在agent机器上192.168.1.105】
/etc/zabbix/zabbix_agent2.conf

由于zabbix使用的是include协议,所以在Include=/etc/zabbix/zabbix_agent2.d/*.conf下的都会被作为配置文件
进入/etc/zabbix/zabbix_agent2.d/

cd /etc/zabbix/zabbix_agent2.d/	
vim userparameter_login.conf   ###新建用户自定义的配置文件
加入:UserParameter=login.user,who|wc -l   ####固定配置项,”=“后接要执行的命令

重启zabbix-agent2:

systemctl restart zabbix-agent2
查看状态:systemctl status  zabbix-agent2

3,服务端zabbix_get检查:

zabbix_get -s '192.168.1.105' -p 10050 -k 'login.user'

4,在web界面添加zabbix-server的自定义监控模板
添加流程是:

1)创建模板:配置>模板
2)创建应用集(好比是一个文件夹,里面放置一堆的嘉监控项)
3)创建监控项,自定义item,即具体要监控的内容
4)创建触发器,当监控项获取到值的时候,进行和触发器的值进行比较,判断,决定是否进行报警操作。
5)创建图形
6)将具体的主机和该模板进行链接,关联

zabbix邮件报警:

web界面>管理>报警媒介类型>创建媒体类型
名称:Email
smtp服务器:smtp.163.com
端口:25
SMTP HELO:163.com
SMTP电邮:填写自己的邮箱即可
安全链接:SSL/TLS 都打对勾
认证:用户名和密码【邮箱的地址和授权码163:(AWODYHSVOYGIAYNE)qq:(lxqqpidozprxiaje)】 ###授权码要看到pop3/smtp需要看到已开启

添加messsage templates:
管理》报警媒介类型》messsage templates》添加

在user settings 中设置邮件的接收人,并启用。即将报警邮件发给哪个运维人员

全网监控方案:

如何自动添加主机监控:

思路:
		克隆监控模板
		自动注册和自动发现
		使用zabbix的api接口,利用curl语言,或者开发自己的编程脚本,如python脚本

监控方案的实施:
服务监控(可以去网上下载监控的模板)

rsync服务监控:
	监控服务端873端口的存活
	有关端口的监控可以使用zabbix自带的key:net.tcp.port[,873]

监控NFS服务是否正常:
	通过key监测111端口 net.tcp.port[,111]
	showmount -e ip|wc -l

监控MySQL数据库是否正常:
	通过key监测111端口 net.tcp.port[,3306]
	mysql -uroot -p
	zabbix自带了mysql的监控模板,直接添加模板和mysql的主机关联即可
web服务器监控:
	 net.tcp.port[,80]
	 zabbix也提供了web服务器的监控模板

监控服务的具体的方法:
端口检查的命令:

netstat 
ss
lsof
结合grep查看端口是否存活

自动发现,自动注册:
自动发现:

zabbix server主动去发现所有的客户端,然后将客户端的信息登记在服务端的机器上面
缺点:zabbix server的而压力会较大,机器多了耗时较久,压力大。
自动注册:
zabbix agent2 主动上报自己的信息,发送给zabbix server
缺点:agent2 可能会找不到zabbix server(配置文件写错了/网络不通)

【另一种叫法是被动模式和主动模式(站在agent的角度看)】

配置hosts解析:
在三台机器的/etc/hosts中写入:
192.168.1.104 oppo1
192.168.1.105 oppo2
192.168.1.106 oppo3

自动发现配置:

web》配置》自动发现》local netstat》ip范围》
web》配置》动作》Discovery actions》Auto discovery. Linux servers.(启用)

自动注册:
zabbix-agent2配置文件修改:

[root@hadoop4 ~]# more /etc/zabbix/zabbix_agent2.conf|grep -Ev '^#|^$'
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.104
ServerActive=192.168.1.104
Hostname=hadoop4
HostnameItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

重启zabbix-agent2:

systemctl restart zabbix-agent2
验证:[root@oppo1 ~]# zabbix_get -s '192.168.1.24' -p 10050 -k 'system.hostname'
web》配置》动作》Autoregistration actions》创建动作》:
名称:自动注册
条件:添加:主机名称:hadoop4(需要注册的主机)
动作》操作:添加:
				操作类型:添加主机
				操作类型:添加到主机群组( Linux servers)
				操作类型:链接到模板(Template OS Linux by Zabbix agent)

分布式监控:

作用:分担server的集中式压力
	agent》proxy》server
多机房之间的网络延时问题
	上海机房》proxy》server

搭建部署分布式监控zabbix-proxy:

192.168.1.104 zabbix0-server5.0
192.168.1.109 zabbix-proxy
192.168.1.110 zabbix-agent2

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

部署开始:
1,确保自动发现和自动注册是关闭的。
2,zabbix-server服务端无需变动,继续运行就ok
hosts中需要有proxy主机的信息

3,准备好agent2客户端机器

4,配置中proxy代理服务器,并且部署数据库,用于存储agent2发来的数据,并最终发给server服务器。
下载yun源

rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

更换yum源为阿里云

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

5,安装proxy,以及数据库

yum -y install zabbix-get zabbix-proxy-mysql
yum -y install mariadb-server mariadb

6,启动数据库,配置数据库用户,存储zabbix-agent2信息数据

systemctl start mariadb
systemctl enable mariadb

数据sql设置:

create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'zabbix';    #localhost表示数据库监听的网络地址
grant all privileges on zabbix_proxy.* to zabbix@localhost;
####上面两行等同于“grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';”
flush privileges;

7,导入zabbix-proxy数据库信息

rpm -ql zabbix-proxy-mysql  ##查询yum安装的和zabbix-proxy相关的包位置
[root@slave1 ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.12
/usr/share/doc/zabbix-proxy-mysql-5.0.12/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.12/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.12/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.12/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.12/README
/usr/share/doc/zabbix-proxy-mysql-5.0.12/schema.sql.gz  #####这个就是我们要找的需要导入的sql信息
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.12/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy  ###将sql导入到zabbix_proxy中。最后的zabbix_proxy为数据库名称

8,修改zabbix_proxy配置文件,链接数据库的信息

sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf   ###在这个文件的第162行写入DBPassword=zabbix。并将源文件做个后缀为“.ori”的备份
sed -i 's#Server=127.0.0.1#Server=192.168.1.104#' /etc/zabbix/zabbix_proxy.conf
sed -i 's#Hostname=Zabbix proxy#Hostname=slave1#' /etc/zabbix/zabbix_proxy.conf

9,检查zabbix_proxy.conf

[root@slave1 zabbix]# more /etc/zabbix/zabbix_proxy.conf|grep -Ev '^#|^$' 或者【 grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf】
Server=192.168.1.104  ###zabbix-server
Hostname=slave1       ###zabbix-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=zabbix
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

10,启动代理服务

systemctl start zabbix-proxy
检查:systemctl status zabbix-proxy

11,在web页面添加代理

web界面》管理》agent代理程序》创建代理(agent代理程序名称:peoxy机器的hostname。代理地址:peoxy机器的ip)
看到“最近出现(持续)”有数值,即为成功。或者看服务端server日志

客户端agent2 配置:

[root@slave2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.1.109   ####zabbix-proxy的ip
ServerActive=192.168.1.109     ####zabbix-proxy的ip
Hostname=slave2        ####agent2本机的hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

设置zabbix-agent2启动,并开机自启:

systemctl enable --now  zabbix-agent2

在web界面添加agent2客户端:

web》配置》主机》添加主机》:
主机名称:agent2主机的hostname
可见名称:histname-ip
群主:linux servers
客户端ip:agent2ip
由agent代理程序监测:slave1(zabbix-proxy的hostname【选择即可】)

重启服务:

systemctl restart zabbix-agent2
systemctl restart zabbix-proxy

snmp(简单网络管理协议【应用层协议】)监控:

1,服务端(zabbix-server)安装snmp程序:

 yum -y install net-snmp net-snmp-utils

2,开启snmp的配置:

sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf ##在第57行添加数据,并备份文件,后缀为.ori 
systemctl start snmpd

3,使用snmp命令

snmpwalk -v 2c -c public 127.0.0.1 sysname
##参数:
	-v :指定协议版本【上行‘-v 2c’为指定第二个版本】
	-c :指定暗号【上行‘-c public’为指定暗号为public(固定)】
	sysname:snmp的key

例:

[root@oppo1 snmp]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: oppo1

web设置:

web》配置》zabbix server》主机》interfaces》SNMP(选择)》(默认配置就可以,有需求可以更改)
删除原有模板:web》配置》主机》模板》取消链接并清理(全部)
重新链接新模板:Template OS Linux SNMP
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值