Help us understand the problem. What is going on with this article?

CentOS7へのzabbix 3.0 の自動インストールの誘い

More than 3 years have passed since last update.

前回
http://qiita.com/m_46/items/9519f959c90b3157b9d8

に懲りず、今回もshell芸でzabbixの初期構築をやってみました。構成は以下の通りです。
CentOS 7.1
php 5.6
Apache 2.4.6
PostgreSQL 9.5.1
zabbix 3.0.1

以下、事前に注意すべき点があるのでお読み下さい。

1.以下の操作によってOSのユーザとして「postgres」や「zabbix」等のユーザが作成されるので、そのユーザを利用する運用の場合はパスワードセキュリティを高めましょう。DBレイヤのセキュリティの考慮についても同様です。
2.セキュリティを考慮し、PostgreSQLのデフォルトポート5432から9876に変更しています。
3.selinuxはdisabledとするか、適切に管理しましょう。接続不可なトラブルの何割かはコレが原因です。
4.zabbixは3から暗号化通信も可能ですがここでは割愛します。適宜導入を検討して頂ければと思います。
5.サーバを公開して運用する場合、firewalldやネットワークレイヤで、入念なセキュリティ対策を行ってから運用を行って下さい。何らかの被害が出ても責任は負い兼ねます。
6.細かなconfファイル,iniファイルの修正は各自で行って下さい。ここでは自分の好みを含める"動く最低限の設定"を適用しています。

上記各項を正しく理解した上で、以下のコマンドを流し込んで下さい。

/root/setup-zabbix.sh
# OSのセキュリティ対策アップデート等の実施
yum -y update

# 導入するツールのレポジトリ登録
yum -y install epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -ivh http://yum.postgresql.org/9.5/redhat/rhel-7.2-x86_64/pgdg-centos95-9.5-2.noarch.rpm
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

# レポジトリの無効化
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel-testing.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/pgdg-95-centos.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-php70.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi-safe.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/remi.repo
sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/zabbix.repo

# 構成に必要(便利)なライブラリインストール
yum -y install libcurl-devel libzip zlib-devel libxml2-devel net-snmp net-snmp-devel libcurl-devel expect gcc
yum -y groupinstall Base

# zabbixに必要なライブラリインストール
yum -y install unixODBC  OpenIPMI-libs  OpenIPMI-modalias libtool-ltdl iksemel fping --enablerepo=zabbix,base,epel --skip-broken

# PostgreSQL9.5インストール
yum -y install postgresql95-server postgresql95-devel postgresql95-contrib --enablerepo=pgdg95

# 自動起動設定
systemctl enable postgresql-9.5.service

# initDB実行
su -c '/usr/pgsql-9.5/bin/initdb -D /var/lib/pgsql/9.5/data' postgres

# conf修正「/var/lib/pgsql/9.5/data/pg_hba.conf」
sed -i -e "s/peer/trust/g" /var/lib/pgsql/9.5/data/pg_hba.conf
sed -i -e "s/ident/trust/g" /var/lib/pgsql/9.5/data/pg_hba.conf

# conf修正「/var/lib/pgsql/9.5/data/postgresql.conf」
echo "checkpoint_timeout = 30min" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "checkpoint_completion_target = 0.8" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "listen_addresses = '*'" >> /var/lib/pgsql/9.5/data/postgresql.conf
echo "port = 9876" >> /var/lib/pgsql/9.5/data/postgresql.conf

# PostgreSQL9.5起動
systemctl start postgresql-9.5.service

# zabbixユーザの作成とDB登録
echo "create user zabbix SUPERUSER PASSWORD 'XXXXXXXXXXXX';" >> /root/create.sql
echo "create database zabbix owner=zabbix;" >> /root/create.sql
/usr/bin/psql -f /root/create.sql -U postgres -p 9876
rm -f /root/create.sql

