Zabbix3.4从入门到精通

2020-01-14 09:31:48来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Zabbix3.4从入门到精通

zabbix-基础

第1章 关于zabbix

1.1 为什么要使用监控

1.对系统不间断实时监控
2.实时反馈系统当前状态
3.保证服务可靠性安全性
4.保证业务持续稳定运行

1.2 如何进行监控

比如我们需要监控磁盘的使用率
1.如何查看磁盘使用率df -h
2.监控磁盘的那些指标block、inode
3.如何获取具体的信息df -h|awk'//$/{print $(NF-1)}'
4.获取的数值到达多少报警 80%

1.3 流行的监控工具

1.cacti、Nagios、Zabbix、
2.Lepus(天兔)数据库监控系统
3.Open-Falcon 小米
4.Prometheus(普罗米修斯,Docker、K8s)

1.4 到一家新公司,如何入手监控

1.硬件监控 路由器、交换机、防火墙
2.系统监控 CPU、内存、磁盘、网络、进程、TCP
3.服务监控 nginx、php、tomcat、redis、memcache、mysql
4.WEB监控 请求时间、响应时间、加载时间、
5.日志监控 ELk(收集、存储、分析、展示)日志易
6.安全监控 Firewalld、WAF(Nginx+lua)、安全宝、牛盾云、安全狗
7.网络监控 smokeping 多机房
8.业务监控

第2章 zabbix部署

2.1 基础环境划分

主机名 IP地址 功能
zabbix 172.16.1.71 zabbix服务端
web01 172.16.1.7 zabbix客户端 nginx
web02 172.16.1.8 zabbix客户端 nginx
db01 172.16.1.51 数据库

2.2 安装zabbix

Zabbix-Server,是一个C/S和B/S结构
1.安装Zabbix-server

[root@zabbix ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix ~]# yum install -yzabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

2.创建Zabbix数据库以及用户
#启动数据库,加入开机自启

