zabbix
2018-05-23 本文已影响19人
Miracle001
自动化运维技术--运维框架
image.png自动化监控
image.pngzabbix architecture1
image.pngzabbix architecture2
image.pngmetric data:指标数据--与合理指标对比,是否超出域值
alerting:threshhold--阈值区间 or 次数3次--即报警
采集各种数据指标--比较合理指标
long trend:长期趋势
采集到不同的数据--它们的处理方式不同
原始数据
变化量
速率
各时间段加起来求和/计数
传感器-->发送给监控系统
监控系统A 被监控系统B
主动监控 A主动发送请求给B,B再发送自己的数据指标给A
被动监控 B直接发送自己的数据指标给A
zabbix 集成系统--自身不能存储数据,需要借助mysql/pgsql
statsd 仅能采集数据
prometheus 集成系统--自身能存储数据--go研发--未来方向
采集--存储--阈值分析/报警--可视化接口/图形展示
zabbix/prometheus 集成系统--图形很low
Graphana 图形展示,可功能定制
zabbix/prometheus+Graphana
agent协议 SNMP协议 如下图实验拓扑
网络压力 多种指标
NVPS:New Values Per Second
存储很可能成为瓶颈--上百台服务器
时间存储系统 时间序列处理数据
网站:https://db-engines.com/en/ranking/time+series+dbms
influxdb/...
prometheus 有存储数据的能力--未来趋势
zabbbix 本身没有存储数据的能力--借助mysql/pgsql
CMDB--资产管理系统
企业资产--记录多少个主机...
程序语言写一个CMDB即可--很简单
配置系统
需要主机清单--从CMDB的API中获取
监控系统
系统内的每个主机都要安装zabbix-agent,通过zabbix-server与zabbix-agent通信进行监控
web架构图如下图1
web架构图
image.png实验拓扑
image.pngnode4: 192.168.1.6 zabbix-server
node1: 192.168.1.7 zabbix-agent
node2: 192.168.1.8 zabbix-agent
node3: 192.168.1.5
同步时间
主机名解析
vim /etc/hosts
192.168.1.7 node1.fgq.com
192.168.1.8 node2.fgq.com
192.168.1.5 node3.fgq.com
192.168.1.6 node4.fgq.com
node4
wget http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
release包可以直接安装为仓库
rpm -ivh zabbix-release-3.5-1.el7.noarch.rpm
cat /etc/yum.repos.d/zabbix.repo
yum repolist
yum list all |grep zabbix
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-sender
zabbix-server-mysql -- 自动安装zabbix-server
zabbix-web-mysql -- 自动安装zabbix-web
zabbix-java-gateway -- 用到的时候再安装--基于JMS采集java虚拟机数据
yum -y install mariadb-server
默认会在其他主机上安装(所有不会自动解决依赖关系),此处使用本机安装
配置数据库
vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = on
innodb_file_per_table = on
systemctl start mariadb.service; ss -ntl 3306端口
ls /var/lib/mysql/mysql.sock 本地连接注意此路径
mysql
create database zabbix character set 'utf8'; 支持中文
grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zbxpass';
本地连接--此处使用
grant all on zabbix.* to 'zabbix'@'192.168.1.%' identified by 'zbxpass';
远程连接
flush privileges;
rpm -ql zabbix-server-mysql
cp /usr/share/doc/zabbix-server-mysql-4.0.0/create.sql.gz ./
gzip -d create.sql.gz
less create.sql 没有"create database"
mysql -uzabbix -h127.0.0.1 -pzbxpass zabbix < create.sql
use zabbix
show tables;
server配置
grep -i "^#####" /etc/zabbix/zabbix_server.conf 配置段
cp /etc/zabbix/zabbix_server.conf{,.bak}
vim /etc/zabbix/zabbix_server.conf
DBHost=127.0.0.1
DBPassword=zbxpass 不使用root用户连接的原因--文件泄露
DBSocket=/var/lib/mysql/mysql.socket
或者命令行符号链接:ln -sv /var/lib/mysql/mysql.sock /tmp/
systemctl start zabbix-server.service ; ss -ntl 端口10051
rpm -ql zabbix-web|less
vim /etc/httpd/conf.d/zabbix.conf
添加信息:
# php_value date.timezone Europe/Riga 时区更改
php_value date.timezone Asia/Shanghai 否则启动不起来--只对zabbix程序生效
或者 vim /etc/php.ini 搜索/timezone
;date.timezone = 添加时区设置,对所有php程序都生效(根据需要决定更改哪个)
systemctl start httpd.service
小作业:把zabbix配置成php-fpm来运行
浏览器:192.168.1.6/zabbix
如下如图1-13所示
图1
image.png图2
image.png图3
image.png图4
image.png图5
image.png图6
image.png图7
image.png图8
image.png图9
image.png图10:更新界面颜色
image.png图11:更改密码,显示中文
image.png图12
image.png图13
image.pngzabbix 逻辑架构
image.pngzabbix 逻辑架构 如上图
hosts-->host groups
items-->applications
triggers-->OK,PROBLEM
ok-->problem:events
problem-->ok:recovers
actions
CONDITION(发生events),OPERATION(scripts,notification)
notification升级--problem--engineer--未修复-->manager--未修复-->boss
加进主机
定义items--applications
定义triggers
定义actions--订阅CONDITION--采取OPERATION
看长期趋势
订阅graph/screen/slap show/...
zabbix server processes
zabbix poller:轮询器--周期性采集一次数据
internal:基于自身的监控
maintenance:维护--某事件段内,监控到异常不会报警
watchdog:监控自身
housekeeper:数据保存多久以后就清除,避免性能降低
pinger:监控各个主机是否正常在线
poller:采集数据
httppoller:测试web服务器的性能--发送请求页面--多久可以把请求内容发给我
discoverer:主机发现
nodewatcher:监控节点
timer:计时器--每隔多久采集一次监控项
escalator:报警升级
被监控主机允许通过多种方式被采集数据
agent代理程序的接口 监控主机指标
SNMP接口 监控网络指标--主机的吞吐
JMX接口 仅监控此主机上的java进程
IPMI接口 硬件级的某些指标
主机支持的前提下,一个主机可以通过4个接口传输不同类型的信息,最少应该有一个接口
配置agent
node1/2--agent (node3/4--先不安装zabbix agent--后面做代理时使用)
wget http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
rpm -ivh zabbix-release-3.5-1.el7.noarch.rpm
yum clean all
yum repolist
yum -y install zabbix-agent.x86_64 zabbix-sender.x86_64
rpm -ql zabbix-agent
grep -i "^#####" /etc/zabbix/zabbix_agentd.conf
Passive checks related 被动监控
站在agent端看:server请求数据,agent返回给server
Active checks related 主动监控
可以部分主动,部分被动
cp /etc/zabbix/zabbix_agentd.conf{,.bak}
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.6
ServerActive=192.168.1.6
Hostname=node1/2/3.fgq.com
systemctl start zabbix-agent.service ; ss -ntl 10050端口
systemctl status zabbix-agent.service 查看细节信息
图形界面操作 如下图
参考文档https://www.zabbix.com/documentation/4.0/zh/manual/config
图1
image.png图2
image.png图3
image.png图4
image.png图5
image.png图5-1
image.png图5-2
image.png图5-3
image.png图6
image.png图7
image.png图8
image.png图9-1:定义网卡接口流量--再创建一个item(过程类似前面,不赘述)
image.png图9-2
image.png图9-3
image.png图10-1:clone
image.png图10-2:out packets
image.png图10-3:in bytes
image.png图10-4:out bytes
image.png图10-5:in bytes graph
image.png图11-1:triggers
image.png图11-2
image.png图11-3
image.png图11-4
image.png图11-5
image.png图11-6
image.png图11-7:为了恢复正常,可以把各个主机的ping都关闭
image.png图12-1:action--报警后的操作--先定义用户邮箱
image.png图12-2
image.png图12-3
image.png图12-4
image.png图12-5
image.png图12-6
image.png图12-7
image.png图12-8
image.png图12-9
image.png图12-10
image.png图12-11
image.png图12-12
image.png图12-13
image.png图12-14
image.png图12-15
image.png图12-16
image.png图13-1:发送邮件给本机
image.png图13-2
image.png图13-3
image.png图13-4:此处出错,待查,掌握步骤即可
image.png图13-5
image.png图14-1:图形展示
image.png图14-2
image.png图14-3
image.png图14-4
image.png依赖关系:
如:主机down掉,所有触发器都报警--不好
主机down掉--仅报警主机信息即可,其他依赖主机的触发项就不用再报警了
网络故障--就不要报警主机信息,仅报警网络信息即可
具体操作--业务逻辑决定
避免报警信息爆棚
web页面打不开--web服务没有故障,可能是不能从redis中读取信息
web主机依赖DB主机/redis主机--redis主机down--不要报警web主机信息即可
被依赖者故障--依赖者就不用再报警了
图1
image.png图2
image.png图3
image.png图4
image.pngaction
condition和operation
node1
yum -y install redis
vim /etc/redis.conf
bind 0.0.0.0
systemctl start redis ; ss -ntl 6379端口
vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
LogRemoteCommands=1 执行的命令记录日志
systemctl restart zabbix-agent.service ; ss -ntl 10050端口
visudo
#Defaults !visiblepw 注释掉,允许没有tty终端的用户执行命令
# %wheel ALL=(ALL) ALL 注释此行
%wheel ALL=(ALL) NOPASSWD: ALL 启用此行
zabbix ALL=(ALL) NOPASSWD: ALL (允许zabbix无密码操作--all权限)
结合下面的图形来操作,关闭redis是否可以自动恢复故障
图1-1:监控redis
image.png图1-2
image.png图1-3
image.png图1-4
image.png图1-5:node1上关闭redis服务器
image.png图1-6:node1上开启redis服务器
image.png图1-7
image.png图1-8:定义一个triggers
image.png图1-9
image.png图1-10
image.png图1-11
image.png图1-12:down掉redis
image.png图1-13:开启redis服务器
image.png图1-14:定义行动
image.png图1-15
image.png图1-15'
image.png图1-16:任务复杂时,可以写一个脚本来执行(知道即可,不演示了)
image.png图1-17:如果解决故障需要很多步骤/命令,可以点击New填加
image.png图1-18
image.png图1-19:关闭redis服务,出现报警后看是否可以自动修复故障
image.png图1-20:自动恢复
image.png图1-21:基于ssh连接恢复故障
image.png图1-22:故障
image.png图1-23:ssh连接故障恢复
image.png图1-24:Type重新恢复为"Custom script"
image.png image.png邮箱报警
node4
grep "Alert*" /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts 脚本存放路径
vim /usr/lib/zabbix/alertscripts/send_mail.py 报警脚本(163邮箱)
#!/bin/env python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
from sys import argv
mailto_list=[]
mail_host="smtp.163.com:25"
mail_user="fgq_qianggedu@163.com"
mail_pass="xxxxxxxxxxx"
#mail_postfix="163.com" #发件箱的后缀
debug_level=0
def send_mail(to_list,sub,content):
me=mail_user
msg = MIMEText(content,_subtype='plain',_charset='utf-8')
msg['Subject'] = sub
msg['From'] = me
msg['To'] = ";".join(to_list)
try:
server = smtplib.SMTP()
server.set_debuglevel(debug_level)
server.connect(mail_host)
server.login(mail_user,mail_pass)
server.sendmail(me, to_list, msg.as_string())
server.close()
return True
except Exception, e:
print str(e)
return False
if __name__ == '__main__':
try:
mailto_list=argv[1].split(';')
sub=argv[2]
content=argv[3]
except:
print "python send_mail.py 'user1@xx.com;user2@xx.com' sub content"
exit()
if send_mail(mailto_list,sub,content):
print "发送成功"
else:
print "发送失败"
接下来操作如下图
图1-0
image.png图1-1
image.png图1-2
image.png图1-3
image.png图1-4
image.png图1-5:手动关闭redis,恢复后,是否发邮件
image.png微信报警
微信企业号申请 地址: https://work.weixin.qq.com/
需要扫码关注设置管理员
接下来如下图0-->图5
记录3个信息:Corpid Secret Agentid
node4
wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
tar zxvf requests-2.18.3.tar.gz
cd requests-2.18.3/
python setup.py build
python setup.py install 可能要等一会,不要急于ctrl+c
yum -y install git
git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
cp Zabbix-Alert-WeChat/wechat.py /usr/lib/zabbix/alertscripts/ 本身就带有执行权限
vim /usr/lib/zabbix/alertscripts/wechat.py
如下图6-1
图形界面设置如下图6-2-->图15
脚本内容
#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#auther:
import requests,sys,json
import urllib3
urllib3.disable_warnings()
reload(sys)
sys.setdefaultencoding('utf-8')
def GetToken(Corpid,Secret):
Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
Data = {
"corpid":Corpid,
"corpsecret":Secret
}
r = requests.get(url=Url,params=Data,verify=False)
Token = r.json()['access_token']
return Token
def SendMessage(Token,User,Agentid,Subject,Content):
Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
Data = {
"touser": User, # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
#"totag": Tagid, # 企业号中的部门id,群发时使用。
"msgtype": "text", # 消息类型。
"agentid": Agentid, # 企业号中的应用id。
"text": {
"content": Subject + '\n' + Content
},
"safe": "0"
}
r = requests.post(url=Url,data=json.dumps(Data),verify=False)
return r.text
if __name__ == '__main__':
User = sys.argv[1] # zabbix传过来的第一个参数
Subject = sys.argv[2] # zabbix传过来的第二个参数
Content = sys.argv[3] # zabbix传过来的第三个参数
Corpid = "xxxxxxx" # CorpID是企业号的标识
Secret = "xxxxxxx" # Secret是管理组凭证密钥
#Tagid = "1" # 通讯录标签ID
Agentid = "xxxxxxx" # 应用ID
Token = GetToken(Corpid, Secret)
Status = SendMessage(Token,User,Agentid,Subject,Content)
print Status
图0
image.png图1
image.png图2
image.png图3
image.png图4
image.png图5
image.png图6-1
image.png图6-2
image.png图7
image.png图8
image.png图9
image.png图10
image.png图11
image.png图12
image.png图13:手动关闭redis
image.png图14:手动开启redis
image.png图15:微信信息
image.png图像展示
图1
image.png图2
image.png图3
image.png图4
image.png图5
image.png图6
image.png图7
image.png图8
image.png图9
image.png图10-1
image.png图10-2
image.png图10-3
image.png图10-4
image.png图10-5
image.png图10-6:再创建一个screen
image.png图10-7
image.png图10-8
image.png图10-9
image.png图10-10
image.png创建模板
自定义模板--自己的特殊功能使用
别人定义好的模板--网络搜
添加node2为zabbix agent
1-1
1-2
1-3
1-4
1-5
1-6
1-7
1-8
1-9
1-10
1-11
宏
宏类似变量,代替字符串的内容
内键的宏
https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
全局/模板/主机--宏
3个地方都有宏,最高级别是主机--使用范围越小,使用可能性最高(参考文档)
node2 开启redis服务
yum -y install redis
vim /etc/redis.conf
bind 0.0.0.0
systemctl start redis; ss -ntl 6379端口
1-1
1-2
1-3
1-4
1-5
全局级别定义宏
1-61-7
1-8
1-9
模板级别定义宏
1-101-11
1-12把0变为down
1-13把0变为down
1-14把0变为down
1-15把0变为down
主机级别定义宏
1-161-17
1-18关闭redis服务
自动发现
node4
zabbix_get -h
zabbix_get -s 192.168.1.7 -p 10050 -k "agent.hostname"
zabbix_get -s 192.168.1.7 -p 10050 -k "agent.ping" 在线就回应为1
对方回应,即可对其进行监控
发现操作--zabbix初创时使用,如果已经设置好了,在添加新的主机,自己手动添加就行;
避免网络发现占用带宽资源,因此初创zabbix后,就把网络发现功能关闭最佳;
1
2
定义发现规则
添加发现规则
发现规则添加成功
定义发现主机后的操作
Action的条件
Action的条件触发后的操作
完成的状态
已经发现
添加成功
监控--仪表盘OK
禁用启用
自定义key
node1
free |awk '/^Mem/{print$3}'
which free 查看全路径;命令不在path变量里,使用全路径(最好都使用)
vim /etc/zabbix/zabbix_agentd.d/memory.conf
UserParameter=mem.used,/usr/bin/free -m|awk '/^Mem/{print$3}'
systemctl restart zabbix-agent.service ; ss -ntl
node4
zabbix_get -s 192.168.1.7 -p 10050 -k "mem.used" 有返回值,自定义ok
node1
vim /etc/zabbix/zabbix_agentd.d/test.conf
UserParameter=file.cat[*],cat $1
[*]就表示传递参数$1
systemctl restart zabbix-agent.service
node4
zabbix_get -s 192.168.1.7 -p 10050 -k "file.cat[/etc/passwd]"
node1
cat /proc/meminfo |awk '/^MemFree/{print $2}'
vim /etc/zabbix/zabbix_agentd.d/mem.conf
UserParameter=Memusage[*],cat /proc/meminfo |awk '/^$1/{print $$2}'
或者UserParameter=mem.stats[*],cat /proc/meminfo |awk '/^$1/{print $$2}'
Key为Memusage,且能接收一个参数
由于$1/$2等要用于UserParameter的参数调用,awk中的$2之前要多用一个$符;
在server端使用zabbix_get命令测试时,其调用的key可以为Memusage[MemFree],Memusage[MemTotal]等;
systemctl restart zabbix-agent.service
node4
zabbix_get -s 192.168.1.7 -p 10050 -k "Memusage[MemFree]"
或者zabbix_get -s 192.168.1.7 -p 10050 -k "mem.stats[MemFree]"
node1
次数--状态--IP+port
ss -an |awk '/^tcp/{print $2,$5}'|awk '/^T/{print $1,$2}'|uniq -c TIME-WAIT
ss -tan |awk '/^T/{print $1,$4,$5}'|uniq -c
ss -an |awk '/^tcp/{print $2,$5}'|awk '/^E/{print $1,$2}'|uniq -c ESTAB
ss -tan |awk '/^E/{print $1,$4,$5}'|uniq -c
ss -an |awk '/^tcp/{print $2,$5}'|awk '/^L/{print $1,$2}'|uniq -c LISTEN
ss -tan |awk '/^L/{print $1,$4,$5}'|uniq -c
ss -an |grep "^tcp.*ESTAB"|wc -l TCP连接的数量
ss -tan |grep "ESTAB"|wc -l
ss -tan |grep "LISTEN"|wc -l
vim /etc/zabbix/zabbix_agentd.d/tcp_connections.conf
UserParameter=tcp.stats[*],ss -tan |grep "$1"|wc -l
systemctl restart zabbix-agent.service
node2
zabbix_get -s 192.168.1.7 -p 10050 -k "tcp.stats[ESTAB]"
zabbix_get -s 192.168.1.7 -p 10050 -k "tcp.stats[LISTEN]"
将来可能需要使用puppet/ansible把被监控主机的parameter推送至各个监控主机上去
node1上自定义item
设置item
设置ok
Graph node1上自定义item--tcp
tcp-estab设置
克隆estab:tcp-listen设置
数据显示
定义node1的Graph
tcp连接
preview--可以预览再Add
web监控
node1
yum -y install nginx
systemctl restart nginx
web监控--内建key:
web.test.in[Scenario,Step,bps]:传输速率
web.test.time[Scenario,Step]:响应时间
web.test.rspcode[Scenario,Step]:响应码
点击web
创建web场景
定义web scenarios
定义steps
添加完成
监控web
监控--仪表盘
手动关闭nginx
监控--仪表盘
手动开启nginx
查看图形
内键key
主动/被动监控
node1
zabbix_sender -h
自定义key,显示无数据时,使用命令测试
zabbix_sender -z 192.168.1.6 -p 10051 -s node1.fgq.com -k "test.key" -o 110
zabbix_sender -z 192.168.1.6 -p 10051 -s node1.fgq.com -k "test.key" -o 120
zabbix_sender -z 192.168.1.6 -p 10051 -s node1.fgq.com -k "test.key" -o 200
zabbix_sender -z 192.168.1.6 -p 10051 -s node1.fgq.com -k "test.key" -o 404
zabbix_sender -z 192.168.1.6 -p 10051 -s node1.fgq.com -k "test.key" -o 505
创建item
定义item
处理数据
显示数据
graph显示
再创建item--自定义key
自定义key的设定
设定成功
无数据
node1上使用命令行测试
命令行测试--graph展示
SNMP监控--了解(不操作)
yum info net-snmp
yum -y install net-snmp net-snmp-utils
vim /etc/snmp/snmpd.conf
systemctl start snmpd; ss -ntl 161端口监听
zabbix图形界面:
node1主机添加接口--SNMP interface:192.168.1.7 port:161
命令行测试
snmpwalk -v 2c -c public 192.168.1.7 测试ok,密码即public
zabbix图形界面:
node1主机创建item:
Type: SNMPV2 agent
Key: snmp.interface(不与已有key冲突即可)--标识符而已
SNMP OID: 命令行测试信息--挑选出来所需信息写在此处即可
获取更多数据--需要开放更多子树
vim /etc/snmp/snmpd.conf
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.2 添加--该子树上的数据都可以获取
JMX监控
node2--agent
yum -y install tomcat-webapps.noarch tomcat-admin-webapps.noarch java-1.8.0-openjdk-devel
vim /etc/sysconfig/tomcat
使用JAVA_OPTS或者CATALINA_OPTS都行,添加下面信息:
CATALINA_OPTS="-Djava.rmi.server.hostname=192.168.1.8 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
分析:
hostname=192.168.1.8 tomcat主机的IP
12345 zabbix-jmx端口
.ssl=false 不认证
.authenticate=false 不认证
systemctl start tomcat; ss -ntl 12345/8080/8005/8009端口
node4--server
yum -y install zabbix-java-gateway.x86_64
rpm -ql zabbix-java-gateway
vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5
systemctl start zabbix-java-gateway.service
vim /etc/zabbix/zabbix_server.conf
JavaGateway=192.168.1.6
JavaGatewayPort=10052
StartJavaPollers=5 开启5个子进程来pull数据
systemctl restart zabbix-server.service; ss -ntl 10052端口
选择node2主机
添加JMX接口
链接内键templates
ZBX/JMX对应关系
查看数据信息
选择compilation
Zabbix Proxy的配置
node4 zabbix server -- node2 zabbix agent
node4 zabbix server -- node3 zabbix proxy -- node1 zabbix agent
node3从node4同步配置,node3发送收集的监控信息给node4
node3
yum -y install mariadb-server
vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = on
innodb_file_per_table = on
systemctl start mariadb.service ; ss -ntl 3306端口
yum -y install zabbix-proxy-mysql.x86_64 zabbix-get.x86_64 zabbix-sender zabbix-agent
rpm -ql zabbix-proxy-mysql
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.1.6
Hostname=node3.fgq.com
DBHost=127.0.0.1 使用本地主机存储收集到的数据
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zbxpass
DBSocket=/var/lib/mysql/mysql.sock
ConfigFrequency=10 配置同步时间快一点,默认1h,此处10s,看效果
cp /usr/share/doc/zabbix-proxy-mysql-4.0.0/schema.sql.gz ./
gzip -d schema.sql.gz
mysql
create database zabbix_proxy character set "utf8";
grant all on zabbix_proxy.* to 'zabbix'@'127.0.0.1' identified by 'zbxpass';
flush privileges;
quit
mysql -uzabbix -h127.0.0.1 -pzbxpass zabbix_proxy < schema.sql
mysql
use zabbix_proxy
show tables;
quit
systemctl start zabbix-proxy.service ;ss -ntl 10051端口
systemctl status zabbix-proxy.service
node1
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.6,192.168.1.5
ServerActive=192.168.1.6,192.168.1.5
支持代理服务--node3代理node1
systemctl restart zabbix-agent.service
仅保留node2主机
创建proxy
定义proxy
创建主机
定义node1
定义templates
代理添加完成
数据同步,需要时间,要等一会才会显示出数据
Graph显示
puppet/ansible配置好zabbix agent,确保可以启动服务;
zabbix server端打开discover功能
发现--添加--映射模板
配置Action
报警脚本
采集--存储--展示
zabbix+grafana
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm
yum install grafana-5.1.3-1.x86_64.rpm
systemctl enable grafana-server.service
systemctl start grafana-server.service; ss -ntl 3000端口
安装plugins
grafana-cli plugins list-remote
grafana-cli plugins install alexanderzobnin-zabbix-app
systemctl restart grafana-server.service
浏览器:192.168.1.6:3000
默认账号:admin 密码:admin
登陆界面
点击zabbix
启用
数据库资源设置
增加资源
设置
显示ok
导入自带的模板
图形展示
图形编辑
自己选择吧