本文共 13953 字,大约阅读时间需要 46 分钟。
我这里的监控是使用zabbix,刚开始接触比较费劲,但慢慢的看文档边做边看就好多了,现在回头来看还是zabbix比较好,建议大家可以多看看。
现在来介绍一下zabbix的服务端与客户端的安装
一、服务端的安装(版本是2.0.6)
安装基本依赖包
yum install mysql-server mysql-devel libcurl-devel net-snmp-devel php php-gd php-xml php-mysql php-mbstring php-bcmath httpd
关于php与mysql的安装也可以选择源码编译的。
1、下载zabbix包,然后上传到tmp目录,并解压
tar zxvf zabbix-2.0.6.tar.gz
2、创建用户
groupadd zabbixuseradd -g zabbix zabbix
3、创建数据库(使用mysql数据库)、用户与导入表
create database zabbix character set utf8 collate utf8_bin;grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';flush privileges;cd /tmp/zabbix-2.0.6/database/mysql -uzabbix -pzabbix zabbix
4、编译安装
cd /tmp/zabbix-2.0.6./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurlmake install
5、配置
cd /usr/local/zabbix/etc/
下面是是我的配置
grep -v '#' zabbix_server.conf|sed '/^$/d'LogFile=/tmp/zabbix_server.logDBName=zabbixDBUser=zabbixDBPassword=zabbixDBSocket=/var/lib/mysql/mysql.sock
6、启动
/usr/local/zabbix/sbin/zabbix_serverps -ef|grep zabbixzabbix 16835 1 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16836 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16837 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16838 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16839 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16840 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16841 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16842 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16843 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16844 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16845 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16846 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16847 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16848 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16849 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16850 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16854 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16855 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16856 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16860 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16861 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16862 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16865 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16866 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16868 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16871 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverzabbix 16873 16835 0 19:34 ? 00:00:00 /usr/local/zabbix/sbin/zabbix_serverroot 16883 3771 0 19:34 pts/1 00:00:00 grep zabbix
7、配置php
sed -i 's/^\(.*\)date.timezone =.*$/date.timezone = Asia\/Shanghai/g' /etc/php.inised -i 's/^\(.*\)post_max_size =.*$/post_max_size = 16M/g' /etc/php.inised -i 's/^\(.*\)max_execution_time =.*$/max_execution_time = 300/g' /etc/php.inised -i 's/^\(.*\)max_input_time =.*$/max_input_time = 300/g' /etc/php.ini
修改完成后别忘记重启php-fpm
8、复制web interface到www目录
mkdir /var/www/html/zabbixcd /tmp/zabbix-2.0.6/frontends/php/cp -a . /var/www/html/zabbix/
确认好web服务器配置并开启,就输入来进行web的安装
二、web里部署
在web里安装
选择next
1、查看哪个不ok就解决
我这个是全部ok,直接next
2、输入的数据库连接信息
3、测试连接数据库
如果test connection为ok就代表成功
4、输入你的zabbix服务信息
选择next
5、之前操作的汇总
没有问题,选择next
6、先下载这个文件,然后在传到服务器里,给与777权限,修改用户与组为zabbix
然后点击retry
7、没有问题了,选择finish
默认的账户为Admin,密码为zabbix,之后就进入zabbix界面了
二、客户端的安装
客户端分linux与windows,我分别介绍一下。
1、客户端为linux
#!/bin/bashLANG=C###check adapter namezabbix_user='zabbix'zabbix_install_dir='/usr/local/zabbix'zabbix_agent_hostname=$(hostname)zabbix_server_port='10051'zabbix_agent_ip=$(/sbin/ifconfig|grep 'inet addr:'|grep -Ev '127.0.0.1' | cut -d: -f2 | awk '{if ($1~/^10.*/) {print $1} else {print $1}}'|head -n 1)zabbix_agent_header=$(/sbin/ifconfig|grep 'inet addr:'|grep -Ev '127.0.0.1' | cut -d: -f2 | awk '{if ($1~/^10.*/) {print $1} else {print $1}}'|head -n 1|cut -d . -f1)glibc_version=$(/usr/bin/ldd --version|awk 'NR==1{print $NF}'|cut -d . -f2)function server_agent {#check zabbix server ipif [[ $zabbix_agent_header -eq 10 ]] && [[ $(ping -c 2 10.10.10.8 >>/dev/null 2>&1;echo $?) -eq 0 ]];then zabbix_server_ip='10.10.10.8'else zabbix_server_ip='111.111.111.149'fi}function proxy_agent {#check zabbix server ipif [[ $zabbix_agent_header -eq 10 ]] && [[ $(ping -c 2 10.10.10.15 >>/dev/null 2>&1;echo $?) -eq 0 ]];then zabbix_server_ip='10.10.10.15'else zabbix_server_ip='222.222.222.82'fi}function base {# Check if user is rootif [ $(id -u) != "0" ]; then echo -e "\033[1;31m Error: You must be root to run this script!\033[0m" exit 1fi#check networkping -c 2 www.baidu.com >>/dev/null 2>&1if [ $? -ne 0 ];then echo -e "\033[1;31m Error: The host can't connect to Inetnet!\033[0m" exit 1fi#check wget softwarewhich wget >>/dev/null 2>&1if [ $? -ne 0 ];then echo -e "\033[1;31m Error: The wget isn't install,now i will auto install one!\033[0m" if [ $(grep -i -c "ubuntu" /etc/issue) = 0 ];then yum install wget -y else apt-get install wget -y fifiwhich wget >>/dev/null 2>&1if [ $? -ne 0 ];then echo -e "\033[1;31m Error: The wget install fail,please manual install wget!\033[0m" exit 1fi#create user for zabbixif [ $(grep -i -c "ubuntu" /etc/issue) = 1 ];then /usr/sbin/useradd $zabbix_user -M -s /usr/sbin/nologinelse /usr/sbin/useradd $zabbix_user -M -s /sbin/nologinfi#create directory for install zabbix/bin/mkdir $zabbix_install_dirlocal_dir=$(pwd)#check system versionsystem_version=$(uname -m)#check glibc versionif [ $glibc_version -gt 5 ];then if [ $system_version == 'x86_64' ];then #download zabbix agent by system version x86_64 wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6_23.amd64.tar.gz #unpack zabbix agent to /usr/loca/zabbix tar zxf zabbix_agents_2.0.6.linux2_6_23.amd64.tar.gz -C $zabbix_install_dir else #download zabbix agent by system version i686 wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6_23.i386.tar.gz #unpack zabbix agent to /usr/loca/zabbix tar zxf zabbix_agents_2.0.6.linux2_6_23.i386.tar.gz -C $zabbix_install_dir fielse if [ $system_version == 'x86_64' ];then #download zabbix agent wget http://www.zabbix.com/downloads/2.0.3/zabbix_agents_2.0.3.linux2_6.amd64.tar.gz wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6_23.amd64.tar.gz #unpack zabbix agent to /usr/loca/zabbix tar zxf zabbix_agents_2.0.6.linux2_6_23.amd64.tar.gz -C /tmp/ tar zxf zabbix_agents_2.0.3.linux2_6.amd64.tar.gz -C $zabbix_install_dir else #download zabbix agent by system version x86_64 wget http://www.zabbix.com/downloads/2.0.3/zabbix_agents_2.0.3.linux2_6.i386.tar.gz wget http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.linux2_6_23.i386.tar.gz #unpack zabbix agent to /usr/loca/zabbix tar zxf zabbix_agents_2.0.6.linux2_6_23.i386.tar.gz -C /tmp/ tar zxf zabbix_agents_2.0.3.linux2_6.i386.tar.gz -C $zabbix_install_dir fi mv /tmp/conf $zabbix_install_dirfi#mondiy zabbix agent confcd $zabbix_install_dir/confsed -i 's#Hostname=Zabbix server#Hostname='$zabbix_agent_hostname'#' zabbix_agentd.confsed -i 's@# SourceIP=@SourceIP='$zabbix_agent_ip'@' zabbix_agentd.confsed -i 's#Server=.*#Server='$zabbix_server_ip'#' zabbix_agentd.confsed -i 's#ServerActive=.*#ServerActive='$zabbix_server_ip':'$zabbix_server_port'#' zabbix_agentd.conf#Disable requirettysed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers#add check_lvm.sh contentcat >>$zabbix_install_dir/bin/check_lvm.sh <>$zabbix_install_dir/conf/zabbix_agentd.conf< &1 | awk '/STAT \$2 / {print \$NF}'UserParameter=mysql[*],mysql -h 127.0.0.1 -P 3306 -uzabbix -pzabbix -e "show global status"|grep "\<\$1\>"|cut -f2UserParameter=redis_stats[*],redis-cli -h $zabbix_agent_ip -p \$1 info|grep \$2|cut -d : -f2UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$4}'UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$7}'UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$8}'UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$11}'UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$12}'UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$13}'UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$6}'UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep \$1 | head -1 | awk '{print \$\$10}'UserParameter=MongoDB.Status[*],/bin/echo "db.serverStatus().\$1" | /usr/bin/mongo admin | grep "\$2"|awk -F: '{print \$\$2}'|awk -F, '{print \$\$1}'UserParameter=check_service_number[*],ps aux|grep "\$1"|grep -v grep|wc -lUserParameter=check_lvm[*],/usr/bin/sudo $zabbix_install_dir/bin/check_lvm.sh \$1EOF#check check_lvm.sh in the /etc/sudoercmd=$(grep check_lvm /etc/sudoers|wc -l)if [ $cmd -eq 0 ];then echo "zabbix ALL=NOPASSWD:$zabbix_install_dir/bin/check_lvm.sh" >>/etc/sudoersfi#grant 755 to check_lvm.shchmod 755 $zabbix_install_dir/bin/check_lvm.sh#mondiy zabbix install dir userchown -R $zabbix_user:$zabbix_user $zabbix_install_dir#start zabbix agent server$zabbix_install_dir/sbin/zabbix_agentd -c $zabbix_install_dir/conf/zabbix_agentd.conf#insert boot start to start zabbix agent servercheck_rc=$(grep -c "$zabbix_install_dir/sbin/zabbix_agentd -c $zabbix_install_dir/conf/zabbix_agentd.conf" /etc/rc.local)if [ $check_rc -eq 0 ];then echo "$zabbix_install_dir/sbin/zabbix_agentd -c $zabbix_install_dir/conf/zabbix_agentd.conf">>/etc/rc.localfi#delete rubbishrm -rf $local_dir/zabbix_agents_2.0.3.linux2_6.amd64.tar.gzrm -rf $local_dir/zabbix_agents_2.0.6.linux2_6_23.amd64.tar.gzrm -rf /tmp/binrm -rf /tmp/sbinrm -rf $local_dir/$(basename $0)#check zabbix agent statusif [ $(ps -ef|grep zabbix_agentd|grep -v grep|wc -l) -gt 0 ];then echo -e "\033[1;32mZabbix agent is start!\033[0m" exit 0else echo -e "\033[1;31mZabbix agent is stop!please check!\033[0m" exit 1fi}case $1 ininstall_server_agent)server_agentbase;;install_proxy_agent)proxy_agentbase;;*)echo "Usage:`basename $0` {install_server_agent|install_proxy_agent}";;esac
其中10.10.10.8为server端口的内网ip,111.111.111.149为server端的ip,这个是server-client直连模式
10.10.10.15为使用proxy模式的proxy内网ip,222.222.222.82为proxy模式proxy的外网ip
注意:如果在redhat或centos系统,请使用shinstall_zabbix_agent.sh module,如果是debian或者ubuntu的话,请使用bash install_zabbix_agent.sh module。
比如你想安装agent直接连接server模式,如果是在centos系统,可以使用shinstall_zabbix_agent.sh install_server_agent,如果在ubuntu里安装可以使用bashinstall_zabbix_agent.sh install_server_agent
同时注意,如果你公司有内网dns并且能在所有zabbix的agent与server里使用的话,那么Hostname填写主机名+域名,如果没有dns,那么就使用ip。
介绍:
本脚本除了能自动化的安装zabbixagent还能实现以下功能:
1、检测当前执行脚本的用户是否为root,如果不为root就退出并提示(此安装脚本需要进行添加监控用户、修改安装目录权限等);
2、现在不需要选择网卡名称,可以自动检测出客户端的ip;
3、可以针对客户端的ip来选择zabbix服务端的ip是走内网监控的还是走外网的ip监控;
4、此脚本均能在centos、redhat、ubuntu系统上运行;
5、此脚本能自动识别本机的glibc版本,如果低于或等于2.5版本,则自动安装zabbixagent的2.03版本(此版本的zabbix agent不要求glibc版本),如果高于2.5版本就安装最新的2.04版本(此版本要求你的glibc大于2.5,如果小于的话就报glibc错误,一般centos6以上都是2.12,而ubuntu server 12.04都是2.15版本)
6、根据不同的系统,在安装zabbix用户的时候,选择不同是nologin方式;
7、增加智能判断/etc/rc.local是否有开机启动zabbix服务;
8、增加智能删除下载的安装包文件;
9、增加代理安装agent,可以选择安装server-agent模式与proxy-agent模式。
10、增加了外网连接检测,如果无法上网则停止运行脚本。
11、增加检测wget软件是否安装,没有安装会按照不同的系统使用不同的方式安装;
12、增加所有监控模板里所有服务监控的用户自定义的UserParameter到zabbix_agentd.conf里;
13、增加监控lvm参数;
14、增加选择32位系统与64位系统来下载不同的软件安装包。
下面介绍客户端为windows的脚本
@echo offSet zabbix_server_ip=10.10.13.8Set zabbix_server_port=10051for /f "tokens=2 delims=:" %%b in ('ipconfig^|find /i "ip"^|find /i "ipv4"^|find /i "10"') do set fsip=%%bSet fsip=%fsip: =%echo Creating zabbix dirmkdir c:\zabbixmkdir c:\zabbix\confmkdir c:\zabbix\binmkdir c:\zabbix\logecho Copying configcopy /y zabbix\conf\zabbix_agentd.win.conf C:\zabbix\conf\echo Modiy configecho LogFile=c:\zabbix\log\zabbix_agentd.log >> C:\zabbix\conf\zabbix_agentd.win.confecho SourceIP=%fsip% >> C:\zabbix\conf\zabbix_agentd.win.confecho Server=%zabbix_server_ip% >> C:\zabbix\conf\zabbix_agentd.win.confecho ServerActive=%zabbix_server_ip%:%zabbix_server_port% >> C:\zabbix\conf\zabbix_agentd.win.confecho Hostname=%COMPUTERNAME% >> C:\zabbix\conf\zabbix_agentd.win.confecho Copy start fileif exist %windir%\SysWOW64 (set system_bit=64) else set system_bit=32if %system_bit% EQU 32 copy /y zabbix\bin\win32 C:\zabbix\bin\if %system_bit% EQU 64 copy /y zabbix\bin\win64 C:\zabbix\bin\echo install zabbix serviceC:\zabbix\bin\zabbix_agentd.exe -i -c C:\zabbix\conf\zabbix_agentd.win.confecho start zabbix servicenet start "Zabbix Agent"echo set zabbix service autosc config "Zabbix Agent" start= autoecho open firewall for zabbixnetsh firewall set allowedprogram C:\zabbix\bin\zabbix_agentd.exe zabbix ENABLE
使用dos命令+bat脚本,其中10.10.13.8为server端的内网ip,采用server-client直连模式
安装的话,直接双击脚本就可以(请注意,想使用windows安装的话,使用附件里的zabbix_agent_install.rar,然后解压后双击脚本就可以安装)。
目前已经在windows 2008与2012系统上都成功运行
目前客户端为linux与windows的自动安装脚本都给大家,但请使用的时候,根据自己的需求修改下。
转载地址:http://iuifa.baihongyu.com/