zabbix安装部署及监控配置

  1. 构建LAMP环境: yum -y install httpd mariadb mariadb-server php php-mysql
  2. 安装zabbix需要的php库,网络源: yum install php-bcmath php-gd php-ldap php-mbstring php-xml -y
  3. 上传并解压zabbix源: tar xf zabbix-4.4.6.tar.gz -C /opt/
  4. 编写yum源: vim /etc/yum.repos.d/zabbix.repo

    [zabbix4-4-6]
    name=Zabbix4-4-6
    baseurl=file:///opt/zabbix4-4-6
    enabled=1
    gpgcheck=0

  5. 安装依赖包: yum install OpenIPMI OpenIPMI-libs OpenIPMI-modalias unixODBC fping -y

  6. 安装zabbix: yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get -y
  7. 启动数据库: systemctl enable —now mariadb
  8. 设置密码: mysqladmin -uroot password 123456
  9. 登录数据库,并创建zabbix数据库: mysql -uroot -p123456 -e ‘create database zabbix character set utf8 collate utf8_bin;’
  10. 创建登录用户: mysql -uroot -p123456 -e ‘grant all privileges on zabbix.* to zabbix@localhost identified by “密码”;’
  11. 导入数据库: zcat /usr/share/doc/zabbix-server-mysql-4.4.6/create.sql.gz | mysql -uzabbix -pzabbix zabbix
  12. 编辑配置: vim /etc/zabbix/zabbix_server.conf

124行 # DBPassword= 取消注释并写上数据库密码

  1. 查看zabbix在httpd里面的别名: vim /etc/httpd/conf.d/zabbix.conf

修改20行php时区: # php_value date.timezone Europe/Riga 取消注释并更改为: php_value date.timezone Asia/Shanghai

  1. 启动zabbix的web页面: systemctl enable zabbix-server zabbix-agent httpd mariadb —now
  2. 访问 ip:/zabbix/setup.php来安装 zabbix

zabbix监控专项 - 图1

  1. 检查环境,确认所有选项为ok

zabbix监控专项 - 图2

  1. 输入连接数据库的详细信息

zabbix监控专项 - 图3

  1. 输入zabbix服务器的主机名或ip,以及安装可选项

zabbix监控专项 - 图4

  1. 确认配置

zabbix监控专项 - 图5

  1. 完成安装

zabbix监控专项 - 图6

  1. 输入ip/zabbix/index.php来登入 初始密码为: Admin/zabbix

zabbix监控专项 - 图7

  1. 修改为中文界面

zabbix监控专项 - 图8
zabbix监控专项 - 图9

  1. 配置主机,启动本主机,如果没有启动点后面的停用,点确认即可启用

zabbix监控专项 - 图10

zabbix监控其他主机

  1. 安装配置监控端: rpm -Uvh zabbix-agent-4.4.6-1.el7.x86_64.rpm
  2. 配置监控端文件: vim /etc/zabbix/zabbix_agentd.conf

改: Server=127.0.0.1 为: Server=192.168.1.63
改: ServerActive=127.0.0.1为: ServerActive=192.168.1.63
改: Hostname=Zabbix server 为: Hostname=主机名

  1. 启动服务: systemctl enable –now zabbix-agent
  2. 验证是否启动: netstat -anutp |grep 10050
  3. 在服务端测试通讯: zabbix_get -s 192.168.1.64 -p 10050 -k system.uname

参数说明: -s 指定客户端ip或者主机名 -p 指定端口 -k 指定想获取的参数key
zabbix_agentd -p 可以寻找自己想要的参数

  1. 将主机添加到zabbix服务器上并监控

zabbix监控专项 - 图11
zabbix监控专项 - 图12
zabbix监控专项 - 图13
zabbix监控专项 - 图14

  1. 定义主机模板

zabbix监控专项 - 图15
zabbix监控专项 - 图16
zabbix监控专项 - 图17
zabbix监控专项 - 图18

  1. 查看监控项

zabbix监控专项 - 图19
zabbix监控专项 - 图20

解决zabbix中文乱码问题

  1. 将楷体字体导入到服务器中,

