搭建
环境:centos7,zabbix5.0LTS版本
看以下官方文档:
Download and install Zabbix 5.0 LTS for CentOS 7, MySQL, Apache
1. 安装zabbix服务器的源
源:repository,软件仓库,用来找到zabbix官方网站提供的软件,可以下载软件的地方
Centos-Base.repo 仓库文件:用来找到centos官方提供的下载软件的地方的文件
Base :存放centos官方基本软件的仓库
zabbix.repo :帮助我们找到zabbix官方提供的软件下载地方的文件
- rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
- yum install zabbix-server-mysql zabbix-agent
- #zabbix-server-mysql 安装zabbix server和连接mysql功能的软件
- #zabbix-agent zabbix的代理软件
- yum install centos-release-scl
- #Edit file /etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
- [zabbix-frontend]
- ...
- enabled=1
- ...
- #Install Zabbix frontend packages.安装web相关的软件
- yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
- #安装数据库
- yum install mariadb mariadb-server -y
- mysql -uroot -p
- mysql> create database zabbix character set utf8 collate utf8_bin;
- mysql> create user zabbix@localhost identified by 'password';
- mysql> grant all privileges on zabbix.* to zabbix@localhost;
- mysql> quit;
默认登陆的账号密码
账号:Admin
密码:zabbix
被动和主动检查
zabbix agent可以被动检查和主动检查
被动检查模式:agent应答数据请求,zabbix server(或proxy)询求数据,例如CPU load,然后zabbix agent返回结果
zabbix pull 拉 active checks(比较多)
好处:避免同时涌入大量的数据,出现大量不可预知的并发,会导致服务器负载过高,从而丢失数据
主动检查模式:处理过程将相对复杂,Agent必须先从zabbix server索取监控项列表以进行独立处理,然后会定期发送采集到的新值给zabbix server
zabbix agent push 推 Passive checks
可以获得最新的数据
是否执行被动或主动检查是通过选择相应的监控项类型来配置的,zabbix agent处理“zabbix agent”或“zabbix agent(active)”类型的监控项
安装zabbix-get
zabbix server 可以去agent获取数据 --》pull
- #-p 代表目标端口 -k:key
- [root@zabbix zabbix]# zabbix_get -s 192.168.174.142 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix-server的主配置文件
/etc/zabbox/zabbix_server.conf
主机:被zabbix-server监控的主机
模板:template 里面已经集合了很多的好用的应用集,专门针对web的模板,MySQL的模板
应用集:各种各样的应用的集合,zabbix对应用进行分类
监控项:被监控的某个项目,例如cpu的使用率
点配置 (configuration)--》主机(hosts)--》创建主机(create host )
socket 槽
类型:
文件socket
实现同一台机器上的不同进程之间通信的
mysql -uroot -Psc123456
mysqld进程启动后指定的socket文件的路径
--socket=/data/mysql/mysql.sock
网络socket
实现不同的机器上的不同的进程之间通信的
表现形式:ip地址+端口号
mysql -usc -p123456 -h 目标主机ip -p3306
共享内存
管道
信号
信号量
队列
解决zabbix-server访问不了数据库的问题
查看mysql的socket文件在哪
方法1:查看/etc/my.cnf
socket=/data/mysql/mysql.sock
方法2:查看进程
修改zabbix_server.comf里的配置DBSocket
修改/data/mysql目录的权限,允许zabbix用户启动zabbix-server进程可以进入读取mysql.sock文件
- #安装源
- rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
- #安装zabbix-agent端
- yum install zabbix-agent
- #开启服务
- service zabbix-agent start
- #主动检测和被动检测都要改,不然server无法过来拿数据,127.0.0.1代表本机
- ServerActive=127.0.0.1,192.168.174.134
自定义监控项配置

写一个监控sshd是否打开的监控项
monitor_sshd.sh
- #!/bin/bash
- #统计ssh进程的数量
- num=$(ps aux|grep sshd|wc -l)
- echo $num
userparameter_ssh.conf
- #key:键,value:路径到脚本
- UserParameter=sc.ssh.status,/etc/zabbix/zabbix_agent.d/monitor_sshd.sh
- 弄好之后,就可以在web页面添加sc.ssh,status作为键来监控sshd是否开启(判断依据时sshd的进程>1)
/etc/fstab 告诉linux系统正常启动过程挂在那个磁盘分区
自定义监控项可加参数
nginx_data.sh
- #!/bin/bash
- hostip=192.168.174.143
- port=80
-
- case $1 in
- active)
- curl $hostip:$port/status 2>/dev/null|awk '/Active/{print $NF}'
- ;;
- Reading)
- curl $hostip:$port/status 2>/dev/null|awk 'NR==4{print $2}'
- ;;
-
- accepts)
- curl $hostip:$port/status 2>/dev/null|awk 'NR==3{print $1}'
- ;;
-
- handle)
- curl $hostip:$port/status 2>/dev/null|awk 'NR==3{print $2}'
- ;;
-
- requests)
- curl $hostip:$port/status 2>/dev/null|awk 'NR==3{print $3}'
- ;;
- ping)
- pidof nginx|wc -l
- ;;
- esac
userparameter_ssh.conf
UserParameter=sc.nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_data.sh $1