无监控,不运维。好了,废话不多说,下面都是干货。
警告:流量党勿入,图片太多!!!
项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html
③ vim /etc/hosts 每个机器都设置hosts,以解析主机名;DNS也行
192.168.30.107 server.along.com 192.168.30.7 node1.along.com 192.168.30.2 node2.along.com 192.168.30.3 node3.along.com zbproxy.along.com
实战一:zabbix的搭建与部署
1、下载安装
① 去官网,下载自己需要的版本https://www.zabbix.com/download
zabbix-agent-3.4.4-2.el7.x86_64.rpm 监控(安装在被监控者,当然监控自己也需要监控)
zabbix-get-3.4.4-2.el7.x86_64.rpm 在server端,手工连接agent 获取数据的,做测试的
zabbix-java-gateway-3.4.4-2.el7.x86_64.rpm 基于JAM监控时使用的
zabbix-proxy-mysql-3.4.4-2.el7.x86_64.rpm
zabbix-proxy-pgsql-3.4.4-2.el7.x86_64.rpm
zabbix-proxy-sqlite3-3.4.4-2.el7.x86_64.rpm
zabbix-sender-3.4.4-2.el7.x86_64.rpm 安装在agent端,主动监控模式下,向server端发送测试数据使用的
server 取决自己的存储系统选mysql 或 pgsql:
zabbix-server-mysql-3.4.4-2.el7.x86_64.rpm
zabbix-server-pgsql-3.4.4-2.el7.x86_64.rpm
zabbix-web-3.4.4-2.el7.noarch.rpm web部位,核心包
zabbix-web-japanese-3.4.4-2.el7.noarch.rpm 专用日语的web部位
zabbix-web-mysql-3.4.4-2.el7.noarch.rpm
zabbix-web-pgsql-3.4.4-2.el7.noarch.rpm
zabbix-release-3.4-2.el7.noarch.rpm zabbix下载的源
① 安装官方的源
zabbix-release-3.4-2.el7.noarch.rpm 直接下载源
rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm
yum repolist 可以查看自己的仓库有zabbix源了
② 安装
yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql
2、初始化数据库
(1)vim /etc/my.cnf.d/server.cnf 子配置文件
[server] skip_name_resolve = on innodb_file_per_table = on innodb_buffer_pool_size = 256M #buffer缓存大小 max_connections = 2000 #最大连接数 log-bin = master-log #二进制日志
(2)建数据库,授权,刷新权限
MariaDB [(none)]> create database zbxdb character set 'utf8'; MariaDB [(none)]> grant all on zbxdb.* to zbxuser@'192.168.30.%' identified by 'zbxpass'; MariaDB [(none)]> flush privileges;
rpm -ql zabbix-server-mysql 下包的时候,带有数据库文件的解压包
cp /usr/share/doc/zabbix-server-mysql-3.4.4/create.sql.gz ./ 考到root下,解压
mysql -uroot -p zbxdb < create.sql 导入数据
3、配置,开启zabbix-server
cp zabbix_server.conf{,.bak} 先备份,养成好习惯
grep -i "^####" zabbix_server.conf 查看有几个配置段
GENERAL PARAMETERS 一般性配置
ADVANCED PARAMETERS 高级配置
LOADABLE MODULES 可加载模块
TLS-RELATED PARAMETERS 配置加密的东西,如私钥证书等
grep -i "^###" zabbix_server.conf 可以查看一下需要配置的选项
ListenPort=10051 默认端口10051 SourceIP= 发采用数据请求的端口,可以加多个地址,需要的话自己设置
② 数据库的配置 DBHost=192.168.30.107 数据库对外的地址 DBName=zbxdb 数据库中库的名字 DBUser=zbxuser 数据库授权的用户 DBPassword=zbxpass 密码 DBPort=3306 数据库服务端口
systemctl start zabbix-server.service
4、设置zabbix的web 服务
vim zabbix.conf 额外为php5 设置了一些参数
# php_value date.timezone Europe/Riga php的时区必须设置,不过有两处可以设置,在php的配置文件中设置,或在这里设置;在这里设置,只对zabbix有效
vim /etc/php.ini 在php的配置文件中设置,代表对所有使用php的都生效,我就在这里设置了
5、在web 页面初始化设置
① web登录 http://192.168.30.107/zabbix
Zabbix server is running |
Yes |
192.168.30.107:10051 |
① Number of hosts (enabled/disabled/templates) |
39 |
0 / 1 / 38 |
② Number of items (enabled/disabled/not supported) |
0 |
0 / 0 / 0 |
③ Number of triggers (enabled/disabled [problem/ok]) |
0 |
0 / 0 [0 / 0] |
④ Number of users (online) |
2 |
2 |
⑤ Required server performance, new values per second |
0 |
① 监控主机:已经启用被监控的主机数量,已经配置好缺被禁止主机数,自带模板数
④ 当前zabbix有几个用户:现在是一个是来宾,一个是管理员
⑤ 重点关注的nvps 每秒的新值(根据我们定义的监控项,每秒采集过来多少新数据,平均值):
(1)如果英语不好,可以切换为中文,但推荐使用英文,为了更好的讲解,博主使用中文示范
6、被监控node zabbix的安装配置
yum -y install zabbix-agent zabbix-sender 只需安装这两个包就行
① grep -i "^####" zabbix_agentd.conf 先查看一下配置段
GENERAL PARAMETERS 一般配置,有两个子配置段
Passive checks related 被动接口
Active checks related 主动接口
USER-DEFINED MONITORED PARAMETERS 用户自定义的监控参数(必要,高级的特性)
LOADABLE MODULES
TLS-RELATED PARAMETERS
② grep -i "^###" zabbix_agentd.conf 查看选项
① EnableRemoteCommands=0 是否允许执行远程命令,默认是不允许的,有安全风险
② 指定服务器主机,可以指定多个 Server=192.168.30.107 ③ 自己的今天IP和端口 ListenPort=10050 自己的监听端口 ListenIP=0.0.0.0 允许监听在本机的地址,0.0.0.0 是监听所有 ④ agent个数,被监控项有很多时,可以多写几个 StartAgents=3 默认3个,优化时使用 ⑤ 主动监控的机器地址是谁 StartAgents=192.168.30.107 ⑥ 能被server段解析的主机名,写IP也行 Hostname=node1.along.com 下边都是默认值就好
systemctl start zabbix-agent.service
7、node1加入到监控中
创建一个属于mysrvs 主机组的node1.along.com 主机,若接口写主机,要开启DNS解析
8、对node1主机设置
创建3个 CPU Utils 、Memory Stats、Network Interface Stats 的应用集
设置名为 rate of interrupt 的监控项 items
① key键值:內建key 、自定义key;对应的是命令;服务器自动执行key,就相当于采集数据
每一个key 都对应,能在客户端/agent端,执行的命令;该命令能帮我们取回关系型数据
在命令行 zabbix_get -s 192.168.30.7 -p 10050 -k "system.cpu.intr"
对于非关键型指标,不要太频繁,使服务器压力很大;推荐5分钟,或以上
实战二:zabbix 基础操作
1、设置items监控项,采集信息
(1)对node1 添加名为rate of packets(in) 入站包的个数 的items监控项
① key 值选的是: net.if.in[if,<mode>]网络接口上传流量统计;可以加参数
① 设置rate of packets(out) 出站包的个数,因为和in 很相似,可以克隆再设置
2、设置trigger 触发器
① 界定某特定的item采集到的数据的非合理区间或非合理状态:逻辑表达式
OK:正常 状态 --> 不满足阈值(不合理区间)为OK
PROBLEM:非正常状态 --> 满足阈值
nodata():没有数据
last():最近几次的平均值
date()
time()
now()
dayofmonth()
...
注意:常用nodata()、last();能用数值采集的结果保存,就不要用字符串;计算机处理数值要快的多
3、设置触发器的依赖关系
例如,当某网关主机不可用时,其背后的所有主机都将无法正常访问
如果所有主机都配置了触发器并定义了相关的通知功能,相关人员将会接收到许多告警信息,这既不利于快速定位问题,也会浪费资源
正确定义的触发器依赖关系可以避免类似情况的发生,它将使用通知机制仅发送最根本问题相关的告警
② 注意:目前zabbix 不能够直接定义主机间的依赖关系,其依赖关系仅能通过触发器来定义
4、设置Media 媒介
Media:媒介,告警信息的传递通道;任何用户收到报警信息,都需要有媒介的端口
类型:下面3个中国都没实现,中国可以实现微信,需要特殊插件
Email:邮件
Script:自定义脚本,每一个script都是一个媒介
SMS:短信,只适用于北美地区
Jabber:
Ez Texting:
接收信息的目标为zabbix用户:
需要用户上定义对应各种媒介通道的接收方式;
(2)定义一个media ,可以在email 模板上直接修改
5、设置Actions 动作
yum -y install redis 下载一个redis 服务做实验
② 因为要执行动作时需远程操作,给admin 用户设置sudo权限
zabbix ALL=(ALL) NOPASSWD: ALL 允许zabbix用户能在所有主机,以所有人的身份执行所有命令
Defaults !visiblepw 默认所有命令要依靠tty执行,先注释掉
b) vim zabbix_agentd.conf 设置agent允许执行远程命令
EnableRemoteCommands=1 允许执行远程命令
LogRemoteCommands=1 把远程执行的命令记录在日志中
systemctl restart zabbix-agent.service 重启zabbix-agent服务
net.tcp.listen[port] 监听本地listen:检查 TCP端口是否处于侦听状态,返回 0 - 未侦听;1 - 正在侦听
net.tcp.port[<ip>,port]:server远程扫描redis服务:检查是否能建立 TCP 连接到指定端口,返回 0 - 不能连接;1 - 可以连接
net.tcp.service[service,<ip>,<port>] 直接指定服务:检查服务是否运行并接受 TCP 连接,返回 0 - 服务关闭;1 - 服务运行
6、测试动作
② 执行动作,10s,第一个action 1 执行成功,problem问题解决
因为第一个action1 执行成功,所以action 2没有执行
③ 恢复操作执行了,zabbix server 收到了mail "Resolved"
systemctl stop redis && rpm -e redis 停止服务,且删除redis
实战三、展示接口的实现
1、Graphs 图形的设置
设置一个名为interface traffic packets 的图形
工作时间:白色
非工作时间:黑色
① interface traffic bytes 加入2个监控项
2、定义Screens 聚合图形
3、把graphs 图形加入到screens 屏幕中
4、多个screens可以做成幻灯片
5、Maps 拓扑图
Local network 自带的maps 拓扑图;用处不是想象中那么大,就不讲了
实战四、Templates 模板和macro 宏
1、Templates 模板
主机配置模板:用于链接至目标主机实现快速监控管理;
link, unlink, unlink and clear
模板可继承;
主机link多个模板必须注意,模板们不能含有相同的item key。trigger和graphs中使用的items不能是来自多个模板。
③ complete 模板,应用集application、监控项items、触发器triggers、图形graphs、屏幕screens、自动发现discover rules、web检测web scenarios。
模板complete 的一系列添加设置,和主机host 几乎一模一样,但是不会直接生效、采集数据;只有链接至主机才能生效、采集数据
区别:主机接口;complete 没有;host 有
(4)不想在host主机中使用模板,可以取消链接 或 取消并清除
如果有很多属于同一组内的主机host,想快速基于某模板监控,组group添加模板
2、宏:macro,预设的文本替换模式
全局:Administration --> General --> Macros ,对所有主机、所有模板都有效,优先级很低
模板:编辑模板 --> Macros ,对所有链接至此模板的主机都有效
主机:编辑主机 --> Macros ,仅对单个主机有效
内建宏:调用 {MACRO_NAME}
自定义:{$MACRO_NAME} ;命名方式:大写字母、数字和下划线
https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
注意:宏的优先级:host 主机宏 > complete 模板宏 > 全局宏
下篇zabbix 操作进阶更精彩~~~