zabbix监控专项 - 图21

  1. 修改权限: chown zabbix:zabbix simkai.ttf
  2. 移到到字符目录下: mv simkai.ttf /usr/share/zabbix/assets/fonts/
  3. 将之前字体改名: mv graphfont.ttf{,.bak}
  4. 将导入字体改成之前字体名字: mv simkai.ttf graphfont.ttf
  5. 重启web服务: systemctl restart httpd
  6. 刷新页面即可生效

    修改监控项报警 (以磁盘空间小于20G报警为例)

    1.找到模板
    zabbix监控专项 - 图22
    2.创建监控项
    zabbix监控专项 - 图23
    zabbix监控专项 - 图24
    键值可以找到自己想要监控项目对应的键值
    zabbix监控专项 - 图25
    3.检测
    在创建确认之前,可以在服务端向命令端发起查询键值,如果返回数值就证明可用
    zabbix_agentd -p | grep vfs.fs.size[fs,] 查询是否有这个键值
    https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/zabbix_agent 官方查询文档
    4.创建监控
    zabbix监控专项 - 图26
    5. 创建图形,便于查看数据
    zabbix监控专项 - 图27
    zabbix监控专项 - 图28
    6. 创建触发器报警
    zabbix监控专项 - 图29
    zabbix监控专项 - 图30
    zabbix监控专项 - 图31
    zabbix监控专项 - 图32
    zabbix监控专项 - 图33

    使用Grafana展示zabbix监控图标

  7. 上传包并安装: yum -y install grafana-6.6.2-1.x86_64.rpm

  8. 安装zabbix支持包: unzip grafana-zabbix-v3.10.5.zip -d /var/lib/grafana/plugins/
  9. 启动: systemctl start grafana-server
  10. 登录web页面: http://ip:3000/login 用户名: admin/admin
  11. 登录,修改密码

zabbix监控专项 - 图34

  1. 启用插件

zabbix监控专项 - 图35
zabbix监控专项 - 图36

  1. 添加数据源

zabbix监控专项 - 图37
zabbix监控专项 - 图38
zabbix api地址: http://ip/zabbix/api_jsonrpc.php
zabbix监控专项 - 图39

  1. 启动仪表盘

zabbix监控专项 - 图40
zabbix监控专项 - 图41

  1. 查看效果

zabbix监控专项 - 图42
zabbix监控专项 - 图43
zabbix监控专项 - 图44

监控apache

  1. 监控端安装: yum -y install httpd
  2. 安装监控rpm包: rpm -ivh zabbix-agent
  3. 修改配置文件: vim /etc/zabbix/zabbix_agentd.conf

找到Server 和 ServerActive 后面修改成server的ip地址

  1. 修改httpd文件: vim /etc/httpd/conf/httpd.conf 添加到最后一行即可

ExtendedStatus On #开启httpd状态检测

SetHandler server-status
Order allow,deny # 开启权限
Allow from 127.0.0.1 192.168.1.0/24 # 指定可以访问的ip网段

  1. 重启: systemctl restart httpd

验证: http://ip/server-status

  1. 主机关联模板:

zabbix监控专项 - 图45
zabbix监控专项 - 图46
zabbix监控专项 - 图47
zabbix监控专项 - 图48
zabbix监控专项 - 图49

  1. httpd压力测试下,看数据变化: ab -n 1000 -c 10 测试地址 在10秒内,访问1000次

-n 测试中总共访问次数 -c 指定测试的并发数

监控mysql或mariadb

  1. 安装mariadb: yum -y install mariadb-server
  2. 启动: systemctl enable —now mariadb
  3. 设置管理员密码: mysqladmin -uroot password 密码
  4. 设置zabbix监控时的账号: mysql -uroot -p管理员密码 -e ‘grant usage on . to zabbix@’localhost’ identified by “密码”;’
  5. 测试验证: mysql -uzabbix -p密码
  6. 复制监控模板: cp /usr/share/doc/zabbix-agent-4.4.6/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
  7. 检查zabbix-agent配置文件: vim /etc/zabbix/zabbix_agentd.conf

