Zabbix监控介绍与安装

Posted xiets

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix监控介绍与安装相关的知识,希望对你有一定的参考价值。

监控介绍

1. 什么是监控

顾名思义,“监控”,可以理解为监视和控制。
比如说一个web网站服务,随着用户量的日益增加,可能就会导致系统oom(内存不够用了),也就是out of memory内存溢出,从而导致网站异常。
而且处于oom这个状态时,系统会kill掉一些占用内存多的服务,来释放掉一部分内存,供系统内核使用。

如何判断,web服务是因为用户访问过多,达到瓶颈。
还是因为程序Bug导致的内存占用过多。

解决办法:
提前对web服务进行压力测试(比如说上线的新web网站),并记录下web的并发压力值,如2000并发。
这个时候就可以用这个值来进行监控,达到多少的时候,就报警。

2. 常见的Linux监控命令

命令 功能
free 显示系统中空闲内存和使用内存的数量
df 报告文件系统磁盘空间使用情况
top 用于动态地监视进程活动与系统负载等信息
htop 交互式进程查看器
uptime 说明系统运行了多长时间
iftop 按主机在接口上显示带宽使用情况
iostat 报告中央处理器(CPU)的统计数据以及设备和分区的输入/输出统计数据。
vmstat 报告虚拟内存统计数据
netstat 打印网络连接、路由表、接口统计信息、伪装连接和多播成员关系
nethogs Net top工具对每个进程的带宽进行分组

3. 使用shell脚本来监控服务器

监控内存:每隔一分钟监控一次内存,当内存低于100M时,触发邮件报警,并在邮件内显示剩余内存。

while true
do
  free=free -m|awk ‘NR==2{print $NF}‘
  if [ $free -lt 100 ]
  then
    echo $free | mail -s "当前内存" 123@qq.com
  fi
  sleep 60
done

4. Zabbix架构图及原理讲解

技术图片

安装zabbix所需服务(角色)
(1)数据库
zabbix支持mysql、mariadb、PG等多种数据库。

(2)zabbix-server
配置连接数据库的一系列信息。

(3)zabbix-web(httpamp)

(4)zabbix-agent
agent取到的监控值发给server

工作过程
(1)zabbix-agent负责采集客户端的监控信息,然后发送给zabbix-server。
(2)zabbix-server对该数据,根据设置的监控条件来进行分析处理,一旦数据满足监控条件,则触发报警。
(3)处理完的监控数据,存入数据库中。
(4)然后由web界面显示这些由server端处理完的数据。
(5)每次添加监控主机、监控项时,都是在web页面进行添加,提交这些操作时,数据写入数据库。
(5)server会定期同步数据库(默认同步时间为60秒一次),从数据库里面读取数据,也就是读取我们在web界面添加的监控主机、监控项等,然后向zabbix-agent取值,进行监控。

安装Zabbix

1. 安装硬件要求

ip地址 硬件配置 主机名
10.0.0.61 1CPU、1G内存 zabbix-server

2. 安装步骤

(1)下载zabbix官方源
[root@zabbix-server /etc/yum.repos.d]# wget -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
wget到本地,方便下次使用

[root@zabbix-server /etc/yum.repos.d]# rpm -Uvh zabbix-release-4.0-1.el7.noarch.rpm 
warning: zabbix-release-4.0-1.el7.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-4.0-1.el7         ################################# [100%]

[root@zabbix-server /etc/yum.repos.d]# ll -h
total 28K
-rw-r--r--  1 root root 1.6K Dec  1  2016 CentOS-Base.repo
-rw-r--r--  1 root root  664 May 11  2018 epel-7.repo
drwxr-xr-x. 2 root root  187 Apr 19 12:36 test
-rw-r--r--  1 root root  14K Oct  2  2018 zabbix-release-4.0-1.el7.noarch.rpm
-rw-r--r--  1 root root  410 Oct  2  2018 zabbix.repo

(2)更改zabbix.repo
[root@zabbix-server /etc/yum.repos.d]# vim zabbix.repo_bak 
把第3行的baseurl=http://repo.zabbix.com/zabbix/4.0/rhel/7/$basearch/
改成
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/$basearch/

把第10行的baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
改成
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/

(3)安装zabbix服务端和zabbix-web前端
[root@zabbix-server /etc/yum.repos.d]# yum install zabbix-server-mysql zabbix-web-mysql -y

(4)安装数据库并启动
[root@zabbix-server /etc/yum.repos.d]# yum -y install mariadb-server
[root@zabbix-server /etc/yum.repos.d]# systemctl enable mariadb.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@zabbix-server /etc/yum.repos.d]# systemctl start mariadb.service 
[root@zabbix-server /etc/yum.repos.d]# echo $?
0

(5)初始化数据库
[root@zabbix-server /etc/yum.repos.d]# mysql_secure_installation 
回车
n
一直y

