zabbix监控
zabbix是什么
- zabbix是一个基于WEB界面提供的分布式系统监视以及网络监控功能的我也急的开源解决方式
- zabbix能够监视这种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制让系统管理员快速定位/解决存在的各种问题
zabbix两个构成部分
- zabbix server
- 通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器或者网络状态等的监视功能还有数据收集等功能
- zabbix agent
- 安装在被监视的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU等信息的收集
zabbix原理
zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。
安装zabbix
环境
zabbix服务端:192.168.42.11 zabbix客户端:192.168.42.12
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server
安装zabbix服务端
设置下载源,编译安装服务端
#获取 zabbix 的下载源
[root@zabbix ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#将下载源给更改为阿里云
[root@zabbix ~]# cd /etc/yum.repos.d/
[root@zabbix yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
[root@zabbix yum.repos.d]# yum clean all && yum makecache
[root@zabbix yum.repos.d]# yum install -y zabbix-server-mysql zabbix-agent
#安装zabbix-agent
[root@zabbix yum.repos.d]# yum install -y centos-release-scl
#安装SCL(Software Collections),便于后续安装高版本的 php,SCL的软件包会安装在/opt/rh下
修改zabbix-front前段源,并且安装前端源到SCL环境下
[root@zabbix yum.repos.d]# vim zabbix.repo
[zabbix-frontend]
···········
enabled=1 #开启安装源
[root@zabbix yum.repos.d]# yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#安装需要的网页软件
[root@zabbix yum.repos.d]# yum install -y mariadb-server mariadb
#安装zabbix所需的数据库
[root@zabbix yum.repos.d]# systemctl enable --now mariadb
#开启
[root@zabbix ~]# mysql_secure_installation
#初始化数据库,设置密码
先回车,在输入密码,密码要输入两次,后面都选择Y一直回车,就完成设置密码
添加数据库用户,和zabbix需要的数据库信息
[root@zabbix ~]# mysql -u root -p123456
#登录
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库,编码使用utf8
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'%'identified by 'zabbix';
#授权给zabbix用户所有权限
MariaDB [(none)]> flush privileges;
#刷新数据库
导入数据库信息
#查询sql文件位置
[root@zabbix ~]# rpm -ql zabbix-server-mysql
#将查询到的sql压缩包导入数据库里面
[root@zabbix ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.30/create.sql.gz | mysql -u root -p123456 zabbix
修改zabbix-server配置文件,和修改数据库密码
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf
#修改配置文件
··············
124 DBPassword=zabbix
#指定修改zabbix数据库的密码
修改zabbix中的PHP配置文件
[root@zabbix ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#编辑PHP的配置文件
·················
25 php_value[date.timezone] = Asia/Shanghai
#将注释取消,并且修改时区为亚洲上海
启动zabbix相关服务
[root@zabbix ~]# systemctl restart zabbix-server.service zabbix-agent.service httpd rh-php72-php-fpm.service
#开启
[root@zabbix ~]# systemctl enable zabbix-server.service zabbix-agent.service httpd rh-php72-php-fpm.service
#设置开机自启
验证
- 浏览器访问http:192.168.42.11/zabbix
- 点击next step
- 再点击next step
- 设置密码为zabbix,再点击next step
- 一直next step
- 最后点击finish
- 登录账户和密码,默认账户是Admin;密码是zabbix(注意大小写)
- 由于登录上去是全英文的,英文不好的,可以设置为中文,点击左下角有个“user settings”
- 再点击language的框里面选择Chinese(zh_CN),最后点击update更新,就可以变成中文
问题
如果zabbix-server WEB页面出现乱码
安装
yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
部署zabbix客户端
zabbix服务端zabbix_server的端口默认是10051,客户端zabbix_agent2的端口默认为10050
systemctl disable --now firewalld
setenforce 0
服务端与客户端配置时间同步
[root@sgent2 ~]# yum install -y ntpdate
[root@sgent2 ~]# ntpdate -u ntp.aliyun.com
[root@sgent2 ~]# date
设置zabbix下载源,安装zabbix-agent2
[root@sgent2 ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@sgent2 ~]# cd /etc/yum.repos.d
#将下载源的地址加入yum里面
[root@sgent2 yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
[root@sgent2 yum.repos.d]# yum install -y zabbix-agent2
#下载zabbix-agent2
修改agent2的配置文件,并启动
[root@sgent2 yum.repos.d]# vim /etc/zabbix/zabbix_agent2.conf
··············
80 Server=192.168.42.11
#指定服务器的ip地址
··············
123 ServerActive=192.168.42.11
#指定服务端的IP地址
··············
134 Hostname=agent2
#取消注释,并且修改,指定当前客户端的主机名
[root@sgent2 yum.repos.d]# systemctl start zabbix-agent2.service
[root@sgent2 yum.repos.d]# systemctl enable zabbix-agent2.service
[root@sgent2 yum.repos.d]# netstat -natp | grep zabbix
服务端验证zabbix-agent2的连通性
[root@zabbix ~]# yum install -y zabbix-get
#安装zabbix主动获取数据的命令
[root@zabbix ~]# zabbix_get -s '192.168.42.12' -p 10050 -k 'agent.ping'
#查看连通性,1表示成功
[root@zabbix ~]# zabbix_get -s '192.168.42.12' -p 10050 -k 'system.hostname'
sgent2
#获取客户端的ip
WEB页面添加agent主机
- 点击左边菜单栏的“配置”,选择“主机”,点击右上角的“创建主机”
- 主机名设置为客户端里面设置的:agent2
- 课件的名称设置为:agent2-192.168.42.12
- 群组选择:Linux servers
- Interfaces的IP地址设置成:192.168.42.12
- 最后点击添加
- 查看添加主机的后面是否显示绿色的方块(显示就是添加成功,没显示就是没成功)
自定义监控内容
自定义监控客户端服务登录的人数
需求
限制登录人数不超过3个,超过3个就发出报警信息
客户端创建自定义的key
客户端创建自定义key
[root@sgent2 zabbix]# who
[root@sgent2 zabbix]# who | wc -l
创建zabbix的监控项配置文件,用于自定义key
[root@sgent2 ~]# vim /etc/zabbix/zabbix_agent2.conf
·············
273 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#这个可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
296 # Format: UserParameter=<key>,<shell command>
#这个是自定义监控项的格式
[root@sgent2 ~]# cd /etc/zabbix/zabbix_agent2.d/
[root@sgent2 zabbix_agent2.d]# vim UserParameter_login.conf
#创建zabbix的监控项配置文件,用于定义key
#添加此内容
UserParameter=login.user,who|wc -l
[root@sgent2 zabbix_agent2.d]# systemctl restart zabbix-agent2.service
#重启
服务端验证新建的监控项
[root@zabbix ~]# zabbix_get -s '192.168.42.12' -p 10050 -k 'login.user'
显示3个,是因为上面执行linux命令个数里面有一个不是监控项
web页面创建自定义监控模板
创建模板
- 点击左边菜单栏里面的“配置”中的“模板”
- 点击创建模板
- “模板名称”设置成 Template Login User
- “可见的名称”设置成 Template Login User
- “群组”选择 Template
- “描述”可自定义
- 最后点击“添加”
- 回到“模板”主页,在上面“名称”的框中输入“Template Login User”就可以搜索到
创建应用集(用于管理监控项)
- 点击“配置”中的“主机”
- 点击搜索框下面显示的第二个“应用集”
- 在点击右上角的“创建应用集”
- 名称设置为“Login User”
- 点击添加
创建监控项
- 点击“配置”中的“主机”
- 点击搜索框下面显示的第二个“监控项”
- 点击右上角“创建监控项”
- “名称”设置成 Number of login users
- “键值”设置成 login.user
- #键值必须要与自定义的监控项配置文件中设置的保持一致
- “更新间隔”设置成 10s
- “历史数据保留时长”为 30d
- #保留时间可自定义设置
- 点击 【添加】