zabbix:
Version:
LTS:Long Time Support(下载LTS版本,本例为zabbix3.4)
zabbix程序组件:
zabbix_server:服务端守护进程
zabbix_agent:agent守护进程
zabbix_proxy:代理服务器,可选(分布式监控)
zabbix_database:存储系统,Mysql/PGSQL
zabbix_web:WEB GUI
zabbix_get:命令行工具,测试向agent端发起数据采集请求
zabbix_sender:命令行工具,测试向server端发送数据
zabbix_java_gateway:java网关(JMX Java Management eXtension)
zabbix逻辑组件:(或者称为zabbix术语)
主机组(host groups)
主机(hosts)
应用(applications)
监控项(items)
触发器(triggers)
事件(events)
动作(action):条件(conditions)和操作(operations)
媒介(media):发送通知的通道
通知(notifications)
远程命令(remote command)
报警升级(escalation)
模板(templates)
图形(graph)
屏幕(screens)
幻灯(slide show)
zabbix安装配置:
zabbix server安装配置:
1.安装mariadb数据库:
创建zabbix数据库并创建授权用户:
CREATE DATABASE zabbix CHARSET 'UTF8';
创建本地和远程授权用户:
GARANT ALL ON zabbix.* TO 'zbxuser'@'192.168.1.%' identified by 'zbxpass';
GRANT ALL ON zabbix.* TO 'zbxuser'@'localhost' IDENTIFIED BY 'zaxpass';
FLUSH PRIVILEGES;
2.安装server端:
上传对应的软件包到server端,设置本地yum源
此处安装的zabbix版本为3.4.8-1(注:server端安装agent方便监控本机,未安装zabbix-get)
yum -y install zabbix-server-mysql zabbix-server-web zabbix-agent
rpm -ql zabbix-server-mysql #需要用的的文件有下面三个
/etc/zabbix/zabbix_server.conf #配置文件
/usr/lib/systemd/system/zabbix-server.service #服务文件
/usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz #数据库脚本,zabbix3.0的脚本只有一个
导入数据库脚本:
解压脚本文件:
gzip -d /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz
导入脚本文件:
mysql -uzbxuser -pzbxpass zabbix < /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql
3.zabbix server配置启动:
备份配置文件:
cp zabbix_server.conf zabbix_server.conf.bak
配置段:
grep "^######" /etc/zabbix/zabbix_server.conf
############ GENERAL PARAMETERS ################# # 全局(通用)配置
############ ADVANCED PARAMETERS ################ # 高级配置
####### LOADABLE MODULES ####### # 可装载模块
####### TLS-RELATED PARAMETERS ####### # ssl加密
通用配置项:
ListenPort=10051 # 默认端口10051
SourceIP= # 如果服务器只有一个IP不需要设定,若有多个,填写对客户端授权认证的IP
LogType=file # 日志格式
LogFile=/var/log/zabbix/zabbix_server.log # 服务端日志文件位置
LogFileSize=0 # 是否一直使用/var/log/zabbix/zabbix_server.log记录日志,0表示一直使用
DebugLevel=3 # 日志等级
PidFile=/var/run/zabbix/zabbix_server.pid # zabbix server进程文件
DBHost=localhost # 数据库IP
DBName=zabbix # 数据库名称
DBUser=zabbix # 连接数据库用户
DBPassword= # 密码
DBSocket=/tmp/mysql.sock # 数据库socket文件
DBPort=3306 # 数据库端口
服务启动:
查看trousers包的版本是否大于0.3.12,如果不大于,可能无法启动,需要升级trousers
4.zabbix web配置:
(1)解决依赖:
yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml -y
(2)安装Web GUI:
yum install zabbix-web zabbix-web-mysql -y
(3)配置php时区参数:
vim /etc/httpd/conf.d/zabbix.conf
改:php_value date.timezone Europe/Riga
为:php_value date.timezone Asia/Shanghai # 修改时区为亚洲/上海
(4)启动web服务:
systemctl start httpd
(5)访问zabbix web:
http://localhost/zabbix
安装完的配置文件:/etc/zabbix/web/zabbix.conf.php
登录的管理员:
用户名:admin
密码:zabbix
(6)菜单:
Monitoring
Inventory
Reports
Configuration
Administration
5.zabbix agent配置:
(1)安装:
yum install zabbix-agent zabbix-sender -y
rpm -ql zabbix-agent
/etc/zabbix/zabbix_agentd.conf # 配置文件
/usr/lib/systemd/system/zabbix-agent.service # 服务文件
(2)配置:
grep -i "^#####" /etc/zabbix/zabbix_agentd.conf
############ GENERAL PARAMETERS #################
##### Passive checks related # 被动模式:即客户端为被动,服务器端为主动
##### Active checks related # 主动模式,反之
############ ADVANCED PARAMETERS #################
####### USER-DEFINED MONITORED PARAMETERS ####### # 用户自定义的监控参数,UserParameter
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######
Passive checks related
Server=IP1,IP2..... # 此处的IP为允许进行数据采集请求的SERVER-IP
ListenPort=10050
ListenIP=0.0.0.0 # 监听所有IP
StartAgent=3 # 设置pre-forked(预生成子进程)的数量为3
Active checks related
ServerActive=IP1,IP2.... # 服务器的IP
Hostname=HOST-ID # 客户端的主机名
(3)启动服务:
systemctl start zabbix-agent.service
配置监控:
快速配置一个监控项:
host groups --> host --> applications --> item --> triggers(events) --> action(conditions,operations)
operations:remote command(远程命令),alert(报警)
item --> simple graph # 一个监控项默认有一个简单图形
items --> graph # 多个监控项可以放在一个图像当中
graphs --> screen # 多个图像可以组成一个屏幕
screens --> slide show # 多个屏幕又可以组成一个幻灯
item key:简单来说就是server端向agent端发送查询请求所执行的唯一命令
key与之对应的唯一命令
item(监控项):
作用:仅负责收集数据
分为两类:
zabbix内建:
用户自定义(UserParameter):
采集到的数据:
数值:
整数,浮点数
字符型:
字符串,text,log
trigger(触发器):
作用:用于为监控项所收集的数据定义阈值,由表达式构成
if item > 阈值 则为TRUE即PROBLEM,反之则为FALSE即OK
基本触发器的表达格式如下:
{<server>:<key>.<function>(parameter)}<operation><constant>
server: 主机名称
key: 即item key,主机上关系的响应监控项的key
function: 评估采集到的数据是否在合理的区间内所使用的函数,可支持avg,count,max,change,date,delta,diff,last,min,sum,now等
parameter: 函数参数,多数函数可接受秒作为参数,如果在参数前面加上了#则表示为最近几次的取值:
例如:sum(10)表示10秒之内所有取值之和,而sum(#10)则表示最近十次的取值之和
此外,avg,count,last,max和min还支持使用第二个参数用于时间限定
例如:max(1h,7d)将返回一周前的最大值
operation: 运算符有/,*,-,+,<,>,#(不相等),=,&(逻辑与),|(逻辑或)
constant: 常量,即阈值
触发器间的依赖关系:
主机依赖于网络设备
服务依赖于主机
注意:一个trigger仅能关联一个item,但是可以为一个item使用多个trigger以实现不同级别的报警即报警升级
Media Types(媒介类型):
定义:报警信息的传递方式
类型:
Email:邮件,需要定义发件人邮箱地址和SMTP服务器
Script:自定义脚本,此脚本有发送信息至相关用户的功能
SMS,jabber...:只有北美才能使用,一般不用
Action(动作):
condition:触发次动作的条件,一般是通过"事件触发"
operation:触发条件满足时需要采取的动作
send message:
功能:发送报警信息给关联的用户
信道:
邮件
脚本
remote command:
功能:在agent所在的主机上运行用户指定的命令或者脚本来尝试恢复故障
例如:
重启服务或者运行由用户自定义的脚本
类型:
IPMI,Custom Script,SSH,TELNEL,Global Script
Custom Script实现的前提:
在agent端配置:
(1)zabbix拥有执行相应脚本的权限
编辑/etc/sudoers文件,添加:
zabbix ALL=(ALL) NOPASSWD:ALL
注释如下行:
Defaults requiretty
(2)agent进程要允许执行远程命令,编辑/etc/zabbix/zabbix_agentd.conf文件,设置:
EnableRemoteCommands=1
(3)重启服务生效:
systemctl restart zabbix-agent.service
MACRO(宏):
定义:预设的文本替换模式
级别:
全局宏:Administration --> General --> Macros
模板宏:Configuration --> Templates --> TEMPLATE --> Macros
主机宏:Configuration --> Hosts --> Host --> Macros
类型:
内建:{MACRO_NAME}
自定义:{$MACRO_NAME}
命名方式:大写字母,数字和下划线
网络发现(Network Discovery):
定义:zabbix server扫描指定网络范围内的主机
发现方式:
IP地址范围
可用服务探测(ssh,ftp,http.....)
zabbix_agentd响应对某个key的请求
snmp_agent响应
一旦发现某主机,就会产生发现事件:
事件一共有8类:
Host,Service
Up/Down,Discovered/Lost
发现操作分两步:
discover:
actions:add host,link to template.....
未完待续..............