1.获取zabbix官⽅源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # 修改为阿里源 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo yum clean all yum makecache
2.安装zabbix server和agent
yum install zabbix-server-mysql zabbix-agent -y
3.安装 Software Collections
yum install centos-release-scl -y
4.修改zabbix前端源
vim /etc/yum.repos.d/zabbix.repo [zabbix-frontend] name=Zabbix Official Repository frontend - $basearch baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$b asearch/frontend enabled=1 #修改这⾥为1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
5.安装zabbix前端环境
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
6.安装zabbix所需的数据库,直接⽤centos7⾃带的mariadb
yum install mariadb-server -y
7.启动数据库,且配置开机启动
systemctl enable --now mariadb #Created symlink from /etc/systemd/system/multiuser.target.wants/mariadb.service to/usr/lib/systemd/system/mariadb.service.
8.初始化mariadb,设置root密码,123456
mysql_secure_installation
9.使⽤root⽤户登录mariadb,建⽴zabbix数据库,这⾥的编码设置,⾮常重要,否则zabbix⽆法安装
create database zabbix character set utf8 collate utf8_bin; create user zabbix@localhost identified by '123456'; grant all privileges on zabbix.* to zabbix@localhost; flush privileges; quit;
10.导⼊ zabbix 数据库,zabbix 数据库⽤户为 zabbix,密码为123456
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
11.修改 zabbix server 配置⽂件/etc/zabbix/zabbix_server.conf⾥的数据库密码
grep '^DBPassword' /etc/zabbix/zabbix_server.conf DBPassword=123456
12.修改 zabbix 的 php 配置⽂件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ⾥的时区
grep 'timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf php_value[date.timezone] = Asia/Shanghai
13.启动相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
14.访问zabbix⼊⼝
$ip/zabbix #登录账号为 Admin,密码:zabbix,注意⼤⼩
15.为修改中文界面
User settings > Language > Chinses
16.主机图表中文乱码问题
# 安装字体,这里选择文泉驿微米黑字体 yum install -y wqy-microhei-fonts.noarch update-alternatives --install /usr/share/zabbix/assets/fonts/graphfont.ttf zabbix-web-font /usr/share/fonts/wqy-microhei/wqy-microhei.ttc 10 # 配置字体 update-alternatives --config zabbix-web-font # 重启Zabbix-Server服务 systemctl restart zabbix-server二、Zabbix-agent2部署
1.获取zabbix官⽅源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm # 修改为阿里源 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo yum clean all yum makecache
2.注意时间正确
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
# 修改时区
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
3.安装zabbix-agent2
yum install zabbix-agent2 -y # 默认配置文件 /etc/zabbix/zabbix_agent2.conf # 默认二进制文件 /usr/sbin/zabbix_agent2
6.启动zabbix-agent2且开机⾃启
systemctl enable --now zabbix-agent2
7.检查端口
netstat -ntlp | grep zabbix tcp6 0 0 :::10050 :::* LISTEN 1236/zabbix_agent2
8.修改配置文件
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf PidFile=/var/run/zabbix/zabbix_agent2.pid LogFile=/var/log/zabbix/zabbix_agent2.log LogFileSize=0 Server=1.1.1.1 #修改为本机ip ServerActive=2.2.2.2 #修改为Zabbix-server机ip Hostname=zbz-agent-1 #修改为本机主机名 Include=/etc/zabbix/zabbix_agent2.d/*.conf ControlSocket=/tmp/agent.sock
9.重启zabbix-agent2
systemctl restart zabbix-agent2三、Zabbix词汇
zabbix server 服务端,收集数据,写⼊数据 zabbix agent 部署在被监控的机器上,是⼀个进程,和zabbix server进⾏交互,以及负责执⾏命令 Host 服务器的概念,指zabbix监控的实体,服务器,交换机等 Hosts 主机组 Applications 应⽤ Events 事件 Media 发送通知的通道 Remote command 远程命令 Template 模板 Item 对于某⼀个指标的监控,称之为Items,如某台服务器的内存使⽤状况,就是⼀个item监控项 Trigger 触发器,定义报警的逻辑,有正常,异常,未知三个状态 Action 当Trigger符合设定值后,zabbix指定的动作四、Zabbix程序组件
Zabbix_server 服务端守护进程 Zabbix_agentd agent守护进程 zabbix_proxy 代理服务器 zabbix_database 存储系统,mysql,pgsql Zabbix_web web GUI图形化界⾯ Zabbix_get 命令⾏⼯具,测试向agent发起数据采集请求 Zabbix_sender 命令⾏⼯具,测试向server发送数据 Zabbix_java_gateway java⽹关五、Zabbix_get工具使用
zabbix_get -s '1.1.1.1' -p 10050 -k 'system.hostname' #获取主机名 zabbix_get -s '1.1.1.1' -p 10050 -k 'system.uname' #获取内核信息 常用key agent.ping #ping存活探测 1为通 0为不通 net.tcp.port[,3306] #探测3306端口是否启用 1为启用 0为关闭 proc.num[mysqld] #获取mysqld的进程数 system.cpu.num #获取cpu核数 system.uname #获取系统信息 system.hostname #获取主机名 net.if.out[eth0,bytes] #获取eth0网卡出口流量 net.if.in[eth0,bytes] #获取eth0网卡监控流量 net.if.discovery #自动发现网卡并监控流量 vm.memory.size[total] #查看系统内存大小 单位bytes vfs.file.size[file] #查看文件大小 单位bytes vfs.file.exists[file] #查看文件是否存在 存在返回0 0不存在返回1 vfs.file.md5sum[file] #查看文件md5值 vfs.fs.discovery #自动发现分区及分区挂在情况 #以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。 #如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果。 #zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。六、自定义监控key
添加主机可默认使用linux-server群组 linux-server模板监控
1.配置文件路径
/etc/zabbix/zabbix_agent2.d/
2.配置文件导入
# zabbix配置⽂件,⼤多数软件配置都会使⽤include形式来优化配置⽂件 grep -i '^include' /etc/zabbix/zabbix_agent2.conf Include=/etc/zabbix/zabbix_agent2.d/*.conf #也可以单独Include指定某个conf Include=/etc/zabbix/zabbix_agent2.d/keys.conf
3.自定义key语法
UserParameter=, UserParameter=login.user,who|wc -l UserParameter=login.user2,/bin/sh /server/scripts/login.sh # 要注意的是key名要唯⼀,可以写⼊多个key
4.重启重载zabbix-agent2
# 每次新增或修改都需要重载生效 systemctl restart zabbix-agent2
5.zabbix-server端测试
zabbix_get -s '1.1.1.1' -p 10050 -k "login.user"
6.dashboard页面配置
创建模板 创建应⽤集:对监控项分类 创建监控项:定义item,监控的内容 创建触发器:当监控项获取到值,且达到触发条件就会告警 创建图形 主机进⾏模板关联:一个主机可以关联多个模板七、邮件报警
1.dashboard界面配置
界面 > 管理 > 报警媒介 > Email #本次使用个人163邮箱测试 SMTP服务器:smtp.163.com 端口:25 SMTP HELO:163.com SMTP电邮:*.163.com 用户密码认证:密码为网易邮箱授权码
2.网易授权码获取
界面 > 设置 > POP3/SMTP/IMAP > 开启SMTP
3.设置收件人邮箱
界面 > 用户设置 > 报警媒介 > 添加八、zabbix接口
curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc":"2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://192.168.100.30/zabbix/api_jsonrpc.php"
九、监控服务通用方法
1.服务端口监控
自带端口监控key:net.tcp.port[,3306] 或者自建key 使⽤netstat、ss、lsof等命令 结合grep查看是否有结果
2.进程监控
自带进程监控key:proc.num[mysqld] 或创建key 通过ps结合grep查看
3.模拟客户端探测
web服务,通过curl、wget命令访问 mysql,SQL语句验证 memcached,set写⼊,get获取,查看结果十、自动发现/自动注册
被动模式
1.配置自动发现规则 界面 > 配置 > 自动发现 > 创建规则 2.创建发现自动注册动作 界面 > 动作 > 操作细节
主动模式
1.新增机器配置zabbix-agent2 参照本文二配置 修改配置文件步骤多一行 HostnameItem=system.hostname 2.启动zabbix-agent2 systemctl start zabbix-agent2 3.创建动作 界面 > 配置 > 动作 > Autoregistration actions > 创建动作 > 条件 > 主机名称 包含 主机名特定值 > 操作 > 添加主机 群组 模板



