标签:active 数据存储 dns nagios ubunt 信息 可用性 存在 界面
1. zabbix介绍zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Ubuntu,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
agent端:主机通过安装agent方式采集数据。
zabbix的主要特点:
Zabbix主要功能:
一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
[root@wlw ~]# yum -y install net-snmp-devel libevent-devel
[root@wlw ~]# cd /usr/src/
[root@wlw src]# ls
apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8
apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz
apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
[root@wlw src]# rz
[root@wlw src]# ls
apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8
apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz
apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz zabbix-3.4.12.tar.gz
[root@wlw src]# tar xf zabbix-3.4.12.tar.gz
[root@wlw src]# cd
[root@wlw ~]# groupadd -r zabbix
[root@wlw ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@wan ~]# source /etc/profile.d/mysql.sh
[root@wan ~]# mysql -uroot -pwlw123!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘ wlw123!‘;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
[root@wan ~]# cd /usr/src/zabbix-3.4.12/database/mysql/
[root@wan mysql]# ls
data.sql images.sql schema.sql
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan zabbix-3.4.12]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@wan zabbix-3.4.12]# make install
[root@wan zabbix-3.4.12]# cd
[root@wan ~]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
[root@wan ~]# vim /usr/local/etc/zabbix_server.conf
[root@wan ~]# zabbix_server
[root@wan ~]# zabbix_agentd
[root@wan ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 80 :::3306 :::*
1:重要组件
zabbix由以下几个组件部分构成:
注:zabbix node也是 zabbix server的一种 。
2:常见进程
默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另外安装。下面来分别介绍下他们各自的作用。
(1)zabbix_agentd:
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
(2)zabbix_get
zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
(3)zabbix_sender
zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
(4)zabbix_server
zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。
(5)zabbix_proxy
zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到server里。为什么要用代理?代理是做什么的?卖个关子,请继续关注运维生存时间zabbix教程系列。
(6)zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到server或者proxy。
在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构: server-client 、master-node-client、server-proxy-client三种 。
1:server-client架构
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
2:server-proxy-client架构
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。
3:master-node-client架构
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
其实zabbix做的还是挺人性化的,给了我们下载地址:http://repo.zabbix.com/ 里面可以选很多版本,但这里就给大家提供一个目前最新版本4.2的部署及添加客户端方式。
zabbix配置文件有两种:
参数 作用
LogFile 设置服务端日志文件存放路径
ListenIP 设置服务端监听IP
ListenPort 设置服务端监听的端口号
PidFile 设置服务端进程号文件存放路径
DBHost 指定zabbix的数据库服务器IP
DBName 指定zabbix使用的数据库库名
DBUser 指定zabbix数据库登录用户
DBPassword 指定zabbix数据库登录密码
DBPort 指定zabbix数据库端口号
User 设置zabbix以什么用户的身份运行
AlertScriptsPath 设置告警脚本存放路径
ExternalScripts 外部脚本存放路径
环境说明:
环境 | IP | 要安装的应用 |
---|---|---|
服务器t | 192.168.66.128 | lamp架构zabbix serverzabbix agent |
客户端 | 192.168.66.130 | zabbix agent |
因为zabbix是用php语言开发的,所以必须先部署lamp架构,使其能够支持运行php网页
安装依赖包(lamp安装见我的lamp那篇博客,这里脚本安装好了)
[root@wlw ~]# yum -y install net-snmp-devel libevent-devel
//下载zabbix
[root@wlw ~]# cd /usr/src/
[root@wlw src]# ls
apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8
apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz
apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
[root@wlw src]# rz
[root@wlw src]# ls
apr-1.6.5 apr-util-1.6.1.tar.gz httpd-2.4.38.tar.bz2 php-7.2.8
apr-1.6.5.tar.gz debug kernels php-7.2.8.tar.xz
apr-util-1.6.1 httpd-2.4.38 mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz zabbix-3.4.12.tar.gz
//解压
[root@wlw src]# tar xf zabbix-3.4.12.tar.gz
[root@wlw src]# cd
//创建zabbix用户和组
[root@wlw ~]# groupadd -r zabbix
[root@wlw ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@wan ~]# source /etc/profile.d/mysql.sh
//配置zabbix数据库
[root@wan ~]# mysql -uroot -pwlw123!
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘ wlw123!‘;
Query OK, 0 rows affected, 2 warnings (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
//编译安装zabbix
[root@wan ~]# cd /usr/src/zabbix-3.4.12/database/mysql/
[root@wan mysql]# ls
data.sql images.sql schema.sql
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < images.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan mysql]# mysql -uzabbix -pwlw123! zabbix < data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@wan zabbix-3.4.12]# ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
[root@wan zabbix-3.4.12]# make install
[root@wan zabbix-3.4.12]# cd
[root@wan ~]# ls /usr/local/etc/
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
[root@wan ~]# vim /usr/local/etc/zabbix_server.conf
[root@wan ~]# zabbix_server
[root@wan ~]# zabbix_agentd
[root@wan ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 80 :::3306 :::*
[root@wan ~]# ls /usr/local/etc/ zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server .conf.d
//修改服务端配置文件
// 设置数据库信息
[root@wan ~]# vim /usr/local/etc/zabbix_server.conf .... DBPassword=zabbix123! //设置数据库连接密码
//启动zabbix_server和zabbix_agentd
[root@wan ~]# zabbix_server
[root@wan ~]# zabbix_agentd
[root@wan ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 80 :::3306 :::*
9.3.1zabbix web 界面安装前配置
[root@wan ~]# sed -ri ‘s/(post_max_size =).*/\1 16M/g‘ /etc/php.ini
[root@wan ~]# sed -ri ‘s/(max_execution_time =).*/\1 300/g‘ /etc/php.ini
[root@wan ~]# sed -ri ‘s/(max_input_time =).*/\1 300/g‘ /etc/php.ini
[root@wan ~]#
[root@wan ~]# sed -i ‘/;date.timezone/a date.timezone = Asia/Shanghai‘ /etc/php.ini
[root@wan ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@wan ~]# cd /usr/src/zabbix-3.4.12
[root@wan zabbix-3.4.12]# ls
aclocal.m4 ChangeLog config.log configure.ac frontends m4 man README
AUTHORS compile config.status COPYING include Makefile misc sass
bin conf config.sub database INSTALL Makefile.am missing src
build config.guess configure depcomp install-sh Makefile.in NEWS upgrades
[root@wan zabbix-3.4.12]# mkdir /usr/local/apache/htdocs/zabbix
[root@wan zabbix-3.4.12]# cp -a frontends/php/* /usr/local/apache/htdocs/zabbix/
[root@wan zabbix-3.4.12]# chown -R apache.apache /usr/local/apache/htdocs/
[root@wan zabbix-3.4.12]# cd
[root@wan ~]# vim /etc/httpd24/httpd.conf
[root@wan ~]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@wan ~]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxrwxrwx. 2 apache apache 81 7月 30 2018 /usr/local/apache/htdocs/zabbix/conf
[root@wan ~]# source /etc/profile.d/httpd.sh
[root@wan ~]# apachectl -t
Syntax OK
[root@wan ~]# apachectl restart
[root@wan ~]# apachectl stop
[root@wan ~]# apachectl start
[root@wan ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 *:10051 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 80 :::3306 :::*
再进入电脑的C盘的 Windows System32 dirvers etc 的hosts 里面添加映射
密码是zabbix123!
再恢复zabbix/conf目录的权限为755:
[root@wan ~]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
[root@wan ~]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxr-xr-x. 2 apache apache 104 5月 14 22:45 /usr/local/apache/htdocs/zabbix/conf
实现在另一台主机安装zabbix_agentd客户端,能实现zabbix对客户端监控。
[root@wlw ~]# yum install -y gcc gcc-c++ pcre-devel
[root@wlw ~]# cd /usr/src/
[root@wlw src]# tar xf zabbix-3.4.12.tar.gz
[root@wlw src]# cd zabbix-3.4.12
[root@wlw zabbix-3.4.12]# ./configure --enable-agent
[root@wlw ~]# groupadd -r zabbix
[root@wlw ~]# useradd -r -M -s /sbin/nologin -g zabbix zabbix
[root@wlw ~]# cd /usr/src/zabbix-3.4.12
[root@wlw zabbix-3.4.12]# make install
[root@wlw ~]# cd /usr/local/etc/
[root@wlw etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d
[root@wlw etc]# vim zabbix_agentd.conf
找到server改成Server=192.168.66.130
找到ServerActive改成ServerActive=192.168.66.130
找到Hostname改成Hostname=ww(ww是随便取的名字要记住)
[root@wlw etc]# zabbix_agentd
[root@wlw etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:80 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 127.0.0.1:9000 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 80 :::3306 :::*
[root@wlw etc]# systemctl stop firewalld
[root@wlw etc]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@wlw etc]# vim /etc/selinux/config
[root@wlw etc]# setenforce 0
标签:active 数据存储 dns nagios ubunt 信息 可用性 存在 界面
原文地址:https://blog.51cto.com/14736606/2499658