搜索关键字: zabbix_agentd.d 查看是否有/etc/下路径,如果被注释则取消注释,如果没有则自定义一个: Include=/etc/zabbix/zabbix_agentd.d/*.conf

  1. 编辑数据库自动登入: vim /etc/my.cnf.d/client.cnf

[client-mariadb]
user=zabbix
password=zabbix

  1. 验证: 配置自动登入的文件后,直接敲mysql即可登录,进行验证

数据库登入后查询: select user(); 查询当前用户

  1. 给主机添加监控模板

zabbix监控专项 - 图50
zabbix监控专项 - 图51
zabbix监控专项 - 图52
zabbix监控专项 - 图53
zabbix监控专项 - 图54
zabbix监控专项 - 图55
zabbix监控专项 - 图56

  1. 数据库压测查看数据变化: mysqlslap -uroot -p密码-concurrency=100 —number-of-queries=1000 —number-int-cols=5 —number-char-cols=20 —auto-generate-sql

—concurrency=100 #指定同时有 100 个客户端连接; concurrence [kənˈkʌrəns] 同时,并发
—number-of-queries=1000 #指定总的测试查询次数(并发客户端数 * 每个客户端的查询次数)
—auto-generate-sql #作用是自动生成测试 SQL。自动测试时,创建的表结构非常简单,只有两列,实际的产品环境肯定会更复杂,可以使用参数指定列的数量和类型。
–number-int-cols=5 #指定生成 5 个 int 类型的列
–number-char-cols=20 #指定生成 20 个 char 类型的列
返回数据结果:
Average number of … #运行所有语句的平均秒数
Minimum number of … #运行所有语句的最小秒数
Maximum number of … #运行所有语句的最大秒数
Number of clients … #客户端数量
Average number of queries per client #每个客户端运行查询的平均数

配置邮件报警

  1. 安装邮件服务: yum -y install mailx
  2. 编辑邮件报警配置文件: vim /etc/mail.rc 在末尾添加

set from= xxx # 发件人邮箱
set smtp= xxx # 邮件smtp地址
set smtp-auth-user= xxx # 发件人用户
set smtp-auth-password=xxxxx # smtp授权码
set smtp-auth=login

  1. 检测邮件是否能发送: echo “邮件内容” | mailx -s “主题” 收件人邮箱
  2. 编写邮件脚本: vim /usr/lib/zabbix/alertscripts/sendmail.sh

!/bin/bash
messages=echo $3 | tr '\r\n' '\n'
subject=echo $2 | tr '\r\n' '\n'
echo “${messages}” | mailx -s “${subject}” $1

  1. 授权: chown zabbix.zabbix /usr/lib/zabbix/alertscripts/sendmail.sh && chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh
  2. 查看文件路径: vim /etc/zabbix/zabbix_server.conf

搜索关键字 AlertScriptsPath ,如果是/usr/lib/zabbix/alertscripts目录则不用修改,如果被注释删除注释,不是则手动添加: AlertScriptsPath=/usr/lib/zabbix/alertscripts

  1. 创建报警媒介:

zabbix监控专项 - 图57
zabbix监控专项 - 图58
zabbix监控专项 - 图59
添加脚本参数依次如下: {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE}

  1. 给用户添加邮件:

zabbix监控专项 - 图60
zabbix监控专项 - 图61
zabbix监控专项 - 图62

  1. 创建报警动作

zabbix监控专项 - 图63
zabbix监控专项 - 图64
修改操作,邮件内容为:
默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
消息内容:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
zabbix监控专项 - 图65
zabbix监控专项 - 图66
zabbix监控专项 - 图67
zabbix监控专项 - 图68
zabbix监控专项 - 图69
zabbix监控专项 - 图70
添加恢复操作:
默认接收人:已恢复!{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
zabbix监控专项 - 图71
zabbix监控专项 - 图72
zabbix监控专项 - 图73
zabbix监控专项 - 图74
zabbix监控专项 - 图75

  1. 可以手动制造故障来测试邮件发送性
  2. 报警邮件发送查看:

zabbix监控专项 - 图76

优化数据收集频率以及触发时间

  1. 以mysql模板为例

zabbix监控专项 - 图77
zabbix监控专项 - 图78
zabbix监控专项 - 图79
主要看表达式中使用哪个监控项进行判断的。mysql 的表达式明显可以看到根据 mysql.ping 进行判断。
zabbix监控专项 - 图80
zabbix监控专项 - 图81
zabbix监控专项 - 图82
zabbix监控专项 - 图83

自动发现、自动注册

  1. 适用于同一网段其他主机自动加入监控

zabbix监控专项 - 图84
zabbix监控专项 - 图85
zabbix监控专项 - 图86
zabbix监控专项 - 图87
zabbix监控专项 - 图88
zabbix监控专项 - 图89
zabbix监控专项 - 图90
zabbix监控专项 - 图91
发送模版
默认标题
自动发现主机: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}
消息内容
发现规则: {DISCOVERY.RULE.NAME}
设备 IP:{DISCOVERY.DEVICE.IPADDRESS}
设备 DNS: {DISCOVERY.DEVICE.DNS}
设备状态: {DISCOVERY.DEVICE.STATUS}
设备运行时间: {DISCOVERY.DEVICE.UPTIME}
设备服务端口: {DISCOVERY.SERVICE.NAME}

  1. 自动发现后加入主机组

zabbix监控专项 - 图92
zabbix监控专项 - 图93

  1. 自动发现主机添加监控模板

zabbix监控专项 - 图94
zabbix监控专项 - 图95

  1. 自动发现主机启用

zabbix监控专项 - 图96
zabbix监控专项 - 图97
zabbix监控专项 - 图98

  1. 自动发现机器安装监控插件: rpm -ivh zabbix-agent
  2. 修改配置文件: vim /etc/zabbix/zabbix_agentd.conf

修改Server和 ServerActive 为服务端ip 修改 Hostname = 主机名

  1. 启动插件: systemctl enbale zabbix-agent —now
  2. 随后等待自动发现

zabbix监控专项 - 图99