Linux/Centos 无网环境安装zabbix
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux/Centos 无网环境安装zabbix相关的知识,希望对你有一定的参考价值。
zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
安装使用
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
搭建Zabbix监控环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
特点
zabbix的主要特点:
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
Zabbix主要功能:
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视。
介绍
本文是在centos6.8-64位系统上安装zabbix3.4.8版本
本文中用到的所有软件添加最下方二维码免费提供
本文是在lnmp环境上搭建zabbix3.4.8
nginx版本:1.9.3 源码编译安装
mysql版本:5.6.32 源码编译安装
php版本:5.6.9 源码编译安装
zabbix版本:3.4.8 源码编译安装
下面开始安装
系统环境准备
关闭防火墙
service iptables stop
chkconfig iptables off
关闭selinux
setenforce 0
vim /etc/sysconfig/selinux //修改如下
配置本地yum
配置本地yum源,如果机器有网络yum源,此步骤忽略
上传Centos6.8系统镜像到服务器目录:/data/zabbix
挂载系统镜像盘
mkdir /data/yum/
mount -o loop /data/zabbix/CentOS-6.8-x86_64-bin-DVD1.iso /data/yum
df –h //挂载完后如下所示
新建一个目录,把镜像里面的所有东西都拷贝出来,因为在后面安装rpm包的时候有些包系统镜像里面没有,这时候需要去网络yum源去下载包然后传到我们本地yum源里放rpm包的地方,系统盘挂载是不允许写入的,所以我们挂载后把所有的文件都拷贝到一个新目录
操作如下:
mkdir /data/yumserver
cp –R /data/yum/* /data/yumserver/
复制完以后,我们去配置yum,操作如下
cd /etc/yum.repos.d/
mkdir bak
cp * ./bak
vim yum.repo //文件内容如下复制粘贴即可
[base]
name=yumserver
enabled=1
baseurl=file:///data/yumserver/
gpgcheck=0
yum list //如果出现很多包说明yum可用
开始安装
Nginx安装
软件版本:version 1.9.3
上传nginx-1.9.3.tar.gz到服务器目录:/usr/local/src
使用yum安装依赖包
yum install gcc zlib zlib-devel openssl openssl-devel pcre pcre-develncurse -y
(注:yum安装包的途中,如果报错 说那个包没有去可以上网的服务器访问下面地址,ctrl+f 搜索报错的包名,缺那个包去找那个,下载后传到服务器目录:/data/yumserver/Packages
然后继续安装。下面安装php和zabbix可能也需要去下载rpm包
Rpm包下载地址:http://mirrors.163.com/centos/6/os/x86_64/Packages/
示例:
cd /usr/local/src
tar -zxvf /usr/local/src/nginx-1.9.3.tar.gz
cd nginx-1.9.3
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-http_ssl_module
make && make install
启动方法
/usr/local/nginx/sbin/nginx
也可以通过/etc/init.d/nginx start|stop|restart方式
将附件里的nginx启动脚本上传到/etc/init.d/下
chmod 755 /etc/init.d/nginx //赋权
chkconfig --add nginx //添加nginx为系统服务
chkconfig nginx on //配置开机自启动
mysql安装
软件版本 MySQL-5.6.32
上传mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz到服务器目录:/usr/local/src (软件包见附件)
cd /usr/local/src
tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
mkdir /usr/local/mysql/data/tmp
chown -R mysql:mysql /usr/local/mysql/data
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
vim /etc/my.cnf //复制以下内容
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
character_set_server=gbk
user=mysql
default-storage-engine=INNODB
tmpdir=/usr/local/mysql/data/tmp
symbolic-links=0
innodb_buffer_pool_size= 1G
skip-name-resolve
event_scheduler= 1
port= 3306
server_id= 1
wait_timeout=2880000
interactive_timeout= 2880000
max_allowed_packet= 512M
join_buffer_size= 128M
sort_buffer_size= 2M
read_rnd_buffer_size= 2M
lower_case_table_names= 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet= 512M
[client]
default-character-set=gbk
socket=/usr/local/mysql/data/mysql.sock
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld //文件开头添加如下内容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
chkconfig --add mysqld //添加mysql为系统服务
chkconfig mysqld on //设置mysql开机自启动
service mysqld start //启动mysql
php安装
上传php-5.6.9.tar.gz到服务器目录:/usr/local/src
cd /usr/local/src
tar -zxvf php-5.6.9.tar.gz
ln -sv php-5.6.9 php
cd php/
./configure
-prefix=/usr/local/php
-with-config-file-path=/usr/local/php/etc
-enable-inlin
-disable-e-optimizationdebug
-disable-rpath
-enable-shared
-enable-opcache
-enable-fpm
-with-mysql=/data/mysql
-with-mysqli=/data/mysql/bin/mysql_config
-with-pdo-mysql=/data/mysql
-with-gettext
-enable-mbstring
-with-iconv
-with-openssl
-enable-bcmath
-enable-soap
-with-libxml-dir
-enable-pcntl
-enable-shmop
-enable-sysvmsg
-enable-sysvsem
-enable-sysvshm
-enable-sockets
-with-curl
-with-zlib
-enable-zip
-with-bz2
-with-gd
-with-freetype-dir
-with-jpeg-dir
-with-png-dir
(注意:配置过程中可能会因为环境不同,报错缺失rpm包,把报错信息复制粘贴百度,看是缺什么包,然后去网上下载回来yum安装 )
make && make install
php.ini是php运行核心配置文件
php-fpm.conf是php-fpm进程服务的配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
fpm测试php配置
/usr/local/php/sbin/php-fpm –t
#chkconfig --add php-fpm
#chkconfig php-fpm on
#service php-fpm start
配置nginx+php
配置php
#vim /usr/local/php/etc/php-fpm.conf //修改以下几项
user = www
group = www
listen = 10.42.221.56:8000 #使用真实ip
编辑php的ini文件并修改以下下内容
#vim /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data= -1
配置nginx
#vim /usr/local/nginx/conf/nginx.conf //修改以下内容
user www;
server_name 10.42.221.56 ;
root /usr/local/nginx/html;
location ~ ^/.*.php$ {
root /usr/local/nginx/html;
fastcgi_pass 10.42.221.56:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#vim /usr/local/php/etc/php-fpm.conf //修改以下两项
user = www
group = www
#groupadd www
#useradd –g www www
#cd /usr/local/nginx/html/
#vim index.php //写入下面内容
<?php phpinfo(); ?>
最后重启nginx和php-fpm
#/usr/local/nginx/sbin/nginx –s reload
#service php-fpm restart
访问http://ip/index.php出现下图说明成功
zabbix安装
#tar -zxvf zabbix-3.4.8.tar.gz
#cd zabbix-3.4.8
设置web前端
#mkdir /usr/local/nginx/html/zabbix
#cp -R zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/zabbix
设置nginx的执行和所有者
#chown -R www.www /usr/local/nginx/html/zabbix
赋予可执行权限
#chmod -R 755 /usr/local/nginx/html/zabbix/
创建zabbix用户和组
#groupadd zabbix
#useradd -g zabbix zabbix
编译安装zabbix
#./configure --enable-server --enable-agent --with-mysql=/data/mysql/bin/mysql_config --enable-ipv6 --enable-java --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --prefix=/usr/local/zabbix
编译成功会出现下图
#make install
修改配置文件zabbix_server.conf
#vim /usr/local/zabbix/etc/zabbix_server.conf //修改以下内容
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
#cp zabbix-3.4.8/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
#cp zabbix-3.4.8/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
修改 /etc/init.d/zabbix_server、/etc/init.d/zabbix_agentd的BASEDIR=/usr/local/为BASEDIR=/usr/local/zabbix
进入数据库,刚装的mysql密码为空,直接回车就行
#mysql –u root
mysql>CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql>GRANT ALL PRIVILEGES ON . TO‘zabbix‘@‘localhost’ IDENTIFIEDBY ‘zabbix‘;
mysql>use zabbix;
mysql>source zabbix-3.4.8/database/mysql/schema.sql;
mysql>source zabbix-3.4.8/database/mysql/images.sql;
mysql>source zabbix-3.4.8/database/mysql/data.sql;
重启所有服务
启动nginx
#/usr/local/nginx/sbin/nginx –s reload
重启数据库
#service mysqld restart
启动zabbix_server和zabbix_agent
#/etc/init.d/zabbix_server start
#/etc/init.d/zabbix_agentd start
设置zabbix开机自启
#chkconfig --add /etc/init.d/zabbix_server
#chkconfig --add /etc/init.d/zabbix_agentd
#chkconfig zabbix_server on
#chkconfig zabbix_agentd on
浏览器访问zabbix页面并进行初始化
Zabbix实现邮件报警
安装插件
安装邮件发送工具mailx
#yum –y install mailx dos2unix
配置
修改/etc/mail.rc,复制以下内容
#vim /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set from=1514981[email protected] #发件人邮箱地址
set smtp=smtp.163.com #smtp服务器地址
set [email protected] #认证用户
set smtp-auth-password=xxxxxxxxx #认证密码
set smtp-auth=login
修改zabbix主配置文件zabbix_server.conf,加入下面一行
#vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
新建邮件发送脚本sendmail.sh
#cd /usr/lib/zabbix/alertscripts
#vim sendmail.sh //复制以下内容
#!/bin/bash
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
mail -s "$2" $1 < $FILE
#chmod 755 sendmail.sh
#chown zabbix.zabbix sendmail.sh
#touch /tmp/mailtmp.txt
#chmod 755 /tmp/mailtmp.txt
#chown zabbix.zabbix /tmp/mailtmp.txt
配置web页面
创建媒体类型
管理–>报警媒介类型–>创建媒体类型
按图示填写完成后点击更新,就会在报警媒介类型中看到刚才创建的名为Email类型
给用户添加报警媒介
此处以Admin用户为例 管理–>用户–>点击Admin
点击报警媒介,然后添加邮件接收人
创建动作
配置完成
添加完成后动作页面列表就会展示出来
此时没有添加相应的触发器,如果系统中任何一台机器出现告警信息,就会通过邮件发送器发送到对应的邮箱中。
然后我们新建一个监控项,监听zabbix的22端口如果22端口处于侦听状态,就发邮件报警
邮件报警内容如下:
如果对此文有什么问题的话,请加下面微信一起探讨
以上是关于Linux/Centos 无网环境安装zabbix的主要内容,如果未能解决你的问题,请参考以下文章
Mac+Linux+zabbix监控mysqlredis环境搭建