[root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# systemctl start mariadb

创建数据库并授权

[root@zabbix ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbixcharacter set utf8 collate utf8_bin;?? 
MariaDB [(none)]> grant all privileges on zabbix.*to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit

3.导入基础架构和数据

[root@zabbix ~]# cd/usr/share/doc/zabbix-server-mysql-3.4.14/
进入这个目录可能不报错 目录不存在 大多是因为版本不同 导致目录名称改变
[root@zabbix zabbix-server-mysql-3.4.14]# ll
total 2112
-rw-r--r-- 1 root root????? 98 Sep 14 04:04 AUTHORS
-rw-r--r-- 1 root root? 857849 Sep 14 04:04 ChangeLog
-rw-r--r-- 1 root root?? 17990 Sep 14 04:04 COPYING
-rw-r--r-- 1 root root 1267039 Sep 14 04:09create.sql.gz
-rw-r--r-- 1 root root????? 52 Sep 14 04:04 NEWS
-rw-r--r-- 1 root root???? 188 Sep 14 04:04 README
[root@zabbix zabbix-server-mysql-3.4.14]#? zcat create.sql.gz |mysql -uroot zabbix
[root@zabbix zabbix-server-mysql-3.4.14]# mysql-uroot -p??? 进入数据库确认一下是否导入成功
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
140 rows in set (0.00 sec)? #因内容过多此处只粘贴总数

4.启动Zabbix Server进程,在zabbix_server.conf中编辑数据库配置

[root@m01 ~]# vi/etc/zabbix/zabbix_server.conf? #以下四处需要更改
以下四处大部分起初都被注释 应该把注释取消 ?以下是需要修改的内容所在行 
DBHost=localhost???????????????????????? #91行
DBName=zabbix??????????????????????????? #101行
DBUser=zabbix??????????????????????????? #117行
DBPassword=zabbix??????????????????????? #126行
# 启动ZabbixServer进程
[root@zabbix ~]# systemctl enable zabbix-server
[root@zabbix ~]# systemctl start zabbix-server

5.编辑Zabbix前端的PHP配置,Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf。一些PHP设置已经完成了配置。

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Asia/Shanghai???????????? ?#20行
依据所在时区,取消 “date.timezone” 设置的注释,并正确配置(Asia/Shanghai)。在配置文件更改后,需要重启ApacheWeb服务器。

6.启动httpd服务

[root@zabbix ~]#systemctl enable httpd
[root@zabbix ~]#systemctl start httpd

2.3 网页配置zabbix-web界面

配置完以上内容后 网页输入10.0.0.71/zabbix进入zabbix安装界面、
欢迎界面, 直接下一步即可

检查依赖项是否不存在任何异常

配置zabbixWeb连接数据库(如果直接选用远程数据库 可以在此处修改)

配置ZabbixServer服务器的主机名或主机IP地址和端口号, 以及安装的名称(可选)

安装前摘要,检查配置参数。如果一切都正确,请按"下一步"按钮或"后退"按钮来更改配置参数。

提示已成功地安装了Zabbix前端。配置文件/etc/zabbix/web/zabbix.conf.php被创建。

至此Zabbix已经安装完毕
默认登陆ZabbixWeb的用户名Admin,密码zabbix

第3章 zabbix-web界面优化

3.1 修改为中文字体



点击update后即为中文字体
(修改为中文字体后可能有些界面会产生乱码 我们还应该修改下字符集,防止产生乱码)

3.2 调整字符集

1.先搜索zabbix-web包对应字符存放的目录

[root@zabbix ~]# rpm -ql zabbix-web|grep fonts
/usr/share/zabbix/fonts

2.进入对应字体目录,发现字体是一个软链接

[root@zabbix ~]# cd /usr/share/zabbix/fonts/
[root@zabbix fonts]# ll
lrwxrwxrwx 1 root root 33 Oct 11 03:20graphfont.ttf -> /etc/alternatives/zabbix-web-font

3.进入软链接对应的目录,发现还是软链接

[root@zabbix fonts]# cd /etc/alternatives/
[root@zabbix alternatives]# ll
lrwxrwxrwx1 root root 38 Oct 11 03:20 zabbix-web-font ->/usr/share/fonts/dejavu/DejaVuSans.ttf

4.进入最终字体存放的目录

[root@zabbix alternatives]# cd/usr/share/fonts/dejavu/

5.将默认字体进行改名

[root@zabbix-server alternatives]# mvDejaVuSans.ttf DejaVuSans.ttf_bak

6.上传自己准备好的字体,字体可以通过windows电脑获取

(c:\windows\fonts)

7.最后将新上传的字体进行改名

[root@zabbix dejavu]# mv simkai.ttf DejaVuSans.ttf

注意:如果字体是ttc,修改为ttf也行。

3.3 调整web界面窗口位置

该操作可以不执行
为了以后方便我们观察 所以我们修改下 web界面的窗口安排
图片所示是默认的 ?点击编辑仪表盘 便可以拖动各个小窗口

将如下图四栏 往上提即可然后保存
目的是方便日后查看

第4章 监控内容部署

4.1 配置一台主机

1.????? 在客户端安装zabbix-agent

[root@web01 ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm

2.配置修改/etc/zabbix/zabbix_agentd.conf内容

[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.71? #97行 指向Zabbix-Server
Timeout=30?#238行 此处默认是注释3或4 可以取消注释修改成30

3.启动服务并检查

[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent
[root@web01 ~]# netstat -lntp
Active Internet connections (only servers)? 
tcp0????? 0 0.0.0.0:10050?????????? 0.0.0.0:*?????????????? LISTEN????? 981/zabbix_agentd

以上确认配置完成后 进入web界面网页配置
点击创建主机


配置完以上内容后 不要直接点击添加
点击模板->选择连接指示器->选择->搜索Linux->点击小按钮添加->最后添加


Template OS Linux 是必添加的监控
添加完成后 点击主机(如果等几分钟 显示ZBX则为添加成功 没有问题)

4.2 自定义监控TCP

TCP的12种状态

tcp[ESTABLISHED]
tcp[SYN_SENT]
tcp[SYN_RECV]
tcp[FIN_WAIT1]
tcp[FIN_WAIT2]
tcp[TIME_WAIT]
tcp[CLOSE]
tcp[CLOSE_WAIT]
tcp[LAST_ACK]
tcp[LISTEN]
tcp[CLOSING]
tcp[UNKNOWN]

1.在对应的主机上编写自定义监控TCP的11中状态[在本地进行取值,web01]

[root@web01 ~]# vim/etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp[*],netstat -ntal | awk'NR>1{print $NF}'| grep -i "$1" | wc -l

2.在server上使用zabbix_get获取对应主机的值

[root@zabbix ~]# yum install zabbix-get -y
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -ktcp[estab]

确认无误后再添加
网页配置内容
先添加一个模板 在模板里创建监控项这样以后就不用再次创建
因为模板支持导出导入


创建完模板 点击监控项

点击创建监控项

然后开始创建
创建时 名称只是让人看的键值是最关键的 不能更改
添加完一个后 ?就可以使用这个来克隆其他的
需要注意的是 要确保每个键值都正常

克隆完后的 每个都要启用默认创建完就是启用的

添加完成后 我们要把模板加入到web01这台主机上进行监控
按照一开始添加模板 将TCP这个模板加入即可
?

检查是否成功
如果有数据更新即为成功

4.3 自定义监控内存

1.在Agent的/etc/zabbix/zabbix_agentd.d/*.conf自定义监控项, 使用UserParameter=KEY,shell command,目的是便于zabbixServer获取ZabbixAgent对应监控项的数据

[root@web01 zabbix_agentd.d]# vim mem.conf 
UserParameter=Mem.Num,free -m |awk '/^Mem/{print$NF/$2*100}'
UserParameter=Swap.Num,free -m|awk '/^Swap/{print$3/$2*100}'
  1. 使用zabbix_agentd -p | grep KEY,如果获取到值则正常
[root@web01 zabbix_agentd.d]# zabbix_agentd -p|grep-i Mem_Num
Mem_Num[t|38.501]
  1. 在ZabbixServer端测试获取ZabbixAgent端自定义的监控项是否正常zabbix_get -s IP_addr -k KEY
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k Mem.Num
38.7064

然后开始网页配置


将 Swap.Num 和 Mem.Num 都添加上

添加完成后 查看最新数据

配置完成

第5章 配置触发器

5.1 配置单条件触发器

ESTAB超过500就报警



检查是否添加成功

5.2 多条件触发器


内存使用剩余不足百分之30且swap使用超过1%就报警

检查

5.3 登录用户超过两个人就报警


第6章 配置报警

6.1 配置web界面报警



6.2 配置邮件报警

将动作里的触发器的状态设置为已启动(点一下已停止即可)
注意界面右上角 选择为触发器不然显示内容不同

6.2.1 更改报警邮件信息

然后我们点击名称 进入配置界面(更改报警邮件发送的信息)
将默认的信息删除 覆盖掉
故障!!!: {TRIGGER.NAME}
报警主机:{HOST.NAME1}
报警服务: {ITEM.NAME1}
报警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
报警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}

恢复: {TRIGGER.NAME}
恢复主机:{HOST.NAME1}
恢复服务: {ITEM.NAME1}
恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}
恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}
恢复的内容也要修改

6.2.2 修改报警媒介类型

image.png

6.2.3 添加报警媒介


image.png
添加后 点击更新?至此 邮件配置完成

6.3 企业微信报警

1.准备微信报警脚本, 脚本怎么写->脚本放在哪【相当于配置好了发件人】

[root@zabbix ~]# yum install python-pip -y
[root@zabbix ~]# pip install requests
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts

报警脚本内容

[root@zabbix alertscripts]# vim weixin.py 
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信报警脚本
?
import requests
import sys
import os
import json
import logging
?
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信报警脚本
?
import requests
import sys
import os
import json
import logging
?
logging.basicConfig(level = logging.DEBUG, format= '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
?
?
corpid='wwabcf092986138a4f'
appsecret='47r80t2cfYbQfrOs8mRXUx84H44RdFTJ9BMvVaeQUVQ'
agentid=1000002
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='+ corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
?
#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='+ accesstoken
?
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n"+sys.argv[3]
?
params={
"touser": touser,
#"toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
??????? },
"safe":0
}
?
req=requests.post(msgsend_url,data=json.dumps(params))
?
logging.info('sendto:' + touser + ';;subject:' +subject + ';;message:' + message)

给脚本增加执行权限并测试

[root@zabbix alertscripts]# chmod +x weixin.py
[root@zabbix alertscripts]# ./weixin.py? nfsnobodySubject Messages? #测试
[root@zabbix alertscripts]# rm -f /tmp/weixin.log? ?#删除这个文件不然会报错

开始web界面配置

下图需要增加的内容(注意不要有空格 ?不然会报错 很难发现)
{ALERT.SENDTO}#发给谁
{ALERT.SUBJECT}#发送的主题
{ALERT.MESSAGE}#发送的内容???
脚本名称 直接填写脚本的名称即可
但要注意 ?脚本必须放在server端的/usr/lib/zabbix/alertscripts目录下

添加完报警媒介类型后 在报警媒介新增 微信的报警资料 ?(添加完后不要忘记点击更新)
image.png

6.4 配置报警升级

先创建两个用户组


增加报警媒介
image.png
修改用户的权限 只有管理员才能接收信息

点击配置--动作

将已经存在的一项更新一下

然后添加一个新的

添加完成后 点击更新此处只添加了两个用户 ?三个用户 依次往下即可

第7章 快速配置新主机

7.1 配置zabbix本地

server端是zabbix本地服务器 ?配置和其他服务器略有不同
下载zabbix-agent

[root@zabbix ~]# rpm -ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
[root@zabbix ~]# vim/etc/zabbix/zabbix_agentd.conf

Timeout=30? #238行 ?把这个取消注释 改成30即可 ?server端的 agent不需要修改server
要注意的是 server端要使用zabbix-get测试 ?-s 后的地址要写127.0.0.1

[root@zabbix ~]# systemctl enablezabbix-agent.service 
[root@zabbix ~]# systemctl startzabbix-agent.service

网页配置(server端有zabbix配置好的 只需要启用即可)

server端有已经配好的两个模板?只需要把TCP和内存的模板套用即可
(还需要把agent的conf文件从web服务器拉过来)


把agent里的conf配置文件都拉过来

[root@zabbix ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/

重启一下agent服务

[root@zabbix ~]# systemctl restartzabbix-agent.service

7.2 其他agent端

以db01配置为例 ?(其实除server端 其他配置除了IP地址都是一样的)

[root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm

修改agent配置文件 ?server指向的IP地址是必须要修改的

[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf??? #以下是修改后的内容
Server=172.16.1.71??? 
Timeout=30

启动服务并加入开机自启动

[root@db01 ~]# systemctl enablezabbix-agent.service 
[root@db01 ~]# systemctl startzabbix-agent.service

然后进入网页添加

添加模板 ?直接套用 (这就是创建模板的好处之一 ?可以直接套用)

把配置文件拉过来 ?然后重启agent

[root@db01 ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/
[root@db01 ~]# systemctl restartzabbix-agent.service

检查如图两处 可以看出是否有错误?下图已配置完成

第8章 自定义图形配置

8.1 聚合图形配置

聚合图形有助于观察

点击名称 可以进入编辑或查看

点击编辑 增加图片

此处就像是表格 增加行和列?点击更改就可以增加图片

点击图片可以选择图片 ?右上角可以选择群组(群组就是主机)

下图就是增加完的内容 ?修改已存在的图片也是点击更改新增也一样

8.2 幻灯片配置

幻灯片一般是在聚合图形的基础上配置
将聚合图形改为幻灯片即可编辑幻灯片

如果只有一个聚合图形 是不需要幻灯片的

点击添加即可 ?延迟时间就是图片更改时间

8.3 安装图形树

1.安装graphtree

[root@zabbix ~]# cd /usr/share/zabbix
[root@zabbix zabbix]# wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.patch

2.导入补丁包

[root@zabbix zabbix]# yum install -y patch
[root@zabbix zabbix]# patch? -Np0 <graphtree3.0.4.patch
[root@zabbix zabbix]# chown -R apache.apacheoneoaas

3.新增Apache配置文件

[root@zabbix zabbix]# vim/etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
Alias /oneoaas /usr/share/zabbix/oneoaas

4.重启httpd服务

[root@zabbix zabbix]# systemctl restart httpd

第9章 拆分数据库

9.1 拆分配置过程

LAP+MySQL架构(修改如下两个文件中连接数据库的配置信息)
将zabbix数据库拆分到db01上
要修改以下两个文件的内容

[root@zabbix ~]# ?ll /etc/zabbix/zabbix_server.conf
[root@zabbix ~]# ?ll /etc/zabbix/web/zabbix.conf.php

1.在新的数据库上创建zabbix库

[root@db01 ~]# mysql -uroot -pNfsnobody123.com
mysql> create database zabbix character setutf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* tozabbix@'%' identified by 'Nfsnobody123.com'; 
#到此处会提示权限过大 不用理会

2.在旧的zabbix服务器上备份数据库文件,然后倒至新的数据库

[root@zabbix ~]# ?mysqldump -uroot \
--databases zabbix \
--single-transaction > `date +%F%H`-zabbix.sql
[root@zabbix ~]# ?cat 2018-08-2017-zabbix.sql |mysql -h10.0.0.51 -uzabbix -pNfsnobody123.com zabbix

3.修改zabbixServer的数据库连接信息

[root@zabbix ~]# ?vim /etc/zabbix/zabbix_server.conf ??这是修改后的内容
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=Nfsnobody123.com
[root@m01 ~]# systemctl restart zabbix-server??  修改后需要重启

4.修改zabbixWeb连接数据库信息???

[root@m01 ~]# vim /etc/zabbix/web/zabbix.conf.php ??修改后如下图
$DB['TYPE']= 'MYSQL';
$DB['SERVER']= '172.16.1.51';
$DB['PORT']= '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] ????= 'zabbix';
$DB['PASSWORD'] = 'Nfsnobody123.com';
[root@m01 ~]# systemctl restart httpd

9.2 错误案例

如出现如下错误:请检查数据库是否允许远程连接,对应的账户和密码是否配置错误

[root@m01 ~]# tail -f/var/log/zabbix/zabbix_server.log
?2189:20180820:173636.941 [Z3001] connection todatabase 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51'(111)

?
?
?
?
?
?
?
?
?
?
?
?
?
?
????????????????????????????????????????????????????


原文链接:https://www.cnblogs.com/wenrulaogou/p/12190660.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:0.5 Linux的联通性命令汇总

下一篇:linux 开机自启动redis服务