# php,Apacheのインストール
yum -y install php php-common php-mbstring php-xml php-gd php-bcmath php-pgsql php-ldap php-cli php-pdo php-pecl-jsonc php-pecl-zip --enablerepo=remi,remi-php56

# /etc/php.iniの編集
sed -i -e "s/post_max_size = 8M/post_max_size = 16M/g" /etc/php.ini
sed -i -e "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php.ini
sed -i -e "s/max_input_time = 60/max_input_time = 300/g" /etc/php.ini
sed -i -e "s/;date.timezone =/date.timezone = Asia\/Tokyo/g" /etc/php.ini
sed -i -e "s/;always_populate_raw_post_data/always_populate_raw_post_data/g" /etc/php.ini
sed -i -e "s/memory_limit = 128M/memory_limit = 256M/g" /etc/php.ini

# Apacheの設定
echo "ServerName `hostname`:80" >> /etc/httpd/conf/httpd.conf

# zabbixインストール
yum -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese --enablerepo=zabbix --skip-broken

# zabbixのDBへのスキーマ登録
cd /usr/share/doc/zabbix-server-pgsql-3.0.1/
gunzip create.sql.gz
echo "PW=\"XXXXXXXXXXXX\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect -c \"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "set timeout 5" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "spawn psql -p 9876 -W -d zabbix -f /usr/share/doc/zabbix-server-pgsql-3.0.1/create.sql zabbix" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect \\\"ユーザ zabbix のパスワード:\\\" " >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "send \\\"\${PW}\n\\\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "expect \\\"$\\\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "exit 0" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
echo "\"" >> /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
chmod u+x /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh
sh /usr/share/doc/zabbix-server-pgsql-3.0.1/schema.sh

# /etc/zabbix/zabbix_server.conf 修正
sed -i -e "s/LogFile=\/tmp\/zabbix_server.log/LogFile=\/var\/log\/zabbix\/zabbix_server.log/g" /etc/zabbix/zabbix_server.conf
echo "PidFile=/var/run/zabbix/zabbix_server.pid" >> /etc/zabbix/zabbix_server.conf
echo "DBHost=127.0.0.1" >> /etc/zabbix/zabbix_server.conf
echo "DBSocket=/tmp/.s.PGSQL.9876" >> /etc/zabbix/zabbix_server.conf
echo "DBPassword=XXXXXXXXXXXX" >> /etc/zabbix/zabbix_server.conf
echo "DBPort=9876" >> /etc/zabbix/zabbix_server.conf
echo "ListenPort=10051" >> /etc/zabbix/zabbix_server.conf
echo "ListenIP=127.0.0.1" >> /etc/zabbix/zabbix_server.conf

# Apacheの起動及び自動起動設定
systemctl enable httpd.service
systemctl start httpd.service

# zabbixの起動及び自動起動設定
systemctl enable zabbix-server.service
systemctl start zabbix-server.service

以上を実行した後、作業したサーバへ、ブラウザで

httpl://{サーバIP}/zabbix

とアクセスすると初期画面が表示されます。あとは適宜設定を追加してログインしてみてください。

以下はzabbix-agentの導入です。ご参考までに。

/root/setup-zabbix-agent.sh
yum -y install zabbix-agent --enablerepo=zabbix --skip-broken

sed -i -e "s/ServerActive=127.0.0.1/ServerActive=127.0.0.1:10051/g" /etc/zabbix/zabbix_agentd.conf
sed -i -e "s/Hostname=Zabbix server/Hostname=`hostname`/g" /etc/zabbix/zabbix_agentd.conf
echo "AllowRoot=1" >> /etc/zabbix/zabbix_agentd.conf
echo "EnableRemoteCommands=1" >> /etc/zabbix/zabbix_agentd.conf

systemctl enable zabbix-agent.service
systemctl start zabbix-agent.service

よきzabbixライフを!

m_46
大阪でIT系の業界でなんやかんやと佇んでいます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした