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