zabbix 在linux上安装以及一些配置

摘要:
&您可以在网络上搜索解决方案--configure:noacceptableCcompilerfoundin$PATH--yumminstall ygcc--servermysql configuration mysql&gt/usr/bin/mysqladmin-uzabbix-p*-h127.0.0.1-P33062>

  本文章将演示zabbix 3.2版本的安装,供有需要的伙伴们参考:

网络也有很多关于zabbix的安装文档,甚至每一步的配置都有详细的截图,我这里就不演示截图了,多配置几次自然就熟练了。多折腾。

楼主也是安装过很多次,也安装过很多版本,每次都会遇到一点问题,还不一样,都可以通过网络上搜索解决。

--环境准备

[root@mysqlhq ~]# cat /etc/issue
\nKylin 3.3
Kernel \r on an \m
\KRelease (Trial)

# yum -y install lrzsz
# groupadd zabbix
# useradd -d /home/zabbix -g zabbix -m zabbix
# passwd zabbix

--安装相关依赖包

# yum -y install wget unzip libxml2 libxml2-devel httpd php php-mysql php-common php-mbstring php-gd php-odbc \
php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath zlib-devel glibc-devel \
curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel

# tar zxvf zabbix-3.2.7.tar.gz 

# cd zabbix-3.2.7

# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libxml2 --with-libcurl #安装server

# ./configure --prefix=/usr/local/zabbix --enable-agent #安装agent

# make && make install

--可能会遇到一些错误,都可以在网络上进行搜索解决

--configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
yum install -y net-snmp-devel

--configure: error: no acceptable C compiler found in $PATH
--yum install -y gcc

--server mysql的配置

mysql> create database zabbix default character set utf8;

mysql> grant all privileges on *.* to 'zabbix'@'127.0.0.1' identified by '*';
mysql> use zabbix;
mysql> source /data/soft/zabbix-3.2.7/database/mysql/schema.sql
mysql> source /data/soft/zabbix-3.2.7/database/mysql/images.sql
mysql> source /data/soft/zabbix-3.2.7/database/mysql/data.sql

--zabbix的zabbix_server.conf和zabbix_agentd.conf 文件

[root@mysqlhq ~]# cat /usr/local/zabbix/etc/zabbix_server.conf | grep -v '^#' | grep -v '^$'
LogFile=/tmp/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=*
DBSocket=/home/data/mysqldata/3306/mysqld.sock
DBPort=3306
Timeout=4
LogSlowQueries=3000

