Centos6搭建SkyWalking 做分布式跟踪
Apache Skywalking(Incubator)簡介
當企業應用進入分布式微服務時代,應用服務依賴會越來越多,skywalking可以很好的解決服務調用鏈路追蹤的問題,而且基于java探針技術,基本對應用零侵入零耦合。
Apache Skywalking(Incubator) 專門為微服務架構和云原生架構系統而設計并且支持分布式鏈路追蹤的APM系統,即應用性能監控系統,為微服務架構和云原生架構系統設計。它通過探針自動收集所需的指標,并進行分布式追蹤。通過這些調用鏈路以及指標,Skywalking APM會感知應用間關系和服務間關系,并進行相應的指標統計。目前支持鏈路追蹤和監控應用組件如下,基本涵蓋主流框架和容器,如國產PRC Dubbo和motan等,國際化的spring boot,spring cloud都支持了。Apache Skywalking (Incubating)目前支持多種語言,其中包括Java,.Net Core,Node.js和Go語言。
skywalaking總體架構分為三部分
- skywalking-collector:鏈路數據歸集器,數據可以落地ElasticSearch,單機也可以落地H2,不推薦,H2僅作為臨時演示用
- skywalking-web:web可視化平臺,用來展示落地的數據
- skywalking-agent:探針,用來收集和發送數據到歸集器
Apache Skywalking(Incubator)共提供兩種部署模式:單節點模式和集群模式,以下為單節點模式部署步驟。
依賴第三方組件
- JDK8+
- Mysql5.6 (不推薦)
- ElasticSearch: 6.x
環境配置
- skywalking-collector服務:192.168.1.100
- skywalking-web服務:192.168.1.101
- ES集群:192.168.1.102
安裝ES集群(推薦)
安裝詳情,見https://blog.51cto.com/qiangsh/2115248
安裝Mysql數據庫(不推薦)
wget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm sudo yum -y localinstall mysql-community-release-el6-*.noarch.rpm yum install mysql-server mysql-client libmysqlclient-dev/etc/init.d/mysqld start mysql_secure_installation #MySQL安全配置向導Enter current password for root (enter for none): <–初次運行直接回車Set root password? [Y/n] <– 是否設置root用戶密碼,輸入y并回車或直接回車Remove anonymous users? [Y/n] <– 是否刪除匿名用戶,生產環境建議刪除,所以直接回車Disallow root login remotely? [Y/n] <–是否禁止root遠程登錄,根據自己的需求選擇Y/n并回車,建議禁止Remove test database and access to it? [Y/n] <– 是否刪除test數據庫,直接回車Reload privilege tables now? [Y/n] <– 是否重新加載權限表,直接回車//修改配置文件
cat /etc/my.cnf --------------------------------------------------------------------------------- [mysqld] port=3319 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock pid-file=/var/run/mysqld/mysqld.pidinnodb_large_prefix=on innodb_file_format=Barracuda# time zone default-time-zone=system character-set-server=utf8 default-storage-engine=InnoDBskip-name-resolve skip-symbolic-links skip-external-locking skip-slave-start# res settings back_log=128 max_connections=100 max_connect_errors=2000 #open_files_limit=10240connect-timeout=10 wait-timeout=28800 interactive-timeout=28800 innodb_thread_concurrency=0 #不限制并發# slow query log slow_query_log=1 long-query-time=3 #慢查詢時間 slow_query_log_file=/data/logs/mysql/slow.loglog-warnings=1 log-error=/data/logs/mysql/mysql.err log_output=FILEgeneral_log=1 general_log_file=/data/logs/mysql/mysql.log max_binlog_size=1G max_relay_log_size=1Ginnodb_additional_mem_pool_size=16M innodb_buffer_pool_instance=2 innodb_buffer_pool_size=256M innodb_file_io_threads=4 innodb_flush_log_at_trx_commit=2 innodb_log_buffer_size=5M innodb_log_file_size=100Minnodb_log_files_in_group=2 innodb_log_group_home_dir=/data/mysql/var/ innodb_old_blocks_pct=20 innodb_buffer_pool_dump_at_shutdown=1 innodb_buffer_pool_dump_now=1 innodb_buffer_pool_load_at_startup=1 innodb_buffer_pool_load_now=1 innodb_buffer_pool_filename=ib_buffer_poolinnodb_max_dirty_pages_pct=90 innodb_lock_wait_timeout=50symbolic-links=0 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid[mysql] disable-auto-rehash default-character-set=utf8 connect-timeout=3//創建配置目錄
mkdir -p /data/logs/mysql mkdir -p /data/mysql/var chown -R mysql:mysql /data/mysql/var chown -R mysql:mysql /data/logs/mysql//重啟mysql
/etc/init.d/mysqld restart配置 Skywalking Collector服務
cd /data/packages/ wget http://mirrors.hust.edu.cn/apache/incubator/skywalking/6.0.0-GA/apache-skywalking-apm-incubating-6.0.0-GA.tar.gz tar zxvf apache-skywalking-apm-incubating-6.0.0-GA.tar.gz mv apache-skywalking-apm-incubating /opt/skywalking ll /opt/skywalking配置ES 存儲監控數據(推薦)
將儲存方式由 h2 修改為 elasticsearch:
其中主要修改 clusterName 和 clusterNodes 和 已啟動的 elasticsearch 配置一致。
配置Mysql 存儲監控數據(不推薦)
1、將儲存方式由 h2 修改為 mysql:
2、下載mysql驅動包到 oap-libs 目錄下
下載地址:http://central.maven.org/maven2/mysql/mysql-connector-java/
3、進入mysql 創建swtest 數據庫
[root@skywalking ]# mysql -uroot -p<your_pass> mysql> CREATE DATABASE swtest; Query OK, 1 row affected (0.00 sec)啟動collector服務
#初始化 cd /opt/skywalking/bin/ ./oapServiceInit.sh#啟動collector服務 ./oapService.sh配置 Skywalking Web服務
1、修改配置
2、啟動web服務
cd /opt/skywalking/bin ./webappService.sh啟動bin目錄下的startup.sh可以將collector和Web模塊一起啟動起來。
如果一切順利,這時候就可以通過 http://192.168.1.100:8080 來查看 SkyWalking UI 了,默認賬號/密碼:admin/admin。
探針配置(agent)
1、被監控端下載skywalking
wget http://mirrors.hust.edu.cn/apache/incubator/skywalking/6.0.0-GA/apache-skywalking-apm-incubating-6.0.0-GA.tar.gz tar zxvf apache-skywalking-apm-incubating-6.0.0-GA.tar.gz mv apache-skywalking-apm-incubating /opt/skywalking2、探針的配置 修改agent.config配置如下:
vim /opt/skywalking/agent/config/agent.config ------------------------------------------------------------- agent.service_name=Your_ApplicationName #改為你的項目名字 collector.backend_service=192.168.1.100:11800 #collector的端口服務地址; logging.level=info3、啟動Agent
-
基于Tomcat的服務(SpringMvc)
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/opt/skywalking/agent/skywalking-agent.jar" export CATALINA_OPTS
在tomcat的bin目錄下的catalina.sh中增加如下命令行 - 基于JAR file的服務(SpringBoot)
在啟動你的應用程序的命令行中添加 -javaagent 參數. 并確保在-jar參數之前添加它. 例如:
java -javaagent:/opt/skywalking/agent/skywalking-agent.jar -jar yourApp.jar
然后重啟服務,就可以看到頁面上有數據了;如果發生了其他錯誤,請查看日志進行詳細排查;collector的日志和Web的日志都是在SkyWalking根目錄的log目錄之中(會在collector啟動之后創建);Agent的目錄是在agent目錄之下。
轉載于:https://blog.51cto.com/qiangsh/2355275
總結
以上是生活随笔為你收集整理的Centos6搭建SkyWalking 做分布式跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css实现浏览历史小块
- 下一篇: Centos 7安装与配置chef