(6)登录数据库创建zabbix库及授权
[root@zabbix-server ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘123456‘;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye

(7)导入数据
使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据
[root@zabbix-server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix

(8)检查导入是否成功
[root@zabbix-server ~]# mysql -uroot zabbix -e ‘show tables‘
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| application_discovery      |
| application_prototype      |
| application_template       |
| applications               |
| auditlog                   |
| auditlog_details           |
| autoreg_host               |
| conditions                 |
| config                     |
| corr_condition             |
| corr_condition_group       |
| corr_condition_tag         |
| corr_condition_tagpair     |
| corr_condition_tagvalue    |
| corr_operation             |
| correlation                |
| dashboard                  |
| dashboard_user             |
| dashboard_usrgrp           |
| dbversion                  |
| dchecks                    |
| dhosts                     |
| drules                     |
| dservices                  |
| escalations                |
| event_recovery             |
| event_suppress             |
| event_tag                  |
| events                     |
| expressions                |
| functions                  |
| globalmacro                |
| globalvars                 |
| graph_discovery            |
| graph_theme                |
| graphs                     |
| graphs_items               |
| group_discovery            |
| group_prototype            |
| history                    |
| history_log                |
| history_str                |
| history_text               |
| history_uint               |
| host_discovery             |
| host_inventory             |
| hostmacro                  |
| hosts                      |
| hosts_groups               |
| hosts_templates            |
| housekeeper                |
| hstgrp                     |
| httpstep                   |
| httpstep_field             |
| httpstepitem               |
| httptest                   |
| httptest_field             |
| httptestitem               |
| icon_map                   |
| icon_mapping               |
| ids                        |
| images                     |
| interface                  |
| interface_discovery        |
| item_application_prototype |
| item_condition             |
| item_discovery             |
| item_preproc               |
| items                      |
| items_applications         |
| maintenance_tag            |
| maintenances               |
| maintenances_groups        |
| maintenances_hosts         |
| maintenances_windows       |
| mappings                   |
| media                      |
| media_type                 |
| opcommand                  |
| opcommand_grp              |
| opcommand_hst              |
| opconditions               |
| operations                 |
| opgroup                    |
| opinventory                |
| opmessage                  |
| opmessage_grp              |
| opmessage_usr              |
| optemplate                 |
| problem                    |
| problem_tag                |
| profiles                   |
| proxy_autoreg_host         |
| proxy_dhistory             |
| proxy_history              |
| regexps                    |
| rights                     |
| screen_user                |
| screen_usrgrp              |
| screens                    |
| screens_items              |
| scripts                    |
| service_alarms             |
| services                   |
| services_links             |
| services_times             |
| sessions                   |
| slides                     |
| slideshow_user             |
| slideshow_usrgrp           |
| slideshows                 |
| sysmap_element_trigger     |
| sysmap_element_url         |
| sysmap_shape               |
| sysmap_url                 |
| sysmap_user                |
| sysmap_usrgrp              |
| sysmaps                    |
| sysmaps_elements           |
| sysmaps_link_triggers      |
| sysmaps_links              |
| tag_filter                 |
| task                       |
| task_acknowledge           |
| task_check_now             |
| task_close_problem         |
| task_remote_command        |
| task_remote_command_result |
| timeperiods                |
| trends                     |
| trends_uint                |
| trigger_depends            |
| trigger_discovery          |
| trigger_tag                |
| triggers                   |
| users                      |
| users_groups               |
| usrgrp                     |
| valuemaps                  |
| widget                     |
| widget_field               |
+----------------------------+

(9)为 Zabbix server/proxy 配置数据库
编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库
[root@zabbix-server ~]# vim  /etc/zabbix/zabbix_server.conf
91行:# DBHost=localhost
改成
DBHost=localhost

DBName=zabbix 不用改
DBUser=zabbix  不用改

124行:# DBPassword=
改成
DBPassword=123456

(10)启动 Zabbix server 进程
[root@zabbix-server ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@zabbix-server ~]# systemctl start zabbix-server

(11)检查启动情况
[root@zabbix-server ~]# netstat -lntup|grep 10051
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      7718/zabbix_server  
tcp6       0      0 :::10051                :::*                    LISTEN      7718/zabbix_server

(12)Zabbix 前端配置
[root@zabbix-server ~]# vim /etc/httpd/conf.d/zabbix.conf
把20行的:# php_value date.timezone Europe/Riga
改成
php_value date.timezone Asia/Shanghai

(13)启动httpd
[root@zabbix-server ~]# systemctl  enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
[root@zabbix-server ~]# systemctl start httpd

(14)浏览器访问

ip+/zabbix

技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片

3. 在zabbix服务端添加agent

(1)下载rpm包
[root@zabbix-server ~]# wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm

[root@zabbix-server ~]# ls
anaconda-ks.cfg                       zabbix-release-4.0-1.el7.noarch.rpm
zabbix-agent-4.0.11-1.el7.x86_64.rpm

(2)安装
[root@zabbix-server ~]# rpm -ivh zabbix-agent-4.0.11-1.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-agent-4.0.11-1.el7        ################################# [100%]

(3)启动服务
[root@zabbix-server ~]# systemctl start zabbix-agent.service
[root@zabbix-server ~]# systemctl enable zabbix-server.service

(4)网页验证
技术图片









以上是关于Zabbix监控介绍与安装的主要内容,如果未能解决你的问题,请参考以下文章

linux12 - zabbix5.0 -- 介绍与安装01

监控服务zabbix部署

linux监控平台介绍zabbix监控介绍安装zabbix

Zabbix中小型企业Zabbix监控实战之告警大全

Zabbix 3.0入门到企业实战二(zabbix介绍与安装)

linux监控平台介绍zabbix监控介绍安装zabbix