[root@mysqlhq ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf | grep -v '^#' | grep -v '^$'
LogFile=/tmp/zabbix_agentd.log
Server=*
StartAgents=5
ServerActive=*
Hostname=mysqlhq
UnsafeUserParameters=1
UserParameter=mysql.ping,/usr/bin/mysqladmin -uzabbix -p*-h127.0.0.1 -P3306 2>/dev/null ping|grep alive|wc -l
UserParameter=mysql.status[*],/usr/bin/mysql -h 127.0.0.1 -P3306 -uzabbix -p'*' -N -e "show global status where Variable_name='$1'" 2>/dev/null | cut -f2
UserParameter=mysql_variable_status[*],/usr/bin/mysql -h 127.0.0.1 -P3306 -uzabbix -p*' -N -e "show variables where Variable_name='$1'" 2>/dev/null | cut -f2
UserParameter=mysql.version,/usr/bin/mysql -V
UserParameter=mysql.mysql_process_status,sh /usr/local/zabbix/lib/alertscripts/check_mysql_status_3306.sh

--zabbix一些php,apach的设置

cd /data/soft/zabbix-3.2.7/frontends
mkdir /var/www/html/zabbix/
cp -r php/* /var/www/html/zabbix/
vim /etc/httpd/conf/httpd.conf
ServerName *
# cp /etc/php.ini /etc/php.ini.bk
# sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
---sed -i 'date.timezone =/a\date.timezone = Asia/Shanghai' /etc/php.ini
# sed -i '/max_input_time =/s/60/300/' /etc/php.ini
# sed -i '/mbstring.func_overload = 0/a\mbstring.func_overload = 1' /etc/php.ini
# sed -i '/post_max_size =/s/8M/32M/' /etc/php.ini
# sed -i "s@;date.timezone =@date.timezone = Asia/Shanghai@g" /etc/php.ini
–PHP option "always_populate_raw_post_data" must be set to "-1"
# vim /etc/ld.so.conf
/usr/local/mysql/lib
/sbin/ldconfig
# ldconfig
php -v
[root@mysqlt1 yum.repos.d]# rpm -qa|grep php
php56w-pdo-5.6.37-1.w6.x86_64
php56w-ldap-5.6.37-1.w6.x86_64
php56w-xml-5.6.37-1.w6.x86_64
php56w-bcmath-5.6.37-1.w6.x86_64
php56w-mysql-5.6.37-1.w6.x86_64
php56w-cli-5.6.37-1.w6.x86_64
php56w-5.6.37-1.w6.x86_64
php56w-gd-5.6.37-1.w6.x86_64
php56w-common-5.6.37-1.w6.x86_64
php56w-mbstring-5.6.37-1.w6.x86_64

--关于php的版本问题:

# yum list installed | grep php
# yum list | grep php;

# yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 \
php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

#yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 \
php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm

# yum install -y php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap

[root@mysqlhq ~]# /usr/local/zabbix/sbin/zabbix_server --version
zabbix_server (Zabbix) 3.2.7
Revision 70298 18 July 2017, compilation time: Sep 19 2018 10:48:27

#  chown -R zabbix.zabbix /usr/local/zabbix/
# chown -R apache:apache /var/www/html/zabbix/
#  rpm -qa|grep httpd
# service httpd start

# chkconfig --add httpd
# chkconfig --list httpd

# netstat -lnp |grep zabbix
#  ps -ef|grep zabbix
#  /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf #启动zabbix server
#  /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf #启动zabbix agent

--开启启动

# vim /etc/rc.local
sudo -i -u mysql /data/mysqldata/scripts/mysql_db_startup.sh 3306> /home/mysql/mysql_db_startup.log 2>&1
/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
Sudo命令如果遇到错误
Sudo:sorry,you must have a tty to ruan sudo
[root@localhost scripts]# vim /etc/sudoers
56 #Defaults requiretty –注释掉

--zabbix 中文配置

1、确认zabbix是否开启了中文支持功能(/var/www/html/zabbix/include/locales.inc.php)
vim /var/www/html/zabbix/include/locales.inc.php
###'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true]
2 登录zabbix后,设置用户profile,设置语言为中文,然后点击Update
3 其他也乱码
--这个问题是zabbix web端没有中文库导致
从window-->控制面板-->字体-->选择一种中文字库例如“楷体”,将其拷贝到zabbix服务器上即可
将我们选择的字体文件上传到zabbix web服务,/var/www/html/zabbix/fonts目录下
修改此/var/www/html/zabbix/include/defines.inc.php文件中字体的配置,将里面关于字体设置从DejaVuSans替换成stsong
vim /var/www/html/zabbix/include/defines.inc.php
:%s/DejaVuSans/stsong/g

--Zabbix server 基本配置

-----create hosts
Zabbix server 服务自带
hostname=Zabbix server
groups in groups =Zabbix servers
ip address=*
port=10050
-----create Templates/MySql_check_alive/check_mysql_slave2_status
template name=MySql_check_alive
groups in groups=Zabbix servers
----create application
group=Zabbix servers
host=Zabbix server
name=MySql_check_alive
----create Items/名字就是.cnf中的UserParameter=mysql.check_mysql_slave_status
name=mysql.mysql_process_status
type=zabbix agent
key=mysql.mysql_process_status
applications =MySql_check_alive

----create trigger
name=mysql.mysql_process_status
expression={Zabbix server:mysql.check_mysql_status.last()}=1
--{check_mysql_slave2_status:mysql.check_mysql_slave_status.last()}=1

-----create Templates
template name=MySql_check_alive
groups in groups=mysqltest
hosts/template in=*
----create application/host=MySql_check_alive
name=MySql_check_alive
----create Items
name=mysql.mysql_process_status
mysql.check_mysql_status
type=zabbix agent
key=mysql.mysql_process_status
applications =my3306_check_status

----create trigger
name=mysql.mysql_process_status on {HOST.NAME}
expression={MySql_check_alive:mysql.mysql_process_status.last(0)}=1

{*:mysql.mysql_process_status.last()}=1
---expression= SELECT *: mysql.check_mysql_status
---Previous value is =NO
---N=1
----create Screens
点击configuration--screen--create screen

serverity=high
----create Graphs
name=mysql.mysql_process_status
items=MySql_check_alive: mysql.mysql_process_status

zabbix的告警流程
host goups(设备组)--hosts(设备)--applications(监控项组)--
items(监控项)--triggers(触发器)--actions(告警动作)--medias(
告警方式)--user groups(用户组)--users(用户)
1 trigger
configureation--host/template--triggers--create trigger on {HOST.NAME}
2 actions
configureation--actions
--event source-create action
--action--name=send_email_to_user
--recovery message=1
--enabled=1
--conditions--type of calculation= and/or
--conditions=host group/trigger name
--trigger value=problem 任何问题都会发送消息
--maintenance status=not in maintenance在维护时间段内将不发送消息
--operations--send message
--send to user groups =dba
--send to users=txyyhq
--send only to=sendmail
Default operation step duration 为60秒
Steps 为3,表示触发3次动作 1-5-1200
Send to User groups 选择Zabbix administrators
Send to Users 选择 Admin (Zabbix Administrator)
Send only to 选择 sendmail.sh
--recovery operation

3 media Administration-> Media types -> Create mediatype ->
--administration--media type
--create media type
--name=sendmail
--type=script
--script name=sendemail.sh
--Script parameters----3.2 需要自己添加3个参数,
{ALERT.SENDTO}收件人地址
{ALERT.SUBJECT}主题
{ALERT.MESSAGE}详细内容
在users里面添加,Administration –> Users-> Create user -> Media ->Add

--administration--user--create user
4 events
--monitoring--events
--administration--audit

vim /usr/local/zabbix/lib/alertscripts/sendemail.sh $1 $2 $3 ###3个参数
./sendemail.sh *@163.com 1111 hello
$1 收件人 user--media中的send to
$2 为actions中配置的默认主题
$3 为actions中默认的配置消息
##monitoring--triggers 看已发生故障
##查看日志administration--audit--actions
---Admin (Zabbix Administrator) sendmail Sent
[zabbix@hqmysql1 alertscripts]$ ./sendemail.sh *@163.com 1111 hellotest
Jul 19 01:56:24 hqmysql1 sendEmail[3551]: ERROR => Connection attempt to smtp.163.com:25 failed: IO::Socket::INET: Bad hostname 'smtp.163.com'

免责声明:文章转载自《zabbix 在linux上安装以及一些配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇如何用java实现两个变量值的互换!【MyBatis源码分析】Configuration加载(上篇)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

TP框架 mysql子查询

一些比较复杂的业务关系,用子查询解决. 比循环便利要好的多哈. 比如下面这句 select 和where in 语句都用了子查询. 因为父查询在select里,所以用了select的字段当子查询的条件. 这块也是凭感觉写, 返回的值如果在select里,只能是1row,否则会报错. 这里都是凭感觉在写,经验就是多想,多写,多试验... M('Product...

php连接数据库(一)

1、php链接数据库: 1、链接数据库  2、判断是否连接成功 3、设置字符集 4、选择数据库 5、准备SQL语句 6、发送SQL语句 7、处理结果集 8、释放资源(关闭数据库)   $result = mysqli_querry($link,$sql) //返回一个对象   mysqli_fetch_assoc($result) 一个一个往下读,返回的时...

K8s--09 编写mysql的持久化deployment

k8s实战--编写mysql的持久化deployment 1.实验-编写mysql的持久化deployment #先打标签 [root@node1 ~/volume]# kubectl label nodes node3 disktype=SSD #编写资源清单 [root@node1 ~/volume]# cat mysql-hostpath-ssd....

mysql数据库设置外键,更新与删除选项

CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注意在设计子表时外键不能设为not null;RESTRICT:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录;NO A...

MySQL java连接被拒绝:java.sql.SQLException: Access denied for user 'root'@'****' (using password: YES)

//系统运行出现错误:java.sql.SQLException: Access denied for user 'root'@'***.**.**.**' (using password: YES) MySQL服务器部署在Ubuntu上,错误中被我隐掉的是我的公网IP。 数据库管理工具连接出现以下错误: 这是由于“IP为***.**.**.**,名字为...

数据库管理工具

NO1   Webyog | 管理和监控MySQL服务器的工具,官网:https://www.webyog.com/   SQLyog Ultimate V12.5 64bit 中文破解版(附注册码),下载地址:http://www.jb51.net/database/598306.html   SQLyong是一款功能强大的数据库管理程序,新版本增加更...