Linux下Zabbix安装与配置
已测试的系统环境:Centos7
一、安装LNMP环境,详细请看本人另一篇
二、安装配置Zabbix
1.创建zabbix用户组
~#groupadd zabbix
~#useradd -g zabbix -s /sbin/nologin zabbix
2.mysql授权zabbix,可在后面配置。
~#mysql -uroot -p
>create databases zabbix default charset utf8;
>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
>flush privileges;
>quit;
3.下载zabbix-3.0.3.tar.gz,并解压
~#tar -zxvf zabbix-3.0.3.tar.gz -C /tmp/ && cd /tmp/zabbix-3.0.3
4.编译安装
~#./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=你的mysql_config --with-net-snmp --with-libcurl
#解释 你的mysql_config文件可用find / -name mysql_config命令找到,例如--with-mysql=/usr/local/mysql/bin/mysql_config
参数说明:
--prefix=/usr/local/zabbix 为指定安装目录为/usr/local/zabbix
--enable-server 为安装 zabbix 服务端程序
--enable-agent 为安装 agent 程序
--enable-proxy 为安装 proxy 程序
--with-mysql 为使用 mysql 数据库
--enable-ipv6 为启用 ipv6 支持(无启用)
--with-net-snmp 为启用 snmp 支持
--with-libcurl 为启用 curl
--with-libxml2 编译 xml 模块,主要用于监控 vm 虚拟机
可能报错:
configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
解决方法:
~#yum -y install net-snmp-devel curl-devel
安装:#无须make命令
~#make install
5.修改zabbix配置
~#mkdir -p /data/ZabbixScript/alertscripts
~#mkdir /var/log/zabbix -p
~#chown zabbix.zabbix /var/log/zabbix
~#mkdir var/log/zabbix
~#ln -s /usr/local/zabbix/etc/ /etc/zabbix
~#ln -s /usr/local/zabbix/bin/* /usr/bin/
~#ln -s /usr/local/zabbix/sbin/* /usr/sbin/
~#cp /tmp/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_* /etc/init.d/
~#chmod 755 /etc/init.d/zabbix_*
编辑并修改zabbix_server.conf
~#vim /usr/local/zabbix/etc/zabbix_server.conf
修改如下条目:
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=zabbix #数据库密码
ListenIP=127.0.0.1 #数据库ip地址
AlertScriptsPath=/data/ZabbixScript/alertscripts #zabbix运行脚本
LogFile=var/log/zabbix/zabbix/zabbix_server.log #日志文件
修改/etc/init.d/zabbix_server文件中的BASEDIR=/usr/local/ 改为BASEDIR=/usr/local/zabbix
修改/etc/init.d/zabbix_agentd文件中的BASEDIR=/usr/local/ 改为BASEDIR=/usr/local/zabbix
修改/etc/zabbix/zabbix_agentd.conf文件中的#Server= 即zabbix_server的IP地址,改为Server=127.0.0.1
修改/etc/zabbix/zabbix_agentd.conf文件中的ServerActive=127.0.0.1 改为ServerActive=$IP:10051
修改/etc/zabbix/zabbix_agentd.conf文件中的LogFile=/tmp/zabbix_agentd.log 改为LogFile=/var/log/zabbix/zabbix_agentd.log
修改/etc/zabbix/zabbix_agentd.conf文件中的#UnsafeUserParameters=0 改为UnsafeUserParameters=1 此项为1表示支持自定义key
6.修改PHP配置 php.ini
~#vim /usr/local/php/lib/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
重启 PHP 服务:
~#service php-fpm restart
7.配置zabbix的web环境: ~#cd /tmp/zabbix-3.0.3/frontends ~#cp -rf php/ /usr/local/nginx/html/zabbix&&chown -R nobody.nobody `echo !$'/php/'` #拷贝网页文件到nginx的根目录 ~#cd /tmp/zabbix-3.0.3/ 创建zabbix数据库以及相关表 ~#mysql –uroot –p -e "create database zabbix default charset utf8;" ~#mysql –uroot –p -e "grant all on zabbix.* to zabbix@localhost identified by 'zabbix';" 设置mysql超级用户授权及不限制登陆和数据库 ~#mysql -uroot –p >GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@127.0.0.1 IDENTIFIED BY 'zabbix' WITH GRANT OPTION; >GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix' WITH GRANT OPTION; >GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@192.168.10.166 IDENTIFIED BY 'zabbix' WITH GRANT OPTION; >flush privileges; >quit;
~#mysql -uzabbix -pzabbix zabbix<./database/mysql/schema.sql ~#mysql -uzabbix -pzabbix zabbix<./database/mysql/images.sql ~#mysql -uzabbix -pzabbix zabbix<./database/mysql/data.sql 启动 zabbix 服务 ~#service zabbix_server start
更多web配置(略)
8.配置zabbix_agentd.conf 在第5步改过的在此可跳过
配置这个文件的目的就是为了能够实现对本地服务器的监控。该文件需要修改如下四个条目:
Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server 的 ip 地址
ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址
/tmp/zabbix_agentd.log 修改日志路径
UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1
Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的 agentd 配置文件可以写在这个目录下面
利用sed 方式内容替换的执行命令如下:
~#sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,10.1.1.11/g" /data/service/zabbix30/etc/zabbix_agentd.conf
~#sed -i "s/ServerActive\=127.0.0.1/ServerActive\=10.1.1.11/g" /data/service/zabbix30/etc/zabbix_agentd.conf
~#sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /data/service/zabbix30/etc/zabbix_agentd.conf
~#sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /data/service/zabbix30/etc/zabbix_agentd.conf
9.配置中文支持
zabbix实际是有中文语言的,我们可以通过修改web端源文件来开启中文语言。
修改你的locates.inc.php这个文件
~#vim /usr/local/nginx/html/zabbix/include/locales.inc.php
把'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => false]其中的false改为true
然后点击zabbix监控网页端右上角人头头像修改为中文语言即可。
更换语言后,图形会出现乱码,我们如下修改:
~#vim /usr/local/nginx/html/zabbix/include/defines.inc.php
#修改第93行改为
define('ZBX_FONT_NAME', 'msyh');
#修改第45行改为
define('ZBX_GRAPH_FONT_NAME', 'msyh')
~#service php-fpm restart
然后下载微软雅黑字体,改名为msyh传入/web/zabbix/fonts目录下即可。