zabbix

安装服务端

1:配置zabbix的yum源
#下载zabbix-release
wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
#安装zabbix-release
rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
#将官方仓库地址替换为清华仓库地址
sed -i 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo
​
2:安装zabbix服务端和zabbix-web前端
yum install zabbix-server-mysql zabbix-web-mysql  -y
​
3:安装mariadb,创建zabbix库,授权zabbix用户
yum install mariadb-server -y
mysql_secure_installation
先回车
再n
然后一路y
​
mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';
​
导入zabbix表结构和初始数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
​
检查zabbix库是否导入成功
mysql -uroot  zabbix -e 'show tables'
​
4:配置启动zabbix-server
vi /etc/zabbix/zabbix_server.conf 
DBHost=localhost 
DBName=zabbix
DBUser=zabbix
DBPassword=123456
  1 DBName=zabbix
  2 DBUser=zabbix
  3 DBPassword=4JwjfGiCwvt3JSzi
  4 DBHost=127.0.0.1
  5 DBPort=3306
  6 LogFile=/usr/local/zabbix/tmp/zabbix_server.log
  7 PidFile=/usr/local/zabbix/tmp/zabbix_server.pid
  8 AlertScriptsPath=/usr/local/zabbix/alertscripts
  9 StartPollers=25
 10 StartTrappers=2
 11 CacheSize=16M
 12 HistoryCacheSize=16M
 13 TrendCacheSize=8M
 14 ValueCacheSize=16M
 15 CacheUpdateFrequency=180
 16 LogFileSize=2
 17 Timeout=10
​
5:修改Zabbix前端的PHP配置,并启动httpd
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

后期修改zabbix数据库密码的时候,需要修改的配置文件:
/etc/zabbix/web/zabbix.conf.php
登录的账号密码;
Admin
zabbix

安装客户端

wget https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.16-1.el7.x86_64.rpm
rpm -ivh  zabbix-agent-4.0.16-1.el7.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.71

自定义监控项

[root@web01 ~]# cat /etc/zabbix/zabbix_agentd.d/disk.conf 
UserParameter=disk.tps[*],iostat|awk '/$1/{print $$2}'

触发器

diff() 比较两次取到的值
last() 最新值
avg(5m) 平均5分钟,改值都大于>1
max(5m) 最大值
min(5m) 最小值
nodate(5m) 没有收到数据报警

报警媒介

存放脚本目录
/usr/lib/zabbix/alertscripts
脚本参数
{ALERT.SENDTO} 收件人的用户名
{ALERT.SUBJECT} 发送主题
{ALERT.MESSAGE} 发送详情信息
配置>动作>触发器>操作>中定制报警内容
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}

grafana出图

下载zabbix插件
grafana-cli plugins install alexanderzobnin-zabbix-app

自动注册

vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.71 #允许向自己要取数据的ip
ServerActive=10.0.0.71 #向指定ip地址发送数据
Hostname=10.0.0.8 #主机名字
HostMetadata=web #主机群组

动作创建自动注册
包含agent的HostMetadata元数据

版本升级

卸载旧版本的源
rpm -e zabbix-release
yum install zabbix-server-mysql zabbix-web-mysql
解决模板不兼容问题

分布式监控

配置yum源
安装
yum install zabbix-proxy-mysql mariadb-server -y
MariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by

导数据
cd /usr/share/doc/zabbix-proxy-mysql-4.0.16/
gzip -d schema.sql.gz
mysql zabbix_proxy -uzabbix -p123456 < schema.sql

[root@web02 ~]# grep -Ev ‘^$|#’ /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.71
Hostname=sz_proxy #唯一,和创建的agent代理名称一致
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456

jmx监控

yum install zabbix-java-gateway

#开启tomcat的远程监控
vim /app/apache-tomcat-8.0.27/bin/catalina.sh
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=10.0.0.8
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"

windows jconsole.exe MBean
查看ObjectName和值名称

jmx["Catalina:type=Engine",startStopThreads]
      #ObjectName          #值名称

低级自动发现LLD

[root@web01 ~]# cat /etc/zabbix/zabbix_agentd.d/disk.conf 
UserParameter=disk.discovery,/tmp/discovery.sh #执行权限
[root@web01 ~]# cat /tmp/discovery.sh #生成json格式
#!/bin/bash
port=(`iostat|awk 'NR>6{print $1}'|sed '/^$/d'`) #查看所有磁盘命令放入数组
printf '{\n'
printf '\t"data":[\n'
   for key in ${!port[@]}
       do
           if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
              printf '\t {\n'
              printf "\t\t\t\"{#DISKNAME}\":\"${port[${key}]}\"},\n" #变量名称
           else [[ "${key}" -eq "((${#port[@]}-1))" ]]
              printf '\t {\n'
              printf "\t\t\t\"{#DISKNAME}\":\"${port[${key}]}\"}\n"
           fi
   done
              printf '\t ]\n'
              printf '}\n'

服务端下载zabbix-get测试
zabbix_get -s 10.0.0.8 -k disk.discovery

运行监控项使用的zabbix用户,命令权限拒绝chmod u+s即可

性能优化

1)针对mysql,写多读少 mariadb 5.5 存储引擎innodb 升级 mysql 5.7 tokudb
2)去掉无用监控项,增加监控项的取值间隔,减少历史数据保存周期
3)把被动模式修改为主动模式,增加zabbix-proxy
4)针对于zabbix-server进程调优,谁忙,就加大它的进程数量
监测>图形
Zabbix data gathering process busy %
Zabbix internal process busy %
查询哪个进程压力高,调高进程
进程过高影响内存,造成oom
5)针对于zabbix-server缓存调优,谁的剩余内存少,就加大它的缓存值
6)针对zabbix 历史数据和趋势图的表,进行周期性分表( 分表)

api

官方文档
获取token
curl -x POST -H “Content-Type: application/json-rpc” -d ‘{
“jsonrpc”: “2.0”,
“method”: “user.login”,
“params”: {
“user”: “Admin”,
“password”: “zabbix”
},
“id”: 1,
“auth”: null
}’ “http://10.0.0.71/zabbix/api_jsonrpc.php”

引入变量需要单引号引起来

企业微信群聊机器人报警

  1. 添加报警媒介类型
    在这里插入图片描述
    将wechat.py文件放在配置文件的AlertScriptsPath路径
  2. 添加动作
    在这里插入图片描述
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}

Item values:

1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}

Original event ID: {EVENT.ID}
  1. 用户报警